Считай до 20 со словами!


39

Используя следующие разделенные по длине списки слов:

https://github.com/Magic Urnus Urn / wordListsByLength

Выведите 1 слово из каждого списка длиной n от 1 до 20, вот правильный пример:

a
an
and
hand
hands
handle
handles
abandons
abandoned
understand
outstanding
newfoundland
understanding
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
chemotherapeutically

Альтернативно (массив):

['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', 'characteristics', 'characterization', 'characterizations', 'characteristically', 'characterologically', 'chemotherapeutically']

В качестве альтернативы (любой печатный не алфавитный разделитель, кроме \n):

a:an:and:hand:hands:handle:handles:abandons:abandoned:understand:outstanding:newfoundland:understanding:characteristic:characteristics:characterization:characterizations:characteristically:characterologically:chemotherapeutically

правила

  • Вы можете выбрать свои собственные 20 слов.
  • Слова должны быть с предоставленной страницы GitHub, более конкретно:
    • 1 из 1.txt, 1 из 2.txt и т. Д.
    • Обратите внимание, что файлы выше 20.txt существуют, но вам не нужны слова длиной более 20 символов.
  • Допустимые разделители - это ASCII-печатные неалфавитные символы (даже цифры, все равно).
  • Только строчные или прописные, выберите один, придерживайтесь его; Заголовок не допускается.
  • Пожалуйста, не используйте 100% копию моего примера 20 слов ...
    • Можно, но это не весело.
    • Они, вероятно, в любом случае неоптимальные ...
  • Если вы не хотите использовать отдельные файлы и вам нужен полный список:
    • Используйте unsorted.txt , это все nфайлы .txt в одном, отсортированные по алфавиту.
  • Обратите внимание, вы НЕ МОЖЕТЕ непосредственно читать URL-адрес, это обычная лазейка .
  • Это , победителем будет самый низкий счетчик байтов.

Для справки, вывод составляет 229 байт, поэтому все, что попадает под это, превосходит жесткое кодирование.


Возможное обсуждение метатега:

где пользователь получает возможность настроить свои выходы из списка возможностей?


4
Как кто-то из Ньюфаундленда, я ценю этот крик. :)
разброс

6
@Christian Вы могли бы сказать, что я ... ( •_•)>⌐■-■ понимаю выдающийся ньюфаундленд(⌐■_■)
Волшебная Осьминога Урна

1
@ Райли, которая его растягивает, по 1 разделителю между каждым словом, хотя я вижу много ситуаций, когда это поможет: P.
Волшебная урна осьминога

1
@JonathanAllan только что сделал :).
Волшебная Осьминог Урна

1
Утилита для выбора слов.
Джим

Ответы:


19

Желе ,  49 35 31  30 байт

ṫ3,⁸Ṗ,$€ẎK
“¤ƈȮⱮ⁴⁷ọḤƁŒ|⁾Ė»ḲÇ€K

Ниладная ссылка, возвращающая список символов, или полная программная печать этого списка в виде строки (слова, разделенные пробелами).

Попробуйте онлайн!

Как?

ṫ3,⁸Ṗ,$€ẎK - Helper link: list of characters, word    e.g. "abreacts"
ṫ3         - tail word from index 3                          "reacts"
   ⁸       - chain's left argument, word
  ,        - pair                               ["reacts","abreacts"]
      $€   - last two links as a monad for €ach of the two words:
    Ṗ      -   pop (all but last character)      "react" / "abreact"
     ,     -   pair       ["react","reacts"] / ["abreact","abreacts"]
        Ẏ  - tighten          ["react","reacts","abreact","abreacts"]
         K - join with spaces         "react reacts abreact abreacts"

“¤ƈȮⱮ⁴⁷ọḤƁŒ|⁾Ė»ḲÇ€K - Link: no arguments
“¤ƈȮⱮ⁴⁷ọḤƁŒ|⁾Ė»     - a compressed string using dictionary indexes:
                    -   "agar abreacts acknowledges codeterminations deindustrializations"
               Ḳ    - split at spaces
                Ç€  - call the last link (Helper) as a monad for €ach
                  K - join with spaces

...который дает:

a ar aga agar react reacts abreact abreacts knowledge knowledges acknowledge acknowledges determination determinations codetermination codeterminations industrialization industrializations deindustrialization deindustrializations

Предыдущая:

@ 35:

“¡Ụıƭz Xj]"Ɱ*AJƤʂạ5ƬṚṪð^ƥỤ»ḲṖ,$€K€K

Использование 10 слов и их префиксов длины 1.

@ 49

