Hitung sampai 20 dengan Kata-kata!

39

Menggunakan daftar kata yang dipisahkan dengan panjang sebagai berikut:

https://github.com/Magic Octopus Mm / wordListsByLength

Cetak 1 kata dari setiap daftar panjang n mulai dari 1 hingga 20, berikut adalah contoh yang valid:

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

Atau (larik):

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

Atau (pemisah non-alfabet yang dapat dicetak selain \n):

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

Aturan

  • Anda dapat memilih 20 kata sendiri.
  • Kata-kata harus dari halaman github yang disediakan, lebih khusus:
    • 1 dari 1.txt, 1 dari 2.txt, dll ...
    • Catatan, file di atas 20.txt ada, tetapi Anda tidak memerlukan kata di atas 20 karakter.
  • Pemisah yang valid adalah karakter non-alfabet ASCII yang dapat dicetak (angka genap, tidak peduli).
  • Huruf kecil atau huruf besar saja, pilih satu, tempel saja; tidak ada judul kasus diizinkan.
  • Tolong jangan gunakan salinan 100% dari contoh saya 20 kata ...
    • Anda bisa, tapi itu tidak menyenangkan.
    • Mereka cenderung suboptimal ...
  • Jika Anda TIDAK ingin menggunakan file yang dipisahkan, dan perlu daftar lengkap:
    • Gunakan unsorted.txt , ini semua nfile .txt dalam satu file, disortir berdasarkan abjad.
  • Catatan, Anda TIDAK BISA langsung membaca dari URL, itu adalah celah umum .
  • Ini adalah , byte-count terendah akan menjadi pemenang.

Sebagai referensi, outputnya adalah 229 byte, jadi apa pun yang berada di bawah itu mengalahkan hardcoding.


Kemungkinan diskusi meta-tag:

oleh pengguna di mana pengguna dapat menyesuaikan output mereka dari daftar kemungkinan?

Guci Gurita Ajaib
sumber
4
Sebagai seseorang dari Newfoundland, saya menghargai teriakan itu. :)
scatter
6
@Christian Bisa dibilang saya ... ( •_•)>⌐■-■ pahami newfoundland yang luar biasa(⌐■_■)
Magic Octopus Mm
1
@Riley yang meregangkannya, 1 pembatas di antara setiap kata, meskipun saya bisa melihat banyak situasi di mana itu akan membantu: P.
Magic Gurita Guci
1
@ Jonathan Allan baru saja melakukan :).
Magic Gurita Guci
1
Utilitas untuk memilih kata-kata.
Jim

Jawaban:

19

Jelly ,  49 35 31  30 byte

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

Tautan niladik yang mengembalikan daftar karakter, atau program lengkap yang mencetak daftar itu sebagai string (kata-kata dibatasi oleh spasi).

Cobalah online!

Bagaimana?

ṫ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

... yang menghasilkan:

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

Sebelumnya:

@ 35:

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

Menggunakan 10 kata dan awalan 1 panjangnya.

@ 49

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

Cukup 20 kata yang dikompresi.

Jonathan Allan
sumber
Kamus Darn Jelly! +1
Erik the Outgolfer
Sejujurnya aku tidak tahu Jelly punya kamus.
Magic Gurita Guci
3
30 BYTES! ?? !! ??! Saya hanya pergi tidur dan bangun dan serendah 30 BYTES? !! ??!?! 11 O_O_O
Erik the Outgolfer
30 BYTES!?!?! ??! SAYA LUPA TENTANG TANTANGAN INI SELAMA SATU BULAN DAN DIA MENANG DENGAN 30 Byte!?!?!
Magic Gurita Guci
27

Python 2 , 145 byte

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

Cobalah online!

Mencetak kata-kata ini, dipisahkan oleh spasi:

i
am
now
tiny
check
checks
counter
counters
countered
counteract
counteracts
countercheck
counterchecks
counterchecked
counterchecking
counterarguments
counteraccusation
counteraccusations
counteradvertisings
Lynn
sumber
18
"Saya sekarang kecil" - Saya suka kode deskriptif-diri ...
trichoplax
16

PowerShell , 166 163 byte

