В качестве продолжения моего предыдущего задания считайте до 20 со словами! , мы снова будем использовать список слов из этой задачи, чтобы выполнить другую задачу. На этот раз вы будете использовать исключительно:
https://github.com/Magic Urn Octopus Urn / wordListsByLength / blob / master / 10.txt
Чтобы выбрать 26 разных слов, каждое из которых начинается с уникальной буквы, и выводить их в порядке возрастания от A до Z. Вот правильный пример:
aardwolves
babbitting
caravaning
debilitate
evaporator
fantasized
geographer
hawfinches
imbecility
juvenility
kalanchoes
lamaseries
malodorous
nudibranch
oligophagy
pantywaist
quarreling
russetting
scantiness
teetotaler
undercount
voodooisms
wentletrap
xenophobic
yeomanries
zwitterion
Это амурный волк , это боярышник , это каланхоэ , это голожаберная ветчина и мухобойка .
правила
- Нет чтения непосредственно из хранилища или каких-либо других лазеек.
- Вы можете выбрать любое из 26 слов, указанных в ссылке .
- Вы выбираете слова, и это слова, которые ваша программа должна выводить каждый раз.
- Необходимо выбрать одно слово, начинающееся с каждой из следующих букв:
[a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]
- Это код-гольф , побеждает наименьшее количество байтов.
Любые другие предложения для побочных продуктов, использующих списки слов?
Кроме того, не стесняйтесь красть мои списки слов и принимать вызовы.
code-golf
kolmogorov-complexity
natural-language
Урна волшебного осьминога
источник
источник
Ответы:
Жевательная резинка ,
10099 байтПопробуйте онлайн!
Выход:
Слова были снова выбраны с имитацией отжига:
источник
uglinesses
есть возможность для буквы U, которую вы пропустили, но это не очень помогает, так как у вас все еще есть Q, X и Y, с которыми нужно иметь дело. Ничто не приходит на ум для тех.uneasiness
хорошо сжиматься с помощьюeasinesses
иqueasiness
. Это очень последовательный выбор.JavaScript (ES6), 168 байт
Для каждой начальной буквы выводится либо первое слово, оканчивающееся на- ofities, либо первое доступное слово.
демонстрация
Показать фрагмент кода
источник
Желе , 69 байт
Это наивный подход, он может быть улучшен некоторыми умными галочками
Попробуйте онлайн!
(Предполагается, что «Действительные разделители являются ASCII-печатными неалфавитными символами (четные числа, безразлично)» выполняется из предыдущего вызова)
источник
Желе , 49 байт
Попробуйте онлайн! (Занимает около 22 секунд на TIO)
Выходы:
Как это устроено
источник
Python 2 ,
256231220 байтСпасли 36 байтов благодаря Джонатану Аллану, который проделал большую часть тяжелой работы для этого (я только что нашел слова: P)
Попробуйте онлайн!
источник
print
)Japt ,
169107 байтПопробуйте онлайн!
Я написал программу, которая помогает мне оптимизировать сжатие. Сортирует список по размеру сжатия shoco .
источник
inesses
на1
при расчете длины сжатия, хотя;)liminesses
Japt , 85 байт
где две пары обратных галочек представляют собой строки, казалось бы, случайных печатных и непечатных символов. Попробуйте онлайн! Выход:
объяснение
Основная техника:
Я нашел
cozinesses
, начав с того,nesses
что некоторые другие ответы использовали и неоднократно находя предыдущее письмо, которое оказалось среди большинства из 26 писем. Поскольку жадные методы не всегда оптимальны, я позже написал скрипт, чтобы найти реальное оптимальное слово:(Мне все равно, что это невероятно некрасиво. Вот как PPCG научил меня кодировать: P Не волнуйтесь, я не делаю этого в производстве.)
В любом случае, при запуске в консоли браузера в списке из 10 букв , выводится
57
Является количество букв , которые должны появиться в строке многострочного. Это также заняло около 17 секунд на моем компьютере, поэтому будьте терпеливы, когда вы запускаете его.Заменив
f=
строку наВы можете получить все суффиксы в пределах 20 символов от оптимального. (Измените
20
в конце что-то другое, чтобы настроить это. Примечание: эта функция, вероятно, работает только в Firefox.) Здесь вы можете найти список всех суффиксов до 100 здесь .Во всяком случае, отныне это просто задача найти слово для каждой буквы алфавита, которая имеет самый длинный общий суффикс с
ozinesses
. Для этого я написал скрипт Japt , а также сжал для меня необходимые префиксы и сказал, как долго будет длиться полученная программа. (Вы должны будете вручную вставить список слов между кавычками.)Это объяснение, вероятно, несколько сбивало с толку, поэтому, пожалуйста, не стесняйтесь задавать любые вопросы, которые могут у вас возникнуть.
источник
Жевательная резинка ,
110106 байтHexDump:
Попробуйте онлайн!
Печать:
источник
Javascript (ES6), 163 байта
Показать фрагмент кода
источник
/.+/g
в/.*/g
,-ozinesses
кcozinesses
, и удаление одинокаяc
?/.*/g
соответствует группе из 0 символов после каждой строки.Python 2 ,
168166 байтПопробуйте онлайн!
Как?
Инициализирует
i
в97
(порядковый номер символаa
), затем перебирает список, образованный путёмsplit
вставки строки в пробелы, образуя иprint
вставляя слова, увеличиваясь поi
мере продвижения. Большинство записей,w
в списке имеет длину два, это слово , которые начинаются с алфавитной буквой и заканчивается вinesses
, то есть в виде:chr(i)+w+'inesses'
.Записи длины 6 имеют форму:
chr(i)+w+'ies'
это означает, что форматирование может использоваться для добавления букв алфавита и добавления окончания со
'ness'
вставленным символом, например,'i'+?+'es'
когдаw
оно короткое, например:"%c%si%ses"%(i,w,"ness"*(len(w)<3))
-% c преобразуется
i
в символ; две%s
вставкиw
и"ness"*(len(w)<3)
, где последний,"ness"
еслиw
короткий или""
еслиw
долго.источник
SOGL V0.12 , 66 байт
Попробуй здесь!
Простое сжатие словаря с проблемой, что ни одно слово, начинающееся с X, не было в словаре SOGLs, поэтому я компенсировал с помощью xenotropic - tropic был в словаре. И мне нужно было добавить начальную кавычку, потому что в противном случае парсер подумал, что
[
запустил цикл: /источник
Древесный уголь , 84 байта
Попробуйте онлайн! Использует список слов @ HermanLauenstein, но я сохранил один байт, потому что я могу пропустить
f
. На этот раз несколько конкурентоспособен даже в многословном режиме, который составляет всего 166 байтов. Попробуйте онлайн!источник