Đếm đến 20 với từ!


39

Sử dụng danh sách các từ được phân tách theo chiều dài sau đây:

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

In 1 từ từ mỗi danh sách độ dài n từ 1 đến 20, đây là một ví dụ hợp lệ:

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

Hoặc (mảng):

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

Ngoài ra (bất kỳ dấu tách không chữ cái có thể in nào khác \n):

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

Quy tắc

  • Bạn có thể chọn 20 từ của riêng bạn.
  • Các từ phải từ trang github được cung cấp, cụ thể hơn:
    • 1 từ 1.txt, 1 từ 2.txt, v.v ...
    • Lưu ý, các tệp trên 20.txt tồn tại, nhưng bạn không cần bất kỳ từ nào trên 20 ký tự.
  • Dấu phân cách hợp lệ là các ký tự không theo thứ tự chữ cái có thể in ASCII (số chẵn, không quan tâm).
  • Chỉ viết thường hoặc viết hoa, chọn một, gắn với nó; không cho phép trường hợp tiêu đề.
  • Vui lòng không sử dụng bản sao 100% ví dụ của tôi 20 từ ...
    • Bạn có thể, nhưng đó không phải là niềm vui.
    • Họ có khả năng dưới mức tối ưu ...
  • Nếu bạn không muốn sử dụng các tệp riêng biệt và cần một danh sách đầy đủ:
    • Sử dụng unsort.txt , đây là tất cả các ntệp .txt trong một, được sắp xếp theo thứ tự bảng chữ cái.
  • Lưu ý, bạn KHÔNG THỂ đọc trực tiếp từ URL, đó là một lỗ hổng phổ biến .
  • Đây là , số byte thấp nhất sẽ là người chiến thắng.

Để tham khảo, đầu ra là 229 byte, do đó, bất cứ điều gì nằm dưới mã hóa cứng đó.


Thảo luận về thẻ meta có thể có:

đến người dùng nơi người dùng có thể tùy chỉnh đầu ra của họ từ danh sách các khả năng?


4
Là một người từ Newfoundland, tôi đánh giá cao tiếng hét. :)
phân tán

6
@Christian Bạn có thể nói tôi ... ( •_•)>⌐■-■ hiểu về newfoundland nổi bật(⌐■_■)
Bạch tuộc ma thuật Urn

1
@Riley đang kéo dài nó, 1 dấu phân cách giữa mỗi từ, mặc dù tôi có thể thấy nhiều tình huống sẽ giúp: P.
Bạch tuộc ma thuật Urn

1
@Jonathan ALLan vừa mới làm :).
Bạch tuộc ma thuật Urn

1
Tiện ích cho việc lựa chọn các từ.
Jim

Câu trả lời:


19

Thạch ,  49 35 31  30 byte

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

Một liên kết niladic trả về một danh sách các ký tự hoặc một chương trình in đầy đủ liệt kê dưới dạng một chuỗi (các từ được phân cách bằng dấu cách).

Hãy thử trực tuyến!

Làm sao?

ṫ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

... mang lại:

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

Trước:

@ 35:

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

Sử dụng 10 từ và tiền tố dài 1 của chúng.

@ 49

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

Đơn giản chỉ cần 20 từ nén.


Từ điển Darn Jelly! +1
Erik the Outgolfer 20/07/17

Thành thật mà nói, tôi không biết Jelly có một cuốn từ điển.
Bạch tuộc ma thuật Urn

3
30 B BYNG! ?? !! ??! Tôi vừa mới đi ngủ và thức dậy và nó thấp đến 30 BYTES? !! ??!?! 11 O_O_O
Erik the Outgolfer 21/07/17

30 B BYNG!?!?! ??! TÔI GIỚI THIỆU VỀ THÁCH THỨC NÀY CHO MỘT THÁNG VÀ S W ĐƯỢC 30 GIỜ!?!?!
Bạch tuộc ma thuật Urn

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

Hãy thử trực tuyến!

In những từ này, cách nhau bởi khoảng trắng:

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