'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]

Cobalah online!

Dioptimalkan dengan tangan, tanpa algoritma. Kedua loop |%{ }menempel pada akhir yang sesuai untuk awal yang tepat. Saya mencari cara untuk membuatnya menjadi satu lingkaran.

AdmBorkBork
sumber
Wow, contoh saya terlihat lebih bodoh sekarang xD! characterful > newfoundland
Magic Gurita Guci
10

Python, 169 byte

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))])

Mencetak daftar kata-kata.

Cobalah online!

Kata-kata diperoleh dengan memindai urutan kata-kata yang cocok, dengan memulai atau akhir kata dan mulai dari panjang 1 ke atas atau dari 20 kata panjang.

Ini skrip yang saya gunakan untuk mendapatkannya. (yang cocok dengan start up)

Uriel
sumber
171 byte (rasanya lebih pendek, tetapi tidak): Coba online!
Stephen
8

Python 2 ,  126 120  112 byte

-8 byte berkat Anders Kaseorg (saya pikir saya sudah memigrasikan ini dari Python 3, tapi ternyata saya lupa!)

Port jawaban Jelly saya berfungsi dengan baik di Python juga ...

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

Cobalah online!

Cetakan:

a ar aga agar react reacts abreact abreacts knowledge knowledges acknowledge acknowledges determination determinations codetermination codeterminations industrialization industrializations deindustrialization deindustrializations 
Jonathan Allan
sumber
Python 2 memungkinkan Anda untuk mengakhiri dengan print w[2:-1],w[2:],w[:-1],w,−8 byte.
Anders Kaseorg
Oh, oops, aku lupa tentang ini atau berpikir aku akan melakukannya - aku punya halaman TIO di suatu tempat dengan itu!
Jonathan Allan
Terima kasih untuk itu!
Jonathan Allan
6

JavaScript, 159 byte

_='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=>_

Cobalah online!

Terima kasih @HyperNeutrino untuk edit. Tapi, saya kembali ke pos lama (menghapus bendera "Node.js") karena tidak ada hubungannya dengan Node.js. Ini juga berfungsi di browser.


sumber
f=f=>_mengusir saya, saya seperti "bukankah itu akan mengesampingkan fungsi" (itu hanya akan mencegah rekursi)
Stephen
@LangkahHen. Saya tidak yakin apakah meninggalkan string biasa diperbolehkan. Seperti yang saya pahami, kode harus mewakili fungsi (atau seluruh program), itu sebabnya saya menambahkannya sampai akhir. Variabel _sudah berisi string.
Anda benar, saya benar-benar bingung dengan apa yang terjadi, karena Anda menggunakan kembali nama variabel ( fkarena keduanya nama fungsi dan (diabaikan) nama parameter)
Stephen
6

05AB1E , 51 byte

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

Cobalah online!

Pemisah:

Daftar kata-kata: a, an, ana, anal, house, houses, amazing, criminal, seriously, apparently, accessories, disciplinary, distributions, discrimination, congratulations, responsibilities, characterizations, telecommunications, representationalist, representationalists

Erik the Outgolfer
sumber
1
ingin berpartisipasi dalam tantangan sendiri yang semakin intensif
Magic Octopus Mm
Saya menduga 05AB1E tidak memiliki kata-kata sepanjang 20 dalam kamus: P? Belum benar-benar memeriksa sendiri.
Magic Gurita Guci
@MagicOctopusUrn Tidak .
Adnan
@adnan wow, pendekatan itu ... mungkin sebenarnya ide yang bagus jika Anda dapat menemukan cara untuk menghasilkan semua poin kode kamus dalam 1-10byte seperti ...
Magic Octopus Mm
1
@ Adnan itu adalah upaya pertama saya, saya yakin Anda bisa menjatuhkannya dari taman.
Magic Gurita Guci
5

Ruby, 120 byte

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}

Mencetak berikut ini. Setiap kata dibangun dari 8 string di atas, menggunakan digit biner juntuk memilih. Pada setiap iterasi dari loop, jditambahkan oleh nilai ASCII dari karakter dalam string dalam tanda kutip, minus 31.

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

Pyth , 74 byte

