สตริงเวลาแคปซูล 2016: ปีนบันไดจำนวนเต็ม


28

การใช้อักขระ 74 ตัวจากสตริงเวลาของแคปซูลปี 2016

H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%

เขียนตัวอย่างโค้ดทั้งหมดในภาษาเดียวกันโดยที่:

  • 1เอาท์พุทที่ 1 ข้อมูลโค้ด
  • 2แสดงผลข้อมูลโค้ด 2
  • 3เอาท์พุทที่ 3 ข้อมูลโค้ด
  • ... ฯลฯ ...
  • ตัวอย่างข้อมูล Nth ส่งออกN(ตัวเลขไม่ใช่ตัวอักษรตามตัวอักษร)

"ข้อมูลโค้ด" ถูกกำหนดเป็นสิ่งเหล่านี้:

  • โปรแกรมที่เต็มไปด้วยการป้อนข้อมูลไม่จำเป็นต้องใช้ที่ผลจำนวนตามปกติ
  • ฟังก์ชั่นที่มีการขัดแย้งไม่จำเป็นต้องที่เอาท์พุท / ผลตอบแทนจำนวนตามปกติ
  • REPLแสดงออกที่ประเมินไปที่หมายเลข

(คุณสามารถผสมและจับคู่ตัวแปรทั้งสามนี้ในตัวอย่าง N ของคุณ)

อักขระที่คุณได้รับอนุญาตให้ใช้ในชุดข้อมูลโค้ด N รวมกันนั้นมีความแม่นยำถึง 74 ตัวอักษรของแคปซูลเวลารวมทั้ง floor(N/2)อักขระ "wildcard" พิเศษที่คุณสามารถใช้ได้ทุกที่

ตัวอย่างเช่นแคปซูลเวลามีสามส่วน@ดังนั้นในตัวอย่าง N ทั้งหมดของคุณอาจมีได้ถึงสามชิ้น@เท่านั้นยกเว้นว่าคุณตัดสินใจที่จะใช้floor(N/2)อักขระตัวแทนของคุณ@เป็นจำนวนมาก

ดังนั้นไม่นับรวมสัญลักษณ์ชุดอักขระรวมในตัวอย่างข้อมูล N ของคุณจะต้องเป็นชุดย่อยของอักขระแคปซูลเวลา 74 ตัว ความยาวรวมของพวกเขาจะต้องไม่เกิน 74 คุณไม่สามารถใช้อักขระแคปซูลเวลาหรือไบต์สัญลักษณ์แทนระหว่างตัวอย่าง

หมายเหตุ

  • ไม่มีข้อ จำกัด อื่น ๆ เกี่ยวกับความยาวของตัวอย่างหรือจำนวนอักขระตัวแทนที่อาจใช้ต่อข้อมูลตัวอย่าง

  • คุณต้องเขียนตัวอย่างทั้งหมดเป็นเวลา 1 ถึง N ไม่ใช่ 0 ถึง N-1 ไม่ใช่ k ถึง N + k-1

  • 1, 2, 3, ..., Nข้อมูลโค้ดจะต้องเป็นบุคคลที่ไม่ได้หนึ่งตัวอย่างข้อมูลที่ผลรายการ

  • ผลลัพธ์อาจเป็นแบบลอย3.0แทน3และคุณสามารถใช้ฐานอื่นที่ไม่ใช่ทศนิยมหากเป็นฐานธรรมชาติของภาษาของคุณ คุณต้องใช้ฐานเดียวกันสำหรับตัวอย่างทั้งหมด

  • อักขระตัวแทนจะนับเป็นไบต์ในการเข้ารหัสภาษาของคุณ นี่อาจจะเป็นASCIIแต่เช่นถ้านับเป็นหนึ่งไบต์ในการเข้ารหัสของคุณคุณสามารถใช้มันเป็นไบต์เดียวได้

  • คุณสามารถใช้อักขระตัวแทนสำหรับอักขระหลายไบต์ เช่นเป็นปกติสามไบต์เพื่อให้คุณสามารถใช้มันในตัวอย่าง แต่มันจะมีค่าใช้จ่ายที่สามของคุณfloor(N/2)ไบต์สัญลักษณ์แทน

  • ขึ้นบรรทัดใหม่เช่น\r\nอาจถือว่าเป็นหนึ่งไบต์