18
"Tôi bây giờ nhỏ bé" - Tôi thích mã tự mô tả ...
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]

Hãy thử trực tuyến!

Tối ưu hóa bằng tay, không có thuật toán. Hai vòng lặp |%{ }giải quyết kết thúc thích hợp cho bắt đầu thích hợp. Tôi đang tìm cách để đưa chúng vào một vòng.


Wow, ví dụ của tôi trông thậm chí ngu ngốc hơn bây giờ xD! characterful > newfoundland
Bạch tuộc ma thuật Urn

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

In một danh sách các từ.

Hãy thử trực tuyến!

Các từ có được bằng cách quét các chuỗi từ phù hợp, bằng cách bắt đầu hoặc kết thúc từ và bắt đầu từ độ dài 1 trở lên hoặc từ độ dài 20 từ khóa.

Đây là kịch bản tôi đã sử dụng để có được nó. (kết hợp bắt đầu đi lên)


171 byte (cảm giác như nó nên ngắn hơn, nhưng không phải vậy): Hãy thử trực tuyến!
Stephen

8

Python 2 ,  126 120  112 byte

-8 byte nhờ vào Anders Kaseorg (Tôi nghĩ rằng tôi đã di chuyển cái này từ Python 3, nhưng hóa ra tôi đã quên!)

Một cổng của câu trả lời Jelly của tôi cũng hoạt động tốt trong Python ...

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

Hãy thử trực tuyến!

Bản in:

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

Python 2 cho phép bạn kết thúc với print w[2:-1],w[2:],w[:-1],w,byte8 byte.
Anders Kaseorg

Ồ, rất tiếc tôi đã quên điều này hoặc nghĩ rằng tôi đã thực hiện nó - Tôi có một trang TIO mở ở đâu đó với điều đó!
Jonathan Allan

Cảm ơn vì điều đó!
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=>_

Hãy thử trực tuyến!

Cảm ơn @HyperNeutrino đã chỉnh sửa. Nhưng, tôi đang quay trở lại bài đăng cũ (xóa cờ "Node.js") vì nó không liên quan gì đến Node.js. Nó hoàn toàn hoạt động trong trình duyệt quá.


f=f=>_đã ném tôi đi, tôi giống như "sẽ không ghi đè chức năng" (nó sẽ chỉ ngăn chặn đệ quy)
Stephen

@StepHen. Tôi không chắc chắn nếu để lại một chuỗi đơn giản được cho phép. Theo tôi hiểu, mã phải đại diện cho một chức năng (hoặc toàn bộ chương trình), đó là lý do tại sao tôi đã thêm nó vào cuối. Biến _đã chứa chuỗi.

Bạn đã đúng, tôi thực sự bối rối với những gì nó đã làm, vì bạn đã sử dụng lại tên biến ( fcả tên hàm và tên tham số (bị bỏ qua))
Stephen

6

05AB1E , 51 byte

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

Hãy thử trực tuyến!

Dấu phân cách:

Danh sách các từ: a, an, ana, anal, house, houses, amazing, criminal, seriously, apparently, accessories, disciplinary, distributions, discrimination, congratulations, responsibilities, characterizations, telecommunications, representationalist, representationalists


1
muốn tham gia vào thử thách tăng cường
Bạch tuộc ma thuật Urn

Tôi đoán 05AB1E không có từ có độ dài 20 trong từ điển: P? Vẫn chưa thực sự kiểm tra bản thân.
Bạch tuộc ma thuật Urn

@MagicOctopusUrn Không .
Ad Nam

@adnan wow, cách tiếp cận đó ... thực sự có thể là một ý tưởng tốt nếu bạn có thể tìm cách tạo tất cả các điểm mã từ điển theo 1-10byte ...
Magic Octopus Urn

1
@adnan đó là nỗ lực đầu tiên của tôi, tôi chắc chắn bạn có thể đánh bật nó ra khỏi công viên.
Bạch tuộc ma thuật Urn

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}

