用单词数到20!


39

使用以下以长度分隔的单词列表:

https://github.com/魔术八爪鱼缸/ 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可打印的非字母字符(偶数,无关紧要)。
  • 仅小写或大写,选择一个并坚持;不允许使用标题。
  • 请不要使用我的示例20个字的100%复制...
    • 您可以,但这没什么好玩的。
    • 无论如何,它们可能都不理想。
  • 如果您不想使用分隔的文件,并且需要完整列表:
    • 使用unsorted.txt,这是所有n.txt文件的一个,按字母顺序排序。
  • 注意,您不能直接从URL读取,这是一个常见的漏洞
  • 这是,最低字节数将是获胜者。

作为参考,输出为229字节,因此低于此范围的任何内容都优于硬编码。


可能的元标记讨论:

的用户可以从一系列可能性中定制输出?


4
作为来自纽芬兰的人,我非常高兴。:)
分散

6
@Christian你可以说我... ( •_•)>⌐■-■ 了解杰出的纽芬兰(⌐■_■)
Magic Octopus Urn

1
@Riley正在扩展它,每个单词之间有1个定界符,尽管我可以看到很多情况下会有所帮助的:P。
Magic Octopus Urn

1
@JonathanAllan刚刚做了:)。
Magic Octopus Urn's

1
选择单词的实用程序
吉姆(Jim)

Answers:


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个字。



老实说,我不知道果冻有字典。
魔术章鱼缸

3
30 BYTES!?? !! ??!我刚去的睡眠和醒来的时候,它是低至30字节!! ?? 11 O_O_O?!?!
埃里克Outgolfer

30字节!?!?!??!我放弃了一个月的挑战,他赢得了30枚BYTES!?!?!
魔术章鱼缸

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

Python 2中 126个120  112字节

感谢Anders Kaseorg -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在字典:P中没有20个长度的单词?尚未实际检查自己。
魔术章鱼缸

@MagicOctopusUrn 不行
阿德南

@adnan哇,这种方法...如果您能找到一种以1-10字节为单位生成所有字典代码点的方法,那么实际上可能是一个好主意...
Magic Octopus Urn

1
@adnan,这是我的第一次尝试,我敢肯定您可以将它从公园里摔下来。
魔术章鱼缸

5

Ruby,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;}

还有一些明显的打高尔夫球的空间,但是我已经没时间了。我知道它的时间比硬编码长,所以稍后我会修复它。


实际情况甚至更长,因为我需要包括using System.Linq;
TheLethalCoder

4
刚刚返回他们在用空格的字符串分割为像245
魔术八达通金塔

@MagicOctopusUrn我知道这就是我在回答中所说的...
TheLethalCoder

3

05AB1E130 68字节

-62个字节,感谢外长者Erik

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字节。;)
Erik the 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

泡泡糖,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

Ruby,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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.