Wordsで20に数えます!


39

次の長さ区切りの単語リストを使用します。

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

n 有効な例は、1から20までの長さの各リストから1ワードを出力します。

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.txtから1、2.txtから1など...
    • 20.txtを超えるファイルは存在しますが、20文字を超える単語は必要ありません。
  • 有効な区切り文字は、ASCII印刷可能な非アルファベット文字(偶数、気にしない)です。
  • 小文字または大文字のみ、いずれかを選択し、それに固執します。タイトルケースは許可されていません。
  • 私の例の20ワードの100%コピーを使用しないでください...
    • できますが、それは楽しいことではありません。
    • とにかく次善の可能性が高い...
  • 分離されたファイルを使用したくない場合、および完全なリストが必要な場合:
    • unsorted.txtを使用します。これは、すべてのn.txtファイルが1つにまとめられ、アルファベット順にソートされています。
  • URLから直接読み取ることはできません。これは一般的な抜け穴です。
  • これは、最小のバイト数が勝者になります。

参考までに、出力は229バイトなので、その下にあるものはすべてハードコーディングに勝ります。


可能なメタタグの議論:

が可能性のリストから出力をカスタマイズできるユーザー


4
ニューファンドランドの人として、私は大声で感謝します。:)
散布

6
@クリスチャン私は言うことができる... ( •_•)>⌐■-■ 優れたニューファンドランドを理解する(⌐■_■)
マジックタコ

1
@Rileyはそれを伸ばしています。各単語の間に1つの区切り文字がありますが、それが役立つ多くの状況を見ることができます:P
魔法のタコUr

1
@ジョナサンアランはちょうどやった:)。
魔法のタコUr

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
エリック・ザ・アウトゴルファー

正直なところ、Jellyに辞書があるとは知りませんでした。
魔法のタコUr

3
30バイト!?? !! ??!私はちょうど眠りに行って、目が覚めた、それは30バイトとして低いようだ!! ?? 11 O_O_O?!?!
エリックOutgolfer

30バイト!?!?!??!私は月のこの挑戦について忘れました、そして、彼は30バイトで勝ちました!?!?!
魔法のタコUr

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

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

オンラインでお試しください!

手で最適化された、アルゴリズムなし。2つのループ|%{ }は、適切な終了から適切な開始を追跡します。それらを1つのループにまとめる方法を探しています。


うわー、私の例はxDになりました!characterful > newfoundland
魔法のタコUr

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バイト

Anders Kaseorgのおかげで-8バイト(これをPython 3から移行すると思っていましたが、忘れていたことが判明しました!)

私のゼリーの回答のポートは、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=>_私を捨てた、私は「それは機能をオーバーライドしません」のようだった(それは単に再帰を防ぐだろう)
スティーブン

@StepHen。プレーン文字列を残すことが許可されているかどうかはわかりません。私が理解したように、コードは関数(またはプログラム全体)を表す必要があるため、最後に追加しました。変数には_すでに文字列が含まれています。

もしあなたが(変数名を再利用するので、している正しい、私は本当にそれが何をしたかのよう混乱していた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
激化する独自のチャレンジに参加したい
マジックタコUr

05AB1Eには辞書に20語の単語がないと思います:P?まだ実際に自分自身を確認する必要があります。
魔法のタコUr

@MagicOctopusUrn いいえ
アドナン

あなたのようにすべての辞書のコード・ポイントを生成する方法を見つけることができればすごい@adnan、そのアプローチは...実際には良いアイデアかもしれ1-10バイトを...
マジックタコ壺

1
私の最初の試みであった@adnan、私はあなたが公園の外でそれをノックできると確信しています。
魔法のタコUr

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つの文字列から構築され、2進数字を使用し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

説明

重要なのは、互いに補完する2つの単語を選択することでした。私が書いた小さなツールのおかげで" 精神病理学的 "と " 冒険心 " を選んだ。これら2つの単語を使用して、任意の長さで、提供されたリストの実際の単語である部分文字列を見つけることができます。考えられるすべての分解は、以下によって実証されます。

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 I私は私の答えに言った知っている...
TheLethalCoder

3

05AB1E130 68バイト

Erik the Outgolferのおかげで-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

バブルガム、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

ルビー、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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.