Petualang psikopatologis

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

Cobalah online! Ini menghasilkan:

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

Yang, hasil yang diformat sekali:

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

Penjelasan

Kuncinya adalah memilih dua kata yang saling melengkapi. Saya memilih " psychopathologically " dan " adventuresomenesses " berkat alat kecil yang saya tulis . Dengan menggunakan dua kata ini, untuk panjang berapa pun kita dapat menemukan substring yang merupakan kata sebenarnya dari daftar yang disediakan . Semua kemungkinan pembusukan ditunjukkan oleh:

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

Langkah selanjutnya adalah hanya untuk mendapatkan daftar indeks untuk dekomposisi yang diberikan. Untuk dekomposisi saya, saya memilih: 16 16 16 16 11 20 22 22 20 20 22 6 20 6 22 0 20 0 20 0, yang indeks dalam string concatenated: psychopathologicallyadventuresomenesses.

Terakhir, tulis sebuah program yang hanya melingkari indeks dan menampilkan substring pada setiap indeks dengan panjang yang bertambah.

Untuk menghemat byte, saya menyimpan indeks dalam basis 36 string. Memang,GGGGBKMMKKM6K6M0K0K0 adalah daftar indeks saya di basis 36 (karena indeks tertinggi saya adalah 22, saya bisa menggunakan basis 23).

Penjelasan program

.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
Jim
sumber
psikopatologis - "Dalam hal studi ilmiah tentang gangguan mental." Menarik.
Magic Gurita Guci
3

C #, 259 byte

_=>{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;}

Beberapa ruang yang jelas untuk bermain golf, tetapi saya sudah kehabisan waktu sekarang. Saya tahu ini lebih lama daripada pengkodean keras sehingga akan memperbaikinya ketika saya mendapatkan waktu nanti.

TheLethalCoder
sumber
Woops sebenarnya lebih lama karena saya harus memasukkanusing System.Linq;
TheLethalCoder
4
Hanya mengembalikan mereka dalam string yang dipisahkan oleh spasi seperti 245.
Magic Octopus Mm
@MagicOctopusUrn Saya tahu itu yang saya katakan dalam jawaban saya ...
TheLethalCoder
3

05AB1E , 130 68 byte

-62 byte terima kasih kepada Erik the Outgolfer

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

Cobalah online!

Mengambil sebanyak mungkin awalan yang diperlukan dari masing-masing kata berikut:

amusers
carabinero
foraminiferans
photosensitizers
videoconferencings
radiopharmaceuticals

Mencetak kata-kata ini dalam sebuah array:

a
am
amu
amus
amuse
amuser
amusers
carabine
carabiner
carabinero
carabineros
foraminifera
foraminiferan
foraminiferans
photosensitizer
photosensitizers
videoconferencing
videoconferencings
radiopharmaceutical
radiopharmaceuticals 
Riley
sumber
Dan lagi -13.
Erik the Outgolfer
Beberapa lainnya -6 juga ... (sayangnya saya tidak bisa mengganti 743222dengan •B/™•)
Erik the Outgolfer
Ya, Anda tidak perlu Sjadi itu -62 byte. ;)
Erik the Outgolfer
@EriktheOutgolfer Terima kasih! Saya mencoba melakukan sesuatu seperti yang terakhir itu, tetapi saya tidak bisa membuatnya bekerja. Apakah Anda keberatan menjelaskan cara kerja senar terkompresi?
Riley
3

Bubblegum , 66 byte

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.

Keluaran:

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

Cobalah online!

Kata-kata dan pemisah dipilih oleh simulasi anil:

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:])))
Anders Kaseorg
sumber
2

Bubblegum , 78 byte

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..

Cobalah online!

ovs
sumber
2

Ruby, 107 byte

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*""}

Mencetak array berikut.

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

Mengubah pfor puts(dengan ruang tambahan) memberikan yang berikut dengan biaya tambahan 4 byte.

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

Japt , 119 byte

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

Cobalah online!

Cetakan:

a
an
and
hand
hands
handle
handles
freehand
character
characters
charactered
charactering
characterizes
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
mischaracterizations
Oliver
sumber