Порахуйте до 20 зі словами!


39

Використовуючи такі розділені по довжині списки слів:

https://github.com/Magic Octopus 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 Можна сказати, що я ... ( •_•)>⌐■-■ розумію видатну ньюфаундленд(⌐■_■)
Magic Octopus Urn

1
@ Райлі, що розтягує його, 1 роздільник між кожним словом, хоча я можу побачити багато ситуацій, коли це допоможе: P.
Magic Octopus Urn

1
@JonathanAllan щойно зробив :).
Magic Octopus Urn

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 стислих слів.


Словник Darn Jelly! +1
Ерік Аутгольфер

Чесно кажучи, я не знав, що у Джеллі є словник.
Чарівна восьминога урна

3
30 BYTES! ?? !! ??! Я просто заснув і прокинувся, і це так низько, як 30 BYTES? !! ??!?! 11 O_O_O
Erik the Outgolfer

30 байт!?!?! ??! Я ЗАБОРУЮТЬСЯ ПРО ЦІЙ ВИПУСК НА МЕСЯЦІ І ВІН ВИХОДИЛИ З 30 БАЙТА!?!?!
Magic Octopus Urn

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
"Мені зараз крихітно" - мені подобається код, що
описується

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
Magic Octopus Urn

10

Пітон, 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

Python 2 ,  126 120  112 байт

-8 байт завдяки Андерсу Касеоргу (я думав, що це перенесло з 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 байт.
Anders Kaseorg

Ой, ой, я забув про це чи думав, що це зробив - у мене десь відкрита сторінка 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=>_кинув мене, я був на кшталт "чи не це перекриє функцію" (це просто запобіжить рекурсію)
Stephen

@StepHen. Я не впевнений, чи дозволяється залишати звичайну рядок. Як я зрозумів, код повинен представляти функцію (або всю програму), тому я додав її до кінця. Змінна _вже містить рядок.

Ви маєте рацію, я просто збився з пантелику з приводу того, що це зробив, оскільки ви повторно використали ім'я змінної ( fяк і ім'я функції, так і (ігнорувалося) ім'я параметра)
Stephen

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? Досі насправді перевірити себе.
Magic Octopus Urn

@MagicOctopusUrn Nope .
Аднан

@adnan вау, такий підхід ... може насправді бути хорошою ідеєю, якщо ви зможете знайти спосіб генерувати всі кодові точки у словнику у таких 1-10байтах ...
Magic Octopus Urn

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

психопатологічно - "З точки зору наукового вивчення психічних розладів". Цікаво.
Magic Octopus Urn

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 байти. ;)
Ерік Аутгольфер

@EriktheOutgolfer Дякую! Я намагався зробити щось подібне до останнього, але я не міг змусити його працювати. Ви не проти пояснити, як працює стислий струна?
Райлі

3

Bubblegum , 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

Bubblegum , 78 байт

00000000: 654b c301 4431 10bd a7cb d876 9a5f efe7  eK..D1.....v._..
00000010: 781e 2080 ee55 0488 ffc8 9f69 e86f a5ff  x. ..U.....i.o..
00000020: ce00 0b98 202e 34ed d701 a464 bf59 35fb  .... .4....d.Y5.
00000030: 23d7 9192 b948 7c79 f351 0c8b f4ee 06e4  #....H|y.Q......
00000040: 8b05 1a33 77c8 1bcf 7f58 7577 e113       ...3w....Xuw..

Спробуйте в Інтернеті!


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"

Зміна pдля 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.