In như sau. Mỗi từ được xây dựng từ 8 chuỗi ở trên, sử dụng các chữ số nhị phân của jđể chọn. Trên mỗi lần lặp của vòng lặp, jđược tăng theo giá trị ASCII của các ký tự trong chuỗi trong dấu ngoặc kép, trừ 31.

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

4

Bình thường , 74 byte

Những cuộc phiêu lưu tâm lý

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

Hãy thử trực tuyến! Nó xuất ra:

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

Mà, một khi định dạng mang lại sản lượng:

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

Giải trình

Chìa khóa là chọn hai từ bổ sung cho nhau. Tôi đã chọn " tâm lý học " và " những người thích phiêu lưu " nhờ vào một công cụ nhỏ mà tôi đã viết . Sử dụng hai từ này, với bất kỳ độ dài nào, chúng ta có thể tìm thấy các chuỗi con là các từ thực tế của danh sách được cung cấp . Tất cả các phân tách có thể được thể hiện bằng:

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

Bước tiếp theo chỉ là lấy danh sách các chỉ mục cho một phân tách nhất định. Để phân tách, tôi đã chọn : 16 16 16 16 11 20 22 22 20 20 22 6 20 6 22 0 20 0 20 0, là các chỉ mục trong các chuỗi được nối : psychopathologicallyadventuresomenesses.

Cuối cùng, viết một chương trình chỉ vòng qua các chỉ mục và hiển thị chuỗi con ở mỗi chỉ mục đã cho với độ dài tăng dần.

Để lưu byte, tôi đã lưu các chỉ mục trong một chuỗi 36 cơ sở. Thật vậy, GGGGBKMMKKM6K6M0K0K0là danh sách các chỉ mục của tôi trong cơ sở 36 (vì chỉ số cao nhất của tôi là 22, tôi có thể đã sử dụng cơ sở 23).

Chương trình giải thích

.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

tâm lý học - "Về mặt nghiên cứu khoa học về rối loạn tâm thần." Hấp dẫn.
Bạch tuộc ma thuật Urn

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

Một số phòng rõ ràng để chơi golf vẫn còn nhưng tôi đã hết thời gian. Tôi biết nó dài hơn mã hóa cứng nên sẽ sửa nó khi tôi có thời gian sau này.


Woops thực sự thậm chí còn lâu hơn bởi vì tôi cần phải bao gồmusing System.Linq;
TheLethalCoder

4
Chỉ cần trả lại chúng trong một chuỗi được phân chia bởi các khoảng trắng giống như 245.
Magic Octopus Urn

@MagicOctopusUrn Tôi biết đó là những gì tôi đã nói trong câu trả lời của mình ...
TheLethalCoder

3

05AB1E , 130 68 byte

-62 byte nhờ Erik the Outgolfer

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

Hãy thử trực tuyến!

Có nhiều tiền tố cần thiết cho mỗi từ sau đây:

amusers
carabinero
foraminiferans
photosensitizers
videoconferencings
radiopharmaceuticals

In những từ này trong một mảng:

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



Một số khác -6 quá ... (thật đáng buồn tôi không thể thay thế 743222với •B/™•)
Erik các Outgolfer

Vâng, bạn không cần Sđến -62 byte. ;)
Erik the Outgolfer 20/07/17

@EriktheOutgolfer Cảm ơn! Tôi đã cố gắng làm một cái gì đó như thế cuối cùng, nhưng tôi không thể làm cho nó hoạt động. Bạn có nhớ giải thích làm thế nào các chuỗi nén hoạt động?
Riley

3

Bong bóng , 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.

Đầu ra:

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

Hãy thử trực tuyến!

Các từ và dấu phân cách đã được chọn bằng cách mô phỏng ủ:

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

Bong bóng , 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..

Hãy thử trực tuyến!


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

In mảng sau.

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

Thay đổi pfor puts(với dấu cách) sẽ cung cấp các giá trị sau với chi phí thêm 4 byte.

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

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 ·

Hãy thử trực tuyến!

Bản in:

a
an
and
hand
hands
handle
handles
freehand
character
characters
charactered
charactering
characterizes
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
mischaracterizations
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.