“ḊAḥTz¹ỴH¡ṛYẈDƤNŀt#ñ²ĿĊḤlṪnð⁻U+ɦỴĊypṆQ0⁴ṄẉṂi⁻d¤&»

Просто 20 сжатых слов.


Черт, словарь желе! +1
Эрик Outgolfer

Я не знал, что у Желе был словарь, если честно.
Волшебная Осьминог Урна

3
30 байт! ?? !! ??! Я только что заснул и проснулся, и это всего лишь 30 байт? !! ??!?! 11 O_O_O
Эрик Outgolfer

30 БАЙТОВ!?!?! ??! Я забыл об этом вызове на месяц, и он выиграл с 30 байтами!?!?!
Волшебная Урна Осьминога

27

Python 2 , 145 байт

print'i am now tiny @ @s##s#ed#act#acts#@#@s#@ed#@ing#arguments#accusation#accusations#advertisings'.replace('#',' counter').replace('@','check')

Попробуйте онлайн!

Печатает эти слова, разделенные пробелами:

i
am
now
tiny
check
checks
counter
counters
countered
counteract
counteracts
countercheck
counterchecks
counterchecked
counterchecking
counterarguments
counteraccusation
counteraccusations
counteradvertisings

18
«Я теперь крошечный» - я как самостоятельного описательного кода ...
Trichoplax

16

PowerShell , 166 163 байта

'a
an
and'
'','s','le','ler','lers'|%{"hand$_"}
($a="character")
($x=-split"s ed ful ized istic istics ization izations istically ologically"|%{"$a$_"})
"un"+$x[8]

Попробуйте онлайн!

Оптимизировано вручную, нет алгоритмов. Две петли |%{ }привязывают соответствующий конец к соответствующему началу. Я ищу способ поставить их в один цикл.


Вау, мой пример выглядит еще тупее, теперь xD! characterful > newfoundland
Волшебная Осьминог Урна

10

Python, 169 байт

z='odahs princesses acclimatizers cyanocobalamines aerothermodynamics underrepresentations'.split()
print([y[:i+1]for x,y in zip(['']+z,z)for i in range(len(x),len(y))])

Распечатывает список слов.

Попробуйте онлайн!

Слова, полученные путем сканирования последовательностей совпадающих слов, по началу или концу слова и начиная с длины 1 вверх или от длины 20 нижних слов.

Вот сценарий, который я использовал, чтобы получить его. (восходящий-совпадающий)


171 байт (кажется, что должно быть короче, но это не так): попробуйте онлайн!
Стивен

8

Питон 2 ,  126 120  112 байтов

-8 байт благодаря Anders Kaseorg (я думал, что перенес это из Python 3, но оказалось, что я забыл!)

Порт моего Jelly ответа тоже хорошо работает в Python ...

for w in"agar abreacts acknowledges codeterminations deindustrializations".split():print w[2:-1],w[2:],w[:-1],w,

Попробуйте онлайн!

Печать:

a ar aga agar react reacts abreact abreacts knowledge knowledges acknowledge acknowledges determination determinations codetermination codeterminations industrialization industrializations deindustrialization deindustrializations 

Python 2 позволяет вам заканчиваться print w[2:-1],w[2:],w[:-1],w,на -8 байтов.
Андерс Касеорг

Ой, я забыл об этом или думал, что сделал это - у меня где-то открыта страница TIO с этим!
Джонатан Аллан

Спасибо за это, хотя!
Джонатан Аллан

6

JavaScript, 159 байт

_='a1an1and}}swwrwrs~~s~ed~ful~ized{{s~|~|s{ally~ologically1misx|s~1x}1hand|ization{~isticxcharacterw}le';for(i of'wx{|}~')with(_.split(i))_=join(pop());f=f=>_

Попробуйте онлайн!

Спасибо @HyperNeutrino за редактирование. Но я возвращаюсь к старому посту (убирая флаг "Node.js"), потому что он не имеет ничего общего с Node.js. Это прекрасно работает и в браузерах.


f=f=>_сбросил меня, я был как "не будет ли это переопределить функцию" (это просто предотвратило бы рекурсию)
Стивен

@Стивен. Я не уверен, разрешено ли оставлять обычную строку. Как я понял, код должен представлять функцию (или целую программу), поэтому я добавил ее в конец. Переменная _уже содержит строку.

Вы правы, я просто был озадачен тем, что он сделал, поскольку вы повторно использовали имя переменной ( fкак имя функции и (игнорируемое) имя параметра)
Стивен,

6

05AB1E , 51 байт

’¯Óa‚‡’D“€…€¤Þ¨íʃé¢Ã¥£žÜ¶ß´ç…àçî×Ü»‡ÛೌçÓs²® ÿ ÿs