ตัวอย่าง

ใน Python N = 4 เป็นไปได้เพียงแค่ใช้ REPL มีfloor(4/2) = 2สัญลักษณ์แทน

  1. 1จากแคปซูลเวลาคือการแสดงออกที่ evals 1ไป

  2. 22ประกอบด้วยตัวแทนเดียวคือ Evals 2ไป

  3. 3ยังประกอบด้วยสัญลักษณ์ตัวแทนเดี่ยว Evals 3ไป ไม่มีสัญลักษณ์เสริม

  4. 44เป็นโชคดีในแคปซูลเวลาและมันจะ evals

ตัวอย่างเหล่านี้สั้นและไม่สำคัญ คำตอบที่แท้จริงน่าจะซับซ้อนกว่านี้มาก

(ห้าครั้งหรือมากกว่านั้นใน Python อาจเป็นไปได้ แต่ฉันจะทิ้งไว้กับมืออาชีพ)

เกณฑ์การให้คะแนน

คำตอบที่มีค่า N สูงสุดจะเป็นผู้ชนะ เช่นหนึ่งที่ปีนขึ้นบันไดจำนวนเต็มสูงสุด

ในกรณีที่เสมอกันคำตอบที่ใช้จำนวนอักขระตัวแทนน้อยที่สุดจะชนะ
ในกรณีที่ยังมีเน็คไทคำตอบที่ใช้อักขระสะสมน้อยที่สุดชนะ
หากยังมีเสมอคำตอบก่อนหน้านี้จะชนะ


1
หากภาษาการเขียนโปรแกรมไม่มี REPL เราจะยังคงสามารถส่งนิพจน์เป็นภาษานั้นได้หรือไม่หากประเมินเป็นค่าที่เหมาะสม (ตัวอย่างเช่นเป็น4ตัวอย่างที่ถูกต้องที่ส่งกลับ 4 ใน Perl รุ่นเก่าที่ไม่มี REPL?)

1
โอ้และคำถามอื่น: ในภาษาที่มีการเข้ารหัสที่ไม่รองรับ ASCII เราจะถือว่าอักขระแคปซูลเวลาเป็นอักขระ (แปลเป็นการเข้ารหัสภาษา) หรือเป็นไบต์ (เขียนโปรแกรมเช่นการดูโปรแกรมเป็น ASCII ดูเหมือนว่าจะมีตัวอักษรแคปซูลเวลาทั้งหมด) ในบางภาษาที่มีชุดอักขระแปลก ๆ อักขระส่วนใหญ่ของแคปซูลเวลาไม่ได้อยู่ในชุดอักขระซึ่งทำให้ยากต่อการใช้ตามที่เป็นอยู่

1
สิ่งที่เกี่ยวกับศูนย์นำ เป็น07 เช่นเดียวกับ7?
Emigna

1
มันเป็นจริง bugging ฉันว่าสตริงมีค่า-มิได้n...
devRicher

1
"ตัวอย่าง" ในภาษาที่ใช้กองซ้อนสามารถทิ้งค่าไว้ในกองซ้อนได้หรือไม่
FlipTack

คำตอบ:


10

CJam , 25 ตัวอย่าง, 12 สัญลักษณ์แทน, 64 ไบต์

1
Q!)
Z
4
5
6
L``(*$)#
8
9
T!T
B
C
D
E
F
G
H
I
J
K
O`e`~~!!
B`:)
Q``$e`~~@~@=~+
Q!)4
Amf

ลองออนไลน์!

สัญลักษณ์แทน:

568BBCDEFGJK

ฉันรู้สึกว่าฉันต้องโพสต์อย่างรวดเร็วก่อนที่เดนนิสจะแซงหน้าฉัน


