Kelimelerle 20'ye kadar say!


39

Aşağıdaki uzunlukla ayrılmış sözcük listelerini kullanarak:

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

1'den n 20'ye kadar olan her uzunluk listesinden 1 kelime yazdır , işte geçerli bir örnek:

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

Alternatif olarak (dizi):

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

Alternatif olarak (aşağıdakilerden başka yazdırılabilir alfabetik olmayan ayırıcı \n):

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

kurallar

  • Kendi 20 kelimeni seçebilirsin.
  • Kelimeler, daha özel olarak, verilen github sayfasından olmalıdır:
    • 1, 1. txt, 1, 2. txt, vb ...
    • Not, 20.txt'nin üzerindeki dosyalar var, ancak 20 karakterden daha uzun bir kelimeye ihtiyacınız yok.
  • Geçerli ayırıcılar ASCII yazdırılabilir alfabetik olmayan karakterlerdir (sayılar bile umrumda değil).
  • Sadece küçük harf veya büyük harf, birini seç, yapış; başlık davaya izin yok.
  • Lütfen örnek 20 kelimemin% 100 kopyasını kullanmayın ...
    • Yapabilirsin, ama bu eğlenceli değil.
    • Muhtemelen zaten en alt düzeyde olabilirler ...
  • Ayrılmış dosyaları kullanmak istemezseniz ve tam bir listeye ihtiyacınız varsa:
    • Sıralanmamış.txt kullanın , bunların hepsi n.txt dosyalarının tümü alfabetik olarak sıralanmıştır.
  • Not, URL’den doğrudan okuyamazsınız, ortak bir boşluktur .
  • Bu , en düşük bayt sayısı kazanacak.

Başvuru için, çıktı 229 bayttır, bu nedenle altına giren herhangi bir şey sabit kodlamayı yener.


Olası meta-etiket-tartışma:

çıktılarını bir olasılıklar listesinden kişiselleştirebileceği kullanıcı mı?


4
Newfoundland’dan biri olarak, aradaki notu takdir ediyorum. :)
scatter

6
@Hristiyan Sen söyleyebilirim ki ... ( •_•)>⌐■-■ olağanüstü newfoundland anlıyorum(⌐■_■)
Magic Octopus Urn

1
@ Gerici @Riley, her kelimenin arasında 1 sınırlayıcı vardı, bununla birlikte yardım edebileceği birçok durum görebiliyorum: P.
Magic Octopus Urn,

1
@ JonathanAllan az önce yaptı :).
Magic Octopus Urn,

1
Kelimeleri seçmek için yardımcı .
Jim

Yanıtlar:


19

Jelly ,  49 35 31  30 bayt

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

Karakter listesini döndüren niladik bir bağlantı veya dizge olarak listelenen tam program yazdırması (boşluklarla ayrılmış sözcükler).

Çevrimiçi deneyin!

Nasıl?

ṫ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

... verim:

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

Önceki:

@ 35:

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

10 kelime ve uzunluk-1 ön ekini kullanma.

@ 49

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

Sadece 20 sıkıştırılmış kelime.


Kahretsin Jelly sözlüğü! +1
Outgolfer Erik,

Dürüst olmak gerekirse Jelly'in bir sözlüğü olduğunu bilmiyordum.
Magic Octopus Urn,

3
30 BYTES! ?? !! ??! Sadece uyumaya başladım ve uyandım ve 30 BYTES kadar düşük mü? !! ??!?! 11 O_O_O
Erik

30 BYTES!?!?! ??! Bir AY İÇİN BU ZORLUK ÜZERİNE UNUTMAYIN VE 30 BYTES İLE KAZANDI!?!?!
Magic Octopus Urn,

27

Python 2 , 145 bayt

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

Çevrimiçi deneyin!

Bu kelimeleri boşluklarla ayırarak yazdırır:

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

18
"Ben şimdi
küçüğüm

16

PowerShell , 166 163 bayt

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

Çevrimiçi deneyin!

Elle optimize edilmiş, algoritma yok. İki döngü |%{ }, uygun son ile uygun başlangıca yapıştırılır. Onları bir döngüye indirmenin bir yolunu arıyorum.


Vay, benim örneğim şimdi xD bile aptal görünüyor! characterful > newfoundland
Magic Octopus Urn

10

Python, 169 bayt

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

Kelimelerin bir listesini yazdırır.

Çevrimiçi deneyin!

Eşleşen kelimelerin taranması ile kazanılan kelimeler, kelimenin başlangıcı veya bitişi ile ve uzunluk 1'den başlayarak veya uzunluk 20 aşağı kelimelerden başlayarak elde edilir.

İşte onu almak için kullandığım komut dosyası. (yukarı-başlangıç-eşleştirme)


171 bayt (daha kısa olması gerektiğini hissediyor, ancak değil): Çevrimiçi deneyin!
Stephen,

8

Python 2 ,  126 120  112 bayt