Попробуйте онлайн!

Разделитель:

Список слов: a, an, ana, anal, house, houses, amazing, criminal, seriously, apparently, accessories, disciplinary, distributions, discrimination, congratulations, responsibilities, characterizations, telecommunications, representationalist, representationalists


1
хочу участвовать в собственном вызове усиливается
Волшебная Осьминог Урна

Я предполагаю, что 05AB1E не имеет 20-длинных слов в словаре: P? Еще предстоит проверить себя.
Волшебная Осьминог Урна

@MagicOctopusUrn Нет .
Аднан

@adnan Ух ты, такой подход ... может быть хорошей идеей, если ты найдешь способ генерировать все кодовые точки словаря в одинаковых 1-10байтах ...
Волшебная Осьминога Урна

1
@adnan, это была моя первая попытка, я уверен, что ты можешь выбить ее из парка.
Волшебная Осьминог Урна

5

Рубин, 120 байт

j=3
$><<?a
"  5  T &  }   <    ".bytes{|i|puts
8.times{|k|$><<%w{dehydro chlori ge n at ion e s}[k]*(j>>7-k&1)}
j+=i-31}

Печатает следующее. Каждое слово построено из 8 строк выше, используя двоичные цифры jдля выбора. На каждой итерации цикла jувеличивается значение ASCII символов в строке в кавычках, минус 31.

a
es
ion
ions
nates
nation
nations
chlorine
chlorines
chlorinate
chlorinates
chlorination
dehydrogenate
dehydrogenates
dehydrogenation
dehydrogenations
dehydrochlorinate
dehydrochlorinates
dehydrochlorination
dehydrochlorinations

4

Pyth , 74 байта

Психопатологические приключения

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

Попробуйте онлайн! Это выводит:

['a', 'al', 'all', 'ally', 'logic', 'advent', 'venture', 'ventures', 'adventure', 'adventures', 'venturesome', 'pathological', 'adventuresome', 'pathologically', 'venturesomeness', 'psychopathologic', 'adventuresomeness', 'psychopathological', 'adventuresomenesses', 'psychopathologically']

Который после форматирования дает:

a
al
all
ally
logic
advent
venture
ventures
adventure
adventures
venturesome
pathological
adventuresome
pathologically
venturesomeness
psychopathologic
adventuresomeness
psychopathological
adventuresomenesses
psychopathologically

объяснение

Ключ должен был выбрать два слова, которые дополняют друг друга. Я выбрал « психопатологически » и « приключения » благодаря небольшому инструменту, который я написал . Используя эти два слова, для любой длины мы можем найти подстроки, которые являются реальными словами из предоставленного списка . Все возможные разложения демонстрируются:

a al all ally logic psycho logical          logically pathologic             pathological               pathologically                 psychopathologic                   psychopathological                     psychopathologically
a ad ess ness esses advent venture ventures adventure adventures venturesome              adventuresome                venturesomeness                  adventuresomeness                    adventuresomenesses

Следующим шагом будет просто получить список индексов для данной декомпозиции. Для моей декомпозиции я выбрал:, 16 16 16 16 11 20 22 22 20 20 22 6 20 6 22 0 20 0 20 0которые являются индексами в сцепленных строках:psychopathologicallyadventuresomenesses .

Наконец, напишите программу, которая просто перебирает индексы и отображает подстроку для каждого заданного индекса с увеличением длины.

Для сохранения байтов я сохранил индексы в базовой строке 36. Верно,GGGGBKMMKKM6K6M0K0K0 это список моих индексов в базе 36 (поскольку мой самый высокий индекс - 22, я мог бы использовать базу 23).

Объяснение программы

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

                                                 iR36"GGGGBKMMKKM6K6M0K0K0    # For each character in the string, convert from base 36 to base 10
.e                                                                            # Loop over indexes: b are the indexes, h their position
  :"psychopathologicallyadventuresomenesses"b+bhk                             # In "psy...ses", select the substring at index b and of length k + 1

психопатологически - «В условиях научного изучения психических расстройств». Интересный.
Волшебная Осьминог Урна

3

C #, 259 байт

_=>{var a=new int[7].Select((n,i)=>"abasers".Substring(0,i+1)).ToList();a.Add("abacuses");a.AddRange(new int[12].Select((n,i)=>(i>10?"un":"")+"character"+"|s|ed|ful|ised|istic|istics|isation|isations|istically|ologically|istically|".Split('|')[i]));return a;}

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


Woops на самом деле еще дольше, потому что мне нужно включитьusing System.Linq;
TheLethalCoder

