Задача проста:
создать слово.
Характеристики:
- Слово должно быть произносимым.
- Это определяется как «чередование согласных и гласных».
- Согласный - это одно из следующих букв:
bcdfghjklmnpqrstvwxz
- Гласный - это одно из следующих букв:
aeiouy
- Слово должно генерироваться случайным образом.
- Слова должны содержать все согласные и гласные. (Вы не можете использовать только
bcdf
для согласных иaei
гласных.) - Слово должно содержать 10 букв.
- Самый короткий код (в количестве символов) выигрывает.
code-golf
random
natural-language
generation
Дверная ручка
источник
источник
echo buxitiwymu
технически соответствует спецификации. Уверяю вас, я произвел слово случайно: Py
q
x
ng
ea
Ответы:
GolfScript, 32 символа
Запустите его онлайн .
источник
Рубин: 56 символов
Пример выходов:
источник
'aeiouy'.chars
будет на один символ короче.TypeError: can't convert Enumerator into Array
Python, 81
Удачи, произнося их.
источник
:P
python grc.py | say
на своей машине. Спасибо за идею.КОБОЛ, 255
Так что сейчас я изучаю COBOL. Использовал этот вопрос как некоторую практику. Пытался в гольф это.
Это 255 без начальных пробелов и 286 байтов с.
Для чего это стоит, это работает в Microfocus COBOL для VS2012, и я не знаю, будет ли он работать в другом месте.
источник
APL (34)
источник
JavaScript, 74
Не генерирует все комбинации, но я думаю, что все согласные и гласные появляются.
JavaScript, 79
Более «случайная» версия.
источник
^0
?Math.random
дает число, нам нужно целое число.^0
усекает число^
оператора в JavaScript раньше и меньше слышал об использовании его для сокращения числа с плавающей точкой. Благодарность!^
Рубин:
7066 символовОбразец прогона:
источник
10.times
на один символ меньше.*10
->*4
, пропустить*3
,rand 60
->rand 20
и вы сохранили 3 символа.R: 105 символов
источник
J (51)
источник
Обработка,
100999387При ближайшем рассмотрении вопроса, я вижу, что не требует никакого вывода. Я настроил это соответственно.
источник
Objective-C, 129
С помощью Даньеро
(Я люблю использовать тенденцию к оператору (->)
источник
Java AKA - самый многословный язык, когда-либо созданный, 176 с помощью Doorknob, Daniero и Peter Taylor (спасибо, ребята!)
Ungolfed:
}
источник
String a[]
наString[]a
(-1 символ), изменитьw W = new w();
наw W=new w();
(-2 символа)f
и используйтеi%2
вместо него. Кроме того,for
цикл может быть сокращен, и вы можете поместить обе строки в условный оператор (кроме того, здесь нет необходимости в скобках) и использоватьcharAt
их снаружи. Вот и все, 195 ЧАРСОВ, 38 СОХРАНЕНО :import java.util.*;class w{public static void main(String[]a){Random r=new Random();for(int i=0;++i<11;)System.out.print((i%2>0?"bcdfghjklmnpqrstvwxz":"aeiouy").charAt(r.nextInt(6+(i%2)*14)));}}
Javascript, 85
Если запустить из консоли, вывод отображается. Явное отображение добавило бы
alert(s)
8 символов, все еще короче, чем другие решения JS.Спасибо C5H8NNaO4 и Говарду!
источник
~~(###)
вы можете написать,###|0
что экономит 4 символа.Javascript,
1351229686 символовисточник
PHP, 100 символов
источник
Инструменты Unix: 73 байта
И не гарантируется время работы :)
Единственная проблема заключается в том, что сгенерированная строка будет начинаться с «гласной» каждый раз.
(редактирование: изменено
' '
на''
в аргументах пасты) (другое редактирование: удаленный -P из вариантов Grep, благодаря manatwork )источник
grep
параметров. Я получил «изо всех сил».-a
что будет достаточно.-P
это тот самый. Кажется, человек предупреждает о своем крайне экспериментальном статусе с разумом. (grep
2,16) Но в любом случае, это работает отлично без-P
.-P
в первую очередь. Я отредактирую свой ответ.tr -d \\n
короче для объединения линий.Pyth, 26 символов
Вы можете попробовать это в онлайн-компиляторе здесь.
Кто-то отправил очень похожий вызов, но он был закрыт после того, как я принял решение. Я не осознавал этого, но этот вопрос на самом деле предшествовал созданию Пита. Во всяком случае, вот разбивка:
Каждый раз, когда запускается цикл, J переключается с списка согласных на список гласных. Таким образом, мы можем просто выбрать случайную букву от J каждый раз.
Может быть способ инициализировать J в цикле или удалить явные назначения из цикла, но я пока не добился успеха.
источник
APL
3026Пояснения очень похожи на предыдущую версию ниже, просто немного изменили порядок решения.
Примечание: ⎕IO установлено на 0
Объяснение:
Tryapl.org
источник
('AEIOUY'∪⎕A) ≡ (∪'AEIOUY',⎕A)
но это на один байт короче.⎕A
сохранения другого байта:,('EIOUY'∪⎕A)[6(|,+)⍪5?20]
PHP 79 байт
Довольно лаконично.
источник
С: 101
источник
Javascript,
10487играли в гольф много простых ненужных вещей, все еще не так хорошо, как копи
Ох, и тот, кто только что выступил против во время игры в гольф: "dydudelidu"
Теперь я попробовал один, используя подход 2 символов одновременно. Оказывается, это почти то же самое, что и вторая копия, так что я не могу сосчитать, также на 79.
a="";for(e=5;e--;)a+="bcdfghjklmnpqrstvwxz"[m=0|20*Math.random()]+"aeiouy"[m%6]
источник
Брахилог , 9 байт
Попробуйте онлайн!
Дает вывод в виде списка букв через выходную переменную.
источник
F # , 166 символов
источник
К, 40 байт
5?"abc"
сгенерирует 5 случайных букв из заданной строки.5?/:
сгенерирует 5 случайных букв из каждой строки справа, создав два списка.+
транспонирует эти два списка, давая нам список кортежей с одним случайным символом из первого списка, а затем один из второго списка.,/
is "raze" - объединяет все эти кортежи в последовательности.K5 может сделать это в 33 байта, построив алфавит более умно, а затем используя «кроме» (
^
), чтобы удалить гласные, но K5 слишком нов, чтобы быть законным в этом вопросе:источник
R, 83 байта
Генерация всех возможных гласных-согласных последовательностей в матрице, затем случайная выборка из 5 из них, получая слово из 10 букв.
источник
05AB1E , 10 байтов
Попробуйте онлайн или выведитеN количество случайных слов .
Объяснение:
Довольно просто:
источник
Желе , 13 байт
Объяснение:
Попробуйте онлайн!
источник