-8 bayt Anders Kaseorg sayesinde (Bunu Python 3'ten geçirdiğimi sanıyordum, ama unutmuşum!)

Jelly cevabımın limanı Python'da da iyi çalışıyor ...

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

Çevrimiçi deneyin!

Baskılar:

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,, by8 bayt ile bitmenize izin verir .
Anders Kaseorg

Hata! Bunu unuttum ya da yaptığımı düşündüm - bununla bir yerde açık bir TIO sayfam var!
Jonathan Allan,

Yine de bunun için teşekkürler!
Jonathan Allan,

6

JavaScript, 159 bayt

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

Çevrimiçi deneyin!

Düzenleme için @HyperNeutrino teşekkürler. Ancak, Node.js. ile ilgisi olmadığı için eski postaya geri dönüyorum ("Node.js" etiketini kaldırarak). Mükemmel tarayıcılarda da çalışır.


f=f=>_beni attı, "işlevi geçersiz kılmaz" (yinelemeyi engellerdi) gibiydi
Stephen

@StepHen. Düz bir dize bırakılmasına izin verilip verilmediğinden emin değilim. Anladığım kadarıyla kodun bir işlevi (veya tüm programı) temsil etmesi gerekir, bu yüzden sonuna kadar ekledim. Değişken _zaten dize içeriyor.

Eğer (değişken adını yeniden beri Doğru, ben sadece gerçekten, bu yaptıklarıyla olarak karıştı konum ffonksiyon adı ve (ihmal) parametresi adı hem gibi)
Stephen

6

05AB1E , 51 bayt

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

Çevrimiçi deneyin!

Ayırıcı:

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


1
kendi meydan okumaya katılmak istiyorum yoğunlaşıyor
Magic Octopus Urn

Tahmin ediyorum 05AB1E, sözlükte 20-uzun kelime yok: P? Henüz kendimi kontrol etmedim.
Magic Octopus Urn,

@MicicOctopusUrn Hayır .
Adnan,

@adnan vay, bu yaklaşım ... aslında 1-10bayt gibi tüm sözlük kod noktaları oluşturmak için bir yol bulabilirseniz iyi bir fikir olabilir ...
Magic Octopus Urn

1
@ adnan benim ilk denememdi, eminim ki parktan çıkarabilirsiniz.
Magic Octopus Urn,

5

Ruby, 120 bayt

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}

Aşağıdakileri yazdırır. Her sözcük, jseçmek için ikili rakamları kullanarak yukarıdaki 8 dizeden oluşur . Döngünün her yinelemesinde j, dizedeki karakterlerin ASCII değeri, eksi 31 olarak eklenir.

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

4

Pyth , 74 bayt

Psikopatolojik olarak maceraperestlikler

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

Çevrimiçi deneyin! Çıktıları:

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

Hangi, bir kez biçimlendirilmiş verimler:

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

açıklama

Anahtar, birbirini tamamlayan iki kelime seçmekti. Yazdığım küçük bir araç sayesinde " psikopatolojik olarak " ve " maceraperestliği " seçtim . Bu iki kelimeyi kullanarak, herhangi bir uzunluk için verilen listenin gerçek kelimeleri olan alt dizileri bulabiliriz . Muhtemel bütün ayrışmalar:

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

Bir sonraki adım, verilen bir ayrıştırmaya ilişkin indekslerin listesini almaktır. Ayrıştırmam için, 16 16 16 16 11 20 22 22 20 20 22 6 20 6 22 0 20 0 20 0birleştirilen dizgelerin indeksleri olan : 'i seçtim psychopathologicallyadventuresomenesses.

Son olarak, indekslerin üzerinden geçen ve alt dizgiyi verilen her dizinde artan uzunluklarla gösteren bir program yazın.

Bayt kaydetmek için, dizinleri bir baz 36 dizgisinde sakladım. Aslında, GGGGBKMMKKM6K6M0K0K036 tabanındaki indekslerimin listesi (en yüksek endeksim 22 olduğundan, 23 tabanını kullanabilirdim).

Program açıklaması

.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

psikopatolojik olarak - "Zihinsel bozuklukların bilimsel çalışması açısından." İlginç.
Magic Octopus Urn

3

C #, 259 bayt

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

Hala golf oynamak için bariz bir yer ama şimdi zamanım bitiyor. Zor kodlamanın daha uzun sürdüğünü biliyorum, bu yüzden daha sonra biraz zaman alırken düzeltecek.


Woops aslında daha uzun çünkü using System.Linq;
eklemem

4
Onları boşluklarla bölünmüş bir dizgede döndürmek 245 gibidir.
Magic Octopus Urn

@ MagicOctopusUrn Cevabımda söylediğim şeyin bu olduğunu biliyorum ...
TheLethalCoder

3

05AB1E , 130 68 bayt

-62 bayt , outgolfer erik sayesinde

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

Çevrimiçi deneyin!

Aşağıdaki kelimelerin her birinden gerektiği kadar önek alır:

amusers
carabinero
foraminiferans
photosensitizers
videoconferencings
radiopharmaceuticals

Bu kelimeleri bir dizide yazdırır:

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



Bazı başka -6 da ... (ne yazık ki 743222ile değiştiremiyorum •B/™•)
Outgolfer Erik

Evet, ihtiyacın yok Syani -62 byte. ;)
Outgolfer Erik,

@EriktheOutgolfer Teşekkürler! Sonuncusu gibi bir şey yapmaya çalışıyordum ama işe yaramadı. Sıkıştırılmış dizelerin nasıl çalıştığını açıklayabilir misiniz?
Riley,

3

Ciklet , 66 bayt

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.

Çıktı:

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

Çevrimiçi deneyin!

Kelimeler ve ayırıcı tavlama benzetimi ile seçildi:

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 bayt

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

Çevrimiçi deneyin!


2

Ruby, 107 bayt

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

Aşağıdaki diziyi yazdırır.

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

Değiştirme piçin puts(boşluk firar ile) ek bir 4 baytlık bir maliyetle aşağıdaki verir.

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

1

Japt , 119 bayt

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

Çevrimiçi deneyin!

Baskılar:

a
an
and
hand
hands
handle
handles
freehand
character
characters
charactered
charactering
characterizes
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
mischaracterizations
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.