4
Просто вернуть их в строке, разделенной пробелами, как 245.
Волшебная Осьминога Урна

@MagicOctopusUrn Я знаю, это то, что я сказал в своем ответе ...
TheLethalCoder

3

05AB1E , 130 68 байтов

-62 байта благодаря Эрику Аутгольферу

743222’€Ü†š ƒ´aî³eros €‡a•¿f²Ñns …¿en®íizers ‚ÀÙŠs ‡åØŽ’#‚øε`ηRs£R}˜

Попробуйте онлайн!

Принимает столько префиксов, сколько необходимо от каждого из следующих слов:

amusers
carabinero
foraminiferans
photosensitizers
videoconferencings
radiopharmaceuticals

Печатает эти слова в массиве:

a
am
amu
amus
amuse
amuser
amusers
carabine
carabiner
carabinero
carabineros
foraminifera
foraminiferan
foraminiferans
photosensitizer
photosensitizers
videoconferencing
videoconferencings
radiopharmaceutical
radiopharmaceuticals 



Некоторые другие -6 тоже ... (к сожалению, я не могу заменить 743222на •B/™•)
Эрик Outgolfer

Да, вам не нужно, Sтак что это -62 байта. ;)
Эрик Outgolfer

@EriktheOutgolfer Спасибо! Я пытался сделать что-то подобное в последний раз, но я не мог заставить это работать. Не могли бы вы объяснить, как работают сжатые строки?
Райли

3

Жевательная резинка , 66 байт

00000000: 6d8b 410a 0020 0804 bf6a 4407 a134 5aff  m.A.. ...jD..4Z.
00000010: 4fe6 29ac 93ce b0a3 543a ad06 3f6c e769  O.).....T:..?l.i
00000020: 46f3 3ae2 b218 abc4 2cab d389 a805 82aa  F.:.....,.......
00000030: fee1 6e43 2444 62df 0f46 4a1e f356 8cf1  ..nC$Db..FJ..V..
00000040: 73d8                                     s.

Выход:

o`al`res`alit`reset`preset`present`rational`represent`rationales`annotations`connotations`connotational`representation`representations`representational`misrepresentation`misrepresentations`representationalism`representationalisms

Попробуйте онлайн!

Слова и разделитель были выбраны путем имитации отжига:

from __future__ import print_function
import math
import random
import zlib

wordlists = \
    [[chr(x).encode() for x in [9, 10] + list(range(32, 127)) if not chr(x).encode().isalpha()]] + \
    [open('wordListsByLength/{}.txt'.format(n), 'rb').read().splitlines() for n in range(1, 21)]

words = [random.choice(wordlist) for wordlist in wordlists]

temperature = 10.
score = 9999
best = score

while True:
    old_score = score
    n = random.randrange(len(wordlists))
    old_word = words[n]
    words[n] = random.choice(wordlists[n])
    z = zlib.compressobj(9, zlib.DEFLATED, -zlib.MAX_WBITS, 9)
    score = len(z.compress(words[0].join(words[1:])) + z.flush())
    if score > old_score and random.random() >= math.exp((old_score - score) / temperature):
        words[n] = old_word
        score = old_score
    else:
        temperature *= .99999
        if score < best:
            best = score
            print(best, repr(words[0].join(words[1:])))


2

Рубин, 107 байт

p(z=%w{o or for form ultra})+[z[3],c="centrifug",z[4]+c].product(%w{ed ing ally ation ations}).map{|i|i*""}

Печатает следующий массив.

["o", "or", "for", "form", "ultra", "formed", "forming", "formally", "formation", "formations", "centrifuged", "centrifuging", "centrifugally", "centrifugation", "centrifugations", "ultracentrifuged", "ultracentrifuging", "ultracentrifugally", "ultracentrifugation", "ultracentrifugations"

Изменение pfor puts(с завершающим пробелом) дает следующее за счет дополнительных 4 байтов.

o
or
for
form
ultra
formed
forming
formally
formation
formations
centrifuged
centrifuging
centrifugally
centrifugation
centrifugations
ultracentrifuged
ultracentrifuging
ultracentrifugally
ultracentrifugation
ultracentrifugations

1

Japt , 119 байт

`av„v„dvjvjsvj¤vj¤svfœejvqvqsvq‚vqˆgvqizƒvqÄKcvqÄKcsvqizÂ\nvqizÂ\nsvq‰tkvqologkv·sqizÂ\ns`d'j`Ê@`'k`Åœ§`'q`Ö‹a×` q'v ·

Попробуйте онлайн!

Печать:

a
an
and
hand
hands
handle
handles
freehand
character
characters
charactered
charactering
characterizes
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
mischaracterizations
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.