Подтвердить что ты не робот

Как я могу генерировать псевдослучайные "читаемые" строки в Java?

Создание действительно случайной строки заданной длины является довольно простой (и уже хорошо покрытой) задачей.

Тем не менее; Я бы хотел создать "псевдо" случайную строку с дополнительным ограничением, чтобы она была относительно легко читаемой (для читателя на родном языке).

Я думаю, что еще один способ сказать это - сказать, что сгенерированная строка должна состоять из "узнаваемых слогов". Например, "akdjfwv" - это случайная строка, но она не распознается вообще. "Flamyom"; однако, очень "узнаваем" (хотя это вздор.)

Очевидно, можно было бы создать длинный список "узнаваемых слогов", а затем случайным образом выбирать их.

Но есть ли лучший способ сделать что-то вроде программного создания "узнаваемого слога" или сгенерировать "слог", а затем проверить его, чтобы узнать, распознается ли оно?

Я могу подумать о нескольких способах реализации этой реализации, но если кто-то уже ее реализовал (желательно на Java или С#), я предпочел бы повторно использовать их работу.

Любые идеи?

4b9b3361

Ответ 1

Я думаю, что это должно делать то, что вы хотите:

Генератор паролей Java

У него есть исходный код и разрешающая лицензия, поэтому вы можете адаптировать исходный код к тому, что вы ищете.

Ответ 2

Вы можете попробовать реализовать цепочку Java-реализация, которая может работать для вас.

Это образец интерполяции между Genesis на английском и Genesis на испанском языке (N = 1):

В Берсаране и в то же время, когда он ловит тень, который должен был совершить его. lllar t land fingujod служанка af de wand tetodamoiz fosu Andesp. ersunen thenas lowhejod whipanirede tifinas Gofuavithila d gió Y Diche fua Dios co l, liens ly Y crerdíquen ticuesereregos hielase agúnd veumarbas iarasens laragún co eruerá laciéluelamagúneren Dien a He.

Ответ 3

Вам нужно создать случайные слоги. Самый простой способ сделать это - использовать слоги, которые согласны-гласные или согласные-гласные-согласные. Из списка согласных и гласных выбирайте случайным образом для создания слогов, затем соедините слоги вместе, чтобы создать строку.

Имейте в виду, что ваш список согласных не должен быть буквами, которые являются согласными, но фонемы, поэтому "th", "st", "sl" и т.д. могут быть записями в согласном списке.

Ответ 4

Вам действительно нужно проверить SCIgen. Он генерирует целые полунаучные научные статьи: http://pdos.csail.mit.edu/scigen/

И доступен источник: он выпущен под GPL и в настоящее время доступен через анонимный CVS.

Ответ 5

Я не уверен точно, для чего вам это нужно, но если люди с графическим дизайном в печатной индустрии использовали генераторы Lorem Ipsum для создания текста, который выглядит достаточно, как текст, который ваш мозг обрабатывает его как таковой, не имея на самом деле понятных слов, Подробнее здесь

Я не знаю, есть ли веб-сервис, на который вы можете подписаться, но есть несколько сайтов, которые будут генерировать для вас строки Lorem Ipsum, поэтому вы сможете их использовать.

Ответ 6

В этом разделе есть хороший раздел Programming Pearls. Он онлайн, но я настоятельно рекомендую купить книгу; На мой взгляд, одна из лучших книг по программированию.

Ответ 8

Все возвращается к тому, почему вы этого хотите. Если вы просто хотите "объявить тарабарщину", я думаю, что проще всего было бы сгенерировать чередующиеся согласные и гласные. Это будет крошечным подмножеством всякой объявленной тарабарщины, но какая цель? Чтобы дать немного более широкий диапазон, вы могли бы создать таблицу согласных фонем и гласных фонем с согласным списком, включающим не только отдельные буквы типа "b" и "d", но также "th", "br" и т.д. И т.д. список гласных может включать "оо" и "эа" и т.д. Еще один шаг - сгенерировать слоги вместо букв с слогом, содержащим либо гласный, согласный-гласный, либо согласный-гласный-согласный. То есть, создайте слоги, затем в слогах выберите один из трех шаблонов. Вероятно, вы захотите запретить два слога-только слога подряд. (Я пытаюсь придумать пример этого на английском языке. Вероятно, это происходит, но единственные примеры, о которых я могу думать, заимствованы из других языков, таких как "стоа".)