สัญลักษณ์ตัวแทนใดที่คุณใช้
Rɪᴋᴇʀ

@EasterlyIrk แก้ไข นอกจากนี้คุณยังสามารถใช้เคาน์เตอร์สัญลักษณ์แทนในคำตอบของเดนนิส
jimmy23013

อยู่ระหว่างดำเนินการ: tio.run/nexus/jelly#FczNCoJAFIbh/ …
jimmy23013


5

JavaScript, 10 ตัวเลข, 5 สัญลักษณ์แทน

ตัวอักษรที่เหลืออยู่: !!#$$%&())))*...:=@@@HILOQQQTTZ\^```eefmpy{|||~~~~~~~~~

ใช้โบนัส 5/5 ตัว: 37680

โปรแกรม:

  1. 1
  2. ! `` +! ``
  3. 3
  4. 4
  5. 4|!``
  6. 6
  7. 7
  8. 8
  9. 9
  10. 0xA

ฉันหวังว่าหนึ่งในสตริงที่ฉันสามารถใช้\xABเป็นตัวเลขได้ แต่น่าเสียดายที่ไม่มีชุดค่าผสมใด ๆ ที่ฉันได้ลองใช้มาก่อน ^(XOR) ตัวละครก็จะเป็นที่น่าสนใจที่จะใช้ แต่ฉันยังไม่เห็นโอกาสใด ๆ ที่จะสามารถนำมาใช้เพื่อให้มีจำนวนมากพอ

หากคุณเห็นชุดค่าผสมอื่นที่เป็นไปได้แจ้งให้เราทราบในความคิดเห็น

แก้ไข:เพิ่ม # 10 ขอบคุณArnauld


1
ฉันคิดว่าคุณสามารถเพิ่ม10. 0xA(ด้วย0การได้รับไวด์การ์ดใหม่สำหรับการเข้าถึง 10)
Arnauld

คุณสามารถทำได้(Q=!``)|Qสำหรับ 1 ถึงได้รับการเสริม1ที่ไหนสักแห่ง ไม่แน่ใจว่าจะช่วยได้หรือไม่
ETHproductions

4

Pyth, 12 ตัวอย่าง, 20 ไบต์ (6 สัญลักษณ์)

f@

ค้นหาตัวเลขแรกที่รูท (n, n) เป็นความจริงเริ่มต้นจาก 1 เอาต์พุต: 1

y!H

{}คู่ไม่ได้ ผลลัพธ์: 2

3

สัญลักษณ์แทน # 1 ผลลัพธ์: 3

4

ผลลัพธ์: 4

5

สัญลักษณ์แทน # 2 ผลลัพธ์: 5

6

สัญลักษณ์แทน # 3 ผลลัพธ์: 6

7

สัญลักษณ์แทน # 4 ผลลัพธ์: 7

8

สัญลักษณ์แทน # 5 ผลลัพธ์: 8

9

ผลลัพธ์: 9

T

ตัวแปรเริ่มต้น ผลลัพธ์: 10

+T!Z

สิบบวกไม่เป็นศูนย์ ผลลัพธ์: 11

12

สัญลักษณ์แทน # 6 ( 2) ผลลัพธ์: 12


4

อ็อกเทฟ, 6 ตัวเลข, 3 สัญลักษณ์แทน

1: ~~I          % not(not(sqrt(-1))) evaluates to true (or 1)
2: 2            % Wildcard
3: 3            % Wildcard
4: 4
5: (T=4)+~~T    % Create a variable T=4, then add not(not(T)) which evaluates to 1.
6: 6            % Wildcard

ฉันยังคงมี1, 9และ*ซ้าย แต่ผมไม่ทราบว่ามันจะช่วยให้ผมมาก ฉันจะเห็นสิ่งที่ฉันสามารถทำได้กับสิ่งเหล่านั้น :)

ไม่ใช่เรื่องง่ายที่จะได้รับตัวเลขมากมายเมื่อไม่ได้ใช้ Esolang ฉันหวังว่าฉันจะสามารถได้หนึ่งหรือสอง แต่ฉันคิดว่ามันจะยาก


2

รุก , 10 หมายเลข (4 สัญลักษณ์)

ทั้งหมดนี้เป็นตัวอย่างที่เก็บผลลัพธ์ไว้ในสแต็ก คุณสามารถทดสอบสิ่งนี้ได้ในล่ามออนไลน์โดยต่อท้าย#แต่ละตัวอย่าง (เพื่อพิมพ์หมายเลข)

A(      \ 1:  Get alphabet and check that 'Z' >= 'Y'. Results in 1 (True)
x&+     \ 2:  Check stack equality (True - both are empty) then duplicate and sum.
3       \ 3:  Push 3 (1 wildcard)
4       \ 4:  Push 4
1 4+    \ 5:  1 + 4 in postfix, leaves 5 on the stack (1 wildcard)
`L`T%   \ 6:  Get character code of 'L' and modulo by T (ten) - leaves 6 on the stack
7       \ 7:  Push 7 (1 wildcard)
8       \ 8:  Push 8 (1 wildcard)
9       \ 9:  Push 9
T       \ 10: Push 10

คำตอบนี้ยังไม่สมบูรณ์ - แม้ว่าฉันจะไม่ได้ไปไกลกว่านี้


1

05AB1E, 12 ตัวเลข, 6 สัญลักษณ์แทน

 1:    1                                   -> 1
 2:    )O!x                                -> sum([])!*2
 3:    4L`\                                -> 2nd_last(range(1...4))
 4:    4                                   -> 4
 5:    5        # wildcard 1 = 5           -> 5
 6:    6        # wildcard 2 = 6           -> 6
 7:    Tf`~                                -> or(last2(prime_factors(10)))
 8:    8        # wildcard 3 = 8           -> 8
 9:    9                                   -> 9
10:    T                                   -> 10
11:    A`Q!T+   # wildcard 4 = T           -> (y==z)!+10
12:    TÌ       # wildcard 5,6 = T,Ì       -> 10+2

1

Hexagony , 6 ตัวเลข, 3 สัญลักษณ์แทน, 23 ไบต์

1!@
))!@
)|\@$!
4!%
4)!:
6!@

ลองออนไลน์!

โปรแกรมที่หกทั้งหมดทำจากอักขระตัวแทน

3เพียงคนเดียวที่น่าสนใจจริงๆหนึ่ง ในขณะที่ฉันสามารถทำเช่น4(!@นั้นได้ซึ่งจะทำให้ฉันไม่ต้อง4สร้าง5ง่าย ๆ ดังนั้นฉันจึงไปกับสิ่งนี้แทน:

 ) |
\ @ $
 ! .

เนื่องจากการ|ที่)ในบรรทัดแรกจะดำเนินการสองครั้งก่อนที่ IP wraps ไปที่มุมขวามือ $ข้ามไป@และ\เปลี่ยนเส้นทาง IP )เป็นครั้งที่สาม IP แรปไปที่มุมซ้ายล่าง!พิมพ์3และ@ยุติโปรแกรม

ฉันไม่คิดว่าเป็นไปได้มากกว่า 6 ตัวอย่างเพราะมีเพียง 5 คำสั่งการพิมพ์ ( !!!!!) และ 5 คำสั่งที่สามารถใช้เพื่อยุติโปรแกรม ( @@@%:) ดังนั้นหลังจากตัวอย่างที่ห้าเราต้องการ wildcard อย่างน้อยสองตัวต่อหนึ่งตัวอย่าง ดังนั้นแม้ว่าฉันจะได้รับ6โดยไม่ต้องใช้ไวด์การ์ดสำหรับมันจะไม่มีไวด์การ์ดเหลืออยู่เพียงพอที่จะไปยังตัวอย่างที่เจ็ด


1

JavaScript, 8 ตัวเลข, 4 สัญลักษณ์แทน

 1: 1
 2: -~!``
 3: 4+~!$
 4: ~!``*~!``
 5: 4|!$
 6: 0xf^9
 7: 7
 8: 8

ฉันอาจลองอีกครั้งในภายหลัง - ฉันเป็นตัวละครที่สูญเปล่าเมื่อวันที่ 2 และ 6 เมื่อคุณลงไป


0

Befunge-98, 4 snippets, 18 bytes, 2 wildcards

!.@
!:+.@
41-.@    wildcard 1 = -
4.#A9H   wildcard 2 = .

ตัวละครที่เหลือ: !!!$$%&())))*=ILOQQQTTZ\^`````````eefmpxy{||||~~~~~~~~~

ฉันสงสัยว่าเป็นไปได้มากขึ้นเนื่องจากทุกโปรแกรมพิเศษจะต้องใช้รูปแบบของการส่งออกและทั้งหมด.,จะถูกใช้ไปแล้ว ถ้าฉันสามารถหาวิธีที่จะสร้าง 3 และ 5 โดยไม่ต้องใช้สัญลักษณ์แทนก็เป็นไปได้

โปรแกรมสุดท้ายจะสิ้นสุดในที่สุดเนื่องจากการเติมสแต็ค AและHไม่มีการโหลดลายนิ้วมือจะสะท้อนให้เห็นและโปรแกรมจะผลักดันให้ 9 ของ


ฉันไม่คิดว่าอันสุดท้ายนั้นถูกต้อง เว้นแต่ความท้าทายจะระบุไว้เป็นอย่างอื่นโปรแกรมจำเป็นต้องยกเลิก
Martin Ender

คุณก็สามารถบอกเลิกกับ%ว่า
Martin Ender

@MartinEnder 00%ถูกต้องใน Befunge-98 และผลลัพธ์เป็น 0 (หรือขอให้ผู้ใช้แสดงผลลัพธ์ใน Befunge-93
PurkkaKoodari

@MartinEnder นอกจากนี้โปรแกรมสุดท้ายจะยุติสมมติหน่วยความจำ จำกัด ข้อมูลจำเพาะ Funge-98 กล่าวถึงที่{สามารถย้อนกลับได้หากหน่วยความจำหมด ไม่มีสิ่งใดพูดเกี่ยวกับการผลักดันตามปกติและล่ามทุกคนดูเหมือนจะล้มเหลวใน OOM แต่เห็นได้ชัดว่ามีการจำกัดความจำของหน่วยความจำในข้อมูลจำเพาะภาษา
PurkkaKoodari

ฉันคิดว่าสิ่งนี้อาจปรับปรุงได้ (อาจ ???) เนื่องจากการมีpตัวละคร แต่มันต้องใช้งานบ้าง คุณสามารถทำได้e%9เพื่อให้ได้ 5 แต่คุณต้องมีวิธีในการพิมพ์และจบโปรแกรมดังนั้นฉันจึงสงสัย
MildlyMilquetoast

0

SmileBASIC 12 ตัวอย่าง, 5 สัญลักษณ์แทน, 31 ไบต์

!.     '. is parsed as the number 0.0; taking the logical not gives 1
!.+!.  'Previous value added to itself
@Q||Q  '@Q is a label string and Q is a variable. For some reason, certain comparison/logical operations between strings and numbers return 3 rather than 1 or 0. 
4      '4
#TLIme 'Constant for the text color lime green, value is 5.
6      '6 (wildcard)
7      '7 (wildcard)
8      '8 (wildcard)
9      '9
&HA    'Hexadecimal A
11     '11 (one of them is a wildcard)
4*3    '4 multiplied by 3 (3 is wildcard)

ฉันสามารถใช้ตัวแปรแทน.(ตัวแปรเริ่มต้นที่ 0) และตัวแปรสตริง (เช่นQ$) แทน@Q

ตัวละครที่ใช้: !!!#&*+...1449@AHILQQTem||

สัญลักษณ์แทนที่ใช้: 67813

ตัวละครที่ไม่ได้ใช้: !!$$%()))):=@@OQTZ\\^`````````efpxy{||~~~~~~~~~

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.