เครื่องพิมพ์สตริงลึกลับ (ตำรวจ)


60

เธรดโจรสามารถพบได้ที่นี่: เครื่องพิมพ์สตริงลึกลับ (โจร)

ความท้าทายของคุณ

  • เขียนโปรแกรมฟังก์ชั่นหรือสคริปต์ REPL ที่พิมพ์สตริงไปยัง STDOUT
  • โจรจะพยายามสร้างโปรแกรมที่พิมพ์สตริงเดียวกัน
  • หากพวกเขาประสบความสำเร็จสามารถสร้างโปรแกรมภายใน 7 วันการส่งของคุณจะแตก
  • หากไม่มีใครสามารถสร้างโปรแกรมที่พิมพ์สตริงเดียวกันภายใน 7 วันการส่งของคุณปลอดภัย คุณอาจเลือกที่จะเปิดเผยโปรแกรมของคุณหรือปล่อยให้มันไปท้าทายโจรในอนาคต อย่างไรก็ตามหากคุณไม่เปิดเผยคุณจะไม่ได้รับคะแนนใด ๆ จากการส่งของคุณ (อย่าใส่ "ปลอดภัย" ในส่วนหัวคำตอบหากคุณเลือกที่จะทำ)

ข้อ จำกัด

  • โปรแกรมจะต้องน้อยกว่าหรือเท่ากับ 128 ไบต์ทั้งหมด (เพิ่มเติมในภายหลัง)
  • หากโปรแกรมขึ้นอยู่กับชื่อโปรแกรมหรือชื่อ / เนื้อหาของไฟล์ภายนอกคุณต้องบอกว่าทำเช่นนั้นและรวมไว้ในจำนวนไบต์ทั้งหมดของคุณ
  • สตริงที่พิมพ์ต้องน้อยกว่าหรือเท่ากับ 2048 ไบต์
  • สตริงที่พิมพ์ต้องประกอบด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้น (สามารถรวมบรรทัดใหม่ได้)
  • โปรแกรมต้องสร้างเอาต์พุตเดียวกันทุกครั้งที่รัน
  • การเข้ารหัสแบบดั้งเดิมในตัว (ไม่รวมถึง rng, การเข้ารหัส, การถอดรหัสและการแฮช) ใด ๆ
  • โปรแกรมจะต้องไม่นำเข้า
  • ไม่มีช่องโหว่มาตรฐาน

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

  • หากการส่งแตกก่อนหน้าเจ็ดวันการส่งจะได้รับ 0 คะแนน
  • การส่งตัวอักษรที่ปลอดภัย≤128ตัวจะได้รับ 1 คะแนน
  • การส่งตัวอักษรอย่างปลอดภัยจำนวน≤64ตัวจะได้รับ 2 คะแนน หากน้อยกว่าหรือเท่ากับ 32 ไบต์จะได้รับ 4 คะแนนและอื่น ๆ
  • การส่งที่ปลอดภัยแต่ละครั้งจะได้รับโบนัสเพิ่มอีก 3 คะแนน (ไม่ขึ้นอยู่กับความยาว)
  • มีโทษเล็ก ๆ (1/2 จุด) สำหรับการแตกร้าวทุกครั้งหลังจากการตีครั้งแรกของคุณ
  • โปรดทราบว่าโซลูชันของโจรจะต้องอยู่ในช่วงความยาวของโปรแกรมเท่ากัน
  • แต่ละคนสามารถส่งได้สูงสุด 1 โปรแกรมต่อช่วงไบต์ต่อภาษา (รุ่นที่แตกต่างกันและการแทนที่โดยพลการของภาษาเดียวกันจะไม่นับเป็นภาษาแยกต่างหาก) ตัวอย่าง: คุณสามารถโพสต์โปรแกรม 32 ไบต์และ 64 ไบต์ pyth แต่คุณไม่สามารถโพสต์โปรแกรม 128 ไบต์ในทั้ง Java 7 และ Java 8
  • บุคคลที่มีคะแนนรวมสูงสุดจะเป็นผู้ชนะ

การส่ง

การส่งแต่ละครั้งจะต้องมีข้อมูลต่อไปนี้:

  • ชื่อของภาษา วิธีแก้ปัญหาโจรใหม่ทั้งหมดจะต้องเป็นภาษาเดียวกัน
  • ช่วงของขนาดโปรแกรม (นี่คือกำลังงานที่ใกล้เคียงที่สุดซึ่งสูงกว่าขนาดของโปรแกรมสองตัวอย่างเช่นหากโปรแกรมของคุณมีขนาด 25 ไบต์จะเป็น "≤32")
  • สตริงจริงที่จะพิมพ์ออกมา
  • หากการส่งนั้นปลอดภัยให้ใส่ "safe" และความยาวของโปรแกรม (ไปยังกำลังที่ใกล้ที่สุด 2) ในส่วนหัวของคุณ หากมีหลายหมายเลขในส่วนหัวของคุณให้ใส่ 2 ครั้งสุดท้าย

ตัวอย่างสแต็กนี้สร้างกระดานผู้นำและแสดงรายการทั้งหมดที่เปิดอยู่ หากมีปัญหาใด ๆ กับตัวอย่างโปรดแสดงความคิดเห็น

ใช้รูปแบบต่อไปนี้สำหรับรายการ:

Language, (any text with the program size as the last number)
=

หรือ

Language
=
Length <= 16

โปรดทราบว่าตัวอย่างจะใส่คำแรกในส่วนหัวเป็นภาษาหากไม่พบเครื่องหมายจุลภาค

สำหรับการส่งที่ปลอดภัยให้ใส่หัวข้อที่ปลอดภัย ตัวอย่างจะทำให้โปรแกรมของคุณในคอลัมน์ "ปลอดภัย" โดยอัตโนมัติหากเวลาหมดอายุดังนั้นจึงเป็นการดีกว่าที่จะบอกพวกโจรว่าโปรแกรมของคุณปลอดภัยหรือไม่

สำหรับการส่งรอยร้าวใส่รอยร้าวในส่วนหัวของคุณ

โปรแกรมควรจะสามารถรับรู้ได้หากความคิดเห็นบอกว่า "แตก" และมีลิงก์ อย่างไรก็ตามสิ่งนี้ไม่รับประกัน

ลำดับที่ผูกกันได้: คะแนน -> จำนวนการส่งที่ปลอดภัย -> จำนวนการส่งที่แคร็กน้อยที่สุด

โปรดทราบว่าตัวอย่างจะเรียงตามการส่งแบบเปิดก่อนที่จะแตกอย่างน้อยที่สุด แต่การส่งแบบเปิดจะไม่ถูกนับในตอนท้ายของการแข่งขัน

ความท้าทายนี้ถูกปิด

คะแนนรวมที่ชนะมากที่สุด: เดนนิส

การส่งที่ปลอดภัยที่สุด: DLosc

(โปรดทราบว่าจำนวนการส่งที่ปลอดภัยไม่ได้แปลเป็นจำนวนคะแนนเนื่องจากขนาดของโปรแกรมได้รับการพิจารณาในการคำนวณคะแนน)


5
เราควรเตือนตำรวจว่าผลลัพธ์ควรดีกว่าขนาดโปรแกรมเพื่อลดวิธีแก้ปัญหาเล็กน้อยเช่นcodegolf.stackexchange.com/a/60395และcodegolf.stackexchange.com/a/60359
kennytm

2
@ เครื่องหมายต้องมีวิธีดำเนินการกับภาษาและภาษาจะต้องสามารถแสดงสตริงของอักขระ ASCII ได้ ถ้าคุณต้องการใช้ HQ9 + ขอแสดงความยินดีคุณเพิ่งจะยอมแพ้
Daniel M.

3
@ เครื่องหมายฉันไม่ต้องการแต่ฉันจะไม่หยุดคุณ
Daniel M.

15
ผลลัพธ์ที่เป็นตัวเลขเท่านั้นน่าเบื่ออย่างยิ่ง
mbomb007

4
โปรดพิจารณาใช้Sandboxในครั้งต่อไป โดยเฉพาะอย่างยิ่งกฎของการท้าทายไม่ควรเปลี่ยนแปลงเลยหลังจากมีการโพสต์ ฉันเสียติดตามกี่ครั้งกฎที่มีการเปลี่ยนแปลงที่นี่ ...
เดนนิส

คำตอบ:


20

Pyth, ปลอดภัย, ช่วง≤ 8

['ashva', 'cxedo', 'ecckc', 'hhzsq', 'jmwze', 'lrths', 'nwrog', 'pbowu', 'rgldi', 'uljlw', 'wpgsk', 'yuday'

รหัส:

%^T6`^G5

คำอธิบาย:

เพื่อชี้แจงวิธีการทำงาน: ฉันสร้างสตริงอักขระ 5 ตัวที่เป็นไปได้ทั้งหมดของตัวอักษรตัวเล็ก ( ^G5) จากนั้นฉันสร้างการแสดงสตริงของรายการนี้: ( `^G5) ในที่สุดฉันรับทุก ๆ 1,000,000 ตัวละครของรายการนั้น ( %^T6) ผลลัพธ์เป็นสิ่งที่ดูเหมือนรายการของสตริง แต่ไม่มีวงเล็บเหลี่ยมสิ้นสุดอย่างน่าสงสัย


ไม่มีการปิด]หรือไม่
Maltysen

1
@Maltysen Nope
isaacg

4
เห็นรายการที่สองเป็น "xCode" ที่ถูกรบกวนคิดว่าอาจเป็นรายการของ IDEs ที่มีสัญญาณรบกวน แต่ฉันไม่สามารถระบุผู้อื่นได้: o
Albert Renshaw

1
ยาก! ฉันพบรูปแบบในสตริง แต่ไม่ทราบวิธีสร้างใน <= 8 ไบต์
Fabian Schmengler

16

VBA, [ปลอดภัย]

ช่วง <= 128 ไบต์

คำแนะนำสำหรับตำแหน่งที่จะส่งออก

เรียกใช้ใน Excel 2007 ผลลัพธ์คือ Debug.print VBA โชคดีที่ได้รับสิ่งใดก็ตามที่มีขนาดต่ำกว่า 128 ไบต์เพื่อให้ทำงานได้

เอาต์พุต 255 ไบต์

 This array is fixed or temporarily locked THIS ARRAY IS FIXED OR TEMPORARILY LOCKED this array is fixed or temporarily locked This Array Is Fixed Or Temporarily Locked I n v a l i d   p r o c e d u r e   c a l l   o r   a r g u m e n t  ?????????????????

วิธีการแก้

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

รหัส

    Sub e()
    On Error Resume Next
    Err.Raise 10
    For i = 0 To 128
    b = b & " " & StrConv(Err.Description, i)
    Next
    Debug.Print b
    End Sub'

อธิบาย

ก่อนอื่นรหัสเริ่มต้นด้วยหนึ่งในบาปหลักของ VBA On Error Resume next.
เมื่อเรายอมรับว่าการกระทำที่น่าสยดสยองนั้นเราจะดำเนินต่อไป นี่คือThis array is fixed or temporarily lockedข้อผิดพลาดที่เราจะเห็นในผลลัพธ์ในไม่ช้า

ถัดไปคือการวนซ้ำ เราห่วง 128 ครั้งพยายามที่จะแปลงคำอธิบายข้อผิดพลาด i are 1,2,3,64,128แต่ปัจจัยการผลิตที่ถูกต้องสำหรับ ด้วยเหตุนี้ 4 ลูปแรกจึงพิมพ์ข้อผิดพลาดด้วยรูปแบบที่หลากหลาย จากนั้นเมื่อi = 4รหัสโยนข้อผิดพลาดใหม่Invalid callจากนั้นลูปและไม่มีการกำหนดให้bเพราะstrconvฟังก์ชั่นข้อผิดพลาดออกมาในแต่ละครั้ง

นี่คือที่ที่โปรแกรมปกติควรหยุดทำงาน แต่เนื่องจากเรามีOn Error Resume Nextข้อผิดพลาดทุกอย่างถูกละเว้นและรหัสยังคงไม่สะทกสะท้านกับการจัดการข้อผิดพลาดที่ไม่ดี

ตอนนี้เราตีi=32และเราเพิ่มข้อผิดพลาดใหม่เพื่อbแปลงเป็น Unicode แล้ววนลูปต่อไปจนถึงi = 128จุดที่เราแปลงข้อผิดพลาดของเราจาก Unicode ซึ่งส่งผลให้?????????????????สตริงถูกเพิ่มเข้าไปb

ในที่สุดพิมพ์พิมพ์ระเบียบของข้อผิดพลาดที่เราได้ต่อกัน


14

Mathematica ปลอดภัยช่วง≤ 64

เอาท์พุท:

CGTAGGCCCATTTTGTGTGAATTGCGGTGCAGCGAGCGATATGTTGTCTGGGCACGGACGCAGAGTTAGGGTAGCTGGTG

ที่มา:

Print@@Characters["GATC"][[1+First@RealDigits[Pi,4,80]]]

6
ตอนนี้ฉันจะต้องทำGenomeLookupทุกอย่าง ...
LegionMammal978

3
จริงๆ! อะไรมอบให้?

2
บางทีฉันควรจะเปลี่ยนตัวอักษร!

1
ฮ่า ๆ ด้วยตัวอักษรซ้ำจำนวนมากและ 64 ไบต์ที่จะทำงานกับคุณได้อย่างง่ายดายสามารถสร้างฟังก์ชั่นเพียงแค่พิมพ์สตริงที่ค่อนข้างง่าย xD
Albert Renshaw

4
ฉันได้เพิ่มแหล่งที่มา แน่นอนว่าไม่มีอะไรเกี่ยวข้องกับจีโนม แต่มี pi 80 หลักในฐาน 4 เข้ารหัสโดยใช้ "GATC" เพื่อทำให้ผู้คนนึกถึงเกลียวคู่

12

ngn APL (ปลอดภัย)

0.675640430319848J0.8376870144941628

ช่วง≤ 8

วิธีการแก้

*3○⍟⍣=42

ลองออนไลน์

มันทำงานอย่างไร

  • ⍟⍣=42ใช้ลอการิทึมธรรมชาติ ( ) ซ้ำ ๆ เพื่อ42จนกว่าจะมีการจุดคงถึง ( ⍣=) ยอม0.31813150520476413J1.3372357014306895

    ค่าเริ่มต้นไม่ได้เรื่องจริงๆที่นี่ตราบใดที่มันเป็นค่า1หรือ0

  • 3○ใช้แทนเจนต์กับอาร์กิวเมนต์ที่ถูกต้องซึ่งให้ผลลัพธ์เป็น

  • * ใช้ฟังก์ชัน exponential แบบธรรมชาติกับอาร์กิวเมนต์ที่ถูกต้องโดยให้ผลลัพธ์ที่ต้องการ


ค่าสัมบูรณ์ไม่มากนัก
lirtosiast


8

> <> (ปลอดภัย)

ทดสอบกับล่ามออนไลน์และล่ามอย่างเป็นทางการ

ช่วง: <= 16

สตริง: 4621430504113348052246441337820019217490490

นี่คือ 1337 สวยใช่มั้ย

คำอธิบาย:

นี่คือซอร์สโค้ด (15 ไบต์):

f1-:0(?;::0g*n!

fกด 15 (ตัวนับของเรา) ลงบนสแต็ก (ซึ่งจะถูกข้ามโดย!ที่จุดสิ้นสุดเพื่อไม่ให้มีตัวนับมากกว่าหนึ่งตัว)

1- ลบ 1 จากตัวนับ

:0(?; ใบหน้าที่หน้าซีดจะทดสอบว่าตัวนับน้อยกว่า 0 หรือไม่ส่วนที่เหลือจะจบโปรแกรมถ้าเป็น

:: ทำซ้ำตัวนับสองครั้ง

0gคว้าตัวละครที่จุด(c,0)ในซอร์สโค้ดที่cเป็นตัวนับ

* คูณตัวนับที่สองของตัวนับโดยการแทน ASCII ของตัวละครที่จับไว้ก่อนหน้านี้

n พิมพ์ผลลัพธ์

[462, 1430, 504, 1133, 480, 522, 464, 413, 378, 200, 192, 174, 90, 49, 0]ดังนั้นแยกออกเป็น สิ่งนี้สอดคล้องกับการตีความ ASCII ของรหัสในการย้อนกลับคูณด้วยตัวเลข 14 ถึง 0 (เช่น[!*14, n*13, ... f*0])

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


8

Snowman 1.0.2

ช่วง≤32

110110111011011001111100111111111101111110101000101000100001100001100011100011101110110111011011111011111011101011101111101111110111110111111011110101111010111100101100101001111001111111011111011010111010111000000100000011111001111100

ทางออกคือ:

"mO~(!#]/.}{k2'=+@|":2nBspsP;aE

นี้เป็นเช่นแปลกภาษา ... ต้องคิดออกก่อนที่จะพยายามที่จะแตก ...
GamrCorps

3
เกือบจะอยู่ที่นั่น ... ได้รับ segfault 11 แม้ว่า ...
GamrCorps

7

Matlab, ≤16 แคร็กโดย Wauzl

ช่วง≤16

งานนี้ในOctaveด้วย

สตริงที่พิมพ์มีดังนี้:

ans =

     0     0     0     0     0     0     0     0     0
     0     0     0     0     9     4     0     0     0
     0     0     0     0    32    18     0     0     0
     0     0     0     9     1     0     3     0     0
     0     0     7     0     0     2    10     0     0
     0     0     3     0     2     2     3     0     0
     0     0     0    19    63    22     1     0     0
     0     0     0     4    13     4     0     0     0
     0     0     0     0     0     0     0     0     0

3
เป็นงานที่ดีฉันพยายามที่จะเกิดขึ้นกับสิ่งนี้ แต่อันนี้ดีจริง ๆ ฉันไม่รู้ว่ามันจะทำงานได้อย่างไร =)
ข้อบกพร่อง


7

Perl (ปลอดภัย)

84884488488444224424428844884884884488488444224424428844884884884488488444224424424422442442884488488488448848844422442442884488488488448848844422442442442244244244224424422211221221221122122144224424424422442442221122122144224424424422442442221122122144224424424422442442221122122122112212214422442442442244244222112212214422442442442244244222112212218844884884884488488444224424424422442442884488488488448848844422442442884488488488448848844422442442884488488488448848844422442442442244244288448848848844884884442244244288448848848844884884442244244244224424424422442442221122122122112212214422442442442244244222112212214422442442442244244222112212218844884884884488488444224424424422442442884488488488448848844422442442884488488488448848844422442442884488488488448848844422442442442244244288448848848844884884442244244288448848848844884884442244244244224424424422442442221122122122112212214422442442442244244222112212214422442442442244244222112212212212211222442442244244244224412212211222442442244244244224412212211221221221122244244224424424422442442442244488488448848848844882442442244488488448848848844882442442244244244224448848844884884884488244244224448848844884884884488244244224448848844884884884488244244224424424422444884884488488488448812212211222442442244244244224412212211222442442244244244224412212211221221221122244244224424424422442442442244488488448848848844882442442244488488448848848844882442442244244244224448848844884884884488244244224448848844884884884488244244224448848844884884884488244244224424424422444884884488488488448812212211222442442244244244224412212211222442442244244244224412212211221221221122244244224424424422441221221122244244224424424422441221221122244244224424424422441221221122122122112224424422442442442244244244224448848844884884884488244244224448848844884884884488244244224424424422444884884488488488448824424422444884884488488488448824424422444884884488488488448824424422442442442244488488448848848844882442442244488488448848848844882442442244488488448

ช่วง≤ 32

วิธีการแก้

print 2**y/124589//for-951..1048

ลองออนไลน์

มันทำงานอย่างไร

  • for-951..1048 ดำเนินการคำสั่งก่อนหน้าสำหรับแต่ละจำนวนเต็มในช่วงนี้บันทึกไว้ในตัวแปรโดยนัย

  • y/124589// ทำการถอดเสียงกำจัดตัวเลขที่ระบุจากตัวแปรโดยนัย

    y/// จะคืนค่าจำนวนการคัดออกเช่นจำนวนการเกิดขึ้นของตัวเลขเหล่านั้นในตัวแปรโดยนัย

  • print 2**พิมพ์2ถึงกำลังของการคัดออก ( 1 , 2 , 4หรือ8 )


7

Python, <= 16 ( ถอดรหัสโดย kennytm )

[[[22111101102001]]]

สิ่งนี้ผลิตผ่าน REPL (การรันคำสั่งใน Python shell)

ในขณะที่ฉันกำลังแก้ไขสิ่งนี้ฉันจะสรุปความคิดเห็นสำหรับโจรที่ไม่มีสปอยเลอร์ในอนาคต: มันไม่สามารถใช้ได้กับงูเหลือมทั้งหมด sys.maxint = 9223372036854775807มันไม่ทำงานในการสร้างของงูใหญ่ที่ 2.7


2
มันยากมาก
J Atkin

1
ใช้ได้ทั้ง Python 2 และ Python 3 หรือไม่
DLosc

1
EEP Python 2 เท่านั้นขออภัย
ฮิสโทแก

1
แปลว่ามันไม่ทำงานใน Python 3 ใช่ไหม
DLosc

1
นั่นเป็นคำใบ้ แต่ใช่ฉันสัญญาว่าจะไม่ทำงานในหลาม 3.
histocrat


6

TI-BASIC, ≤4ไบต์, ถอดรหัสโดย Reto Koradi

สิ่งนี้ใช้เวลา 5 วัน 23 ชั่วโมงในการถอดรหัส เฉียดฉิว...

เอาท์พุท (10 ไบต์):

.495382547

โปรแกรม:

³√(tanh(7°

เนื่องจากเป็นไปไม่ได้ที่ใครบางคนจะคาดเดาสิ่งนี้เป้าหมายของฉันในการออกแบบโปรแกรมนี้คือการทำให้เดรัจฉานบังคับวิธีการเดียวที่เป็นไปได้

ในการทำเช่นนี้ฉันได้ป้องกันเอาท์พุทหรือเอาท์พุทโดยใช้หนึ่งในฟังก์ชั่นผกผันเหล่านี้จากการแสดงบน ISC ISC ไม่มีไฮเพอร์โบลิกแทนเจนต์และฉันคิดว่าจะไม่มีเครื่องมือที่คล้ายกันtanh(7°นี้

เพื่อเพิ่มความปลอดภัยจากแรงเดรัจฉานฉันใช้การแปลงแบบองศาต่อเรเดียนซึ่งเป็นคุณสมบัติที่คลุมเครือเล็กน้อย แต่ก็ไม่เพียงพอ


10
@ Conor O'Brien คุณต้องการเพียง 10 ไบต์ในการเขียนทศนิยม!
Arcturus

1
นี่คือรายการคำสั่ง TI-84 + พื้นฐานทั้งหมดรวมถึงเอกสารประกอบอย่างละเอียด
lirtosiast

2
ชัดเจนเช่นกันโทมัส (และฉันคิดว่าคนส่วนใหญ่) พิจารณาสิ่งที่ต้องการsin(เป็น 1 ไบต์ใน TI-BASIC ดังนั้นสิ่งที่ต้องการsin(sin(sin(eจะเป็นเพียง 4 ไบต์
Albert Renshaw

1
fPart(ในความเป็นจริงทั้งหมดที่เรารู้ว่าเขาอาจจะใช้
LegionMammal978

1
@AlbertRenshaw ใช่ฉันเลือกมันแล้ว เอกสารประกอบที่โทมัสลิงก์แสดงรายการ "ขนาดโทเค็น" สำหรับผู้ให้บริการแต่ละราย ผมคิดว่าเป็นสิ่งที่เรากำลังนับและว่าผู้ประกอบการที่เขาใช้ส่วนใหญ่มีแนวโน้มจะมาจากรายการนี้: tibasicdev.wikidot.com/one-byte-tokens
Reto Koradi

6

CJam, ≤ 8 [ปลอดภัย]

379005901358552706072646818049622056

ฉันไม่ชอบตัวเลขที่ยาวดังนั้นนี่คือสั้น ๆ รู้สึกอิสระที่จะทำเล่นทั้งออฟไลน์และออนไลน์

เนื่องจากฉันพบว่าการส่งแบบตัวเลขเท่านั้นน่าเบื่อฉันจะค่อยๆออกคำแนะนำเล็กน้อยเพื่อชดเชย

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


วิธีการแก้

โปรแกรมดังกล่าว

0W#sWcib

0W#คือ0^-1ซึ่งแทนที่จะทำให้เกิดInfinityข้อผิดพลาด sจากนั้นมันจะปลดเปลื้องสิ่งนี้ให้กับสตริง (หมายเหตุที่`ให้1d0/แทน)

สำหรับอีกครึ่งหนึ่งWcแปลง -1 เป็นถ่านซึ่งกลายเป็นรหัสจุด 65535 เนื่องจากการขึ้นบรรทัดใหม่สำหรับตัวอักษร (ดูเคล็ดลับนี้ ) iจากนั้นแปลงถ่านกลับไปเป็น int เช่น 65535

ในที่สุดก็bแปลงสตริงInfinityเป็นฐาน 65535 เพื่อให้ตัวเลขข้างต้น


6

Javascript (คอนโซล), <= 32 ( แตกโดยแทรกชื่อผู้ใช้ที่นี่ )

"a,a,0,a,b,a,a,b,a,a,4,a,b,a,a,a,a,6,a,b,a,a"

ทดสอบในคอนโซลเว็บของ Chrome และ Firefox นั่นคือสตริงอักขระ 43 ตัว

วิธีแก้ปัญหาที่ฉันตั้งใจไว้นั้นซับซ้อนกว่าโซลูชันที่เชื่อมโยงอีกเล็กน้อย (สาปแช่งคุณ ES6!)

'A, B, A, a'.replace (/ (ก) / g อาร์เรย์)

คำอธิบาย:

เมื่อคุณเรียกใช้replaceด้วยนิพจน์ทั่วไปที่มีการ/gตั้งค่าสถานะและฟังก์ชันจะแทนที่ทุกสิ่งที่ตรงกับ regex ด้วยผลลัพธ์ของการเรียกใช้ฟังก์ชันด้วยอาร์กิวเมนต์เหล่านี้: สตริงที่จับคู่ทุกกลุ่มการจับภาพในสตริงที่ตรงกันดัชนีที่ตรงกันมีสตริง สตริงทั้งหมดและสตริงทั้งหมด ในกรณีนี้นั่นคือ "a", "a", 0 หรือ 4 หรือ 6 และ "a, b, a, a" อาร์กิวเมนต์ทั้งหมดเหล่านี้จะถูกส่งผ่านไปยังตัวสร้าง Array ซึ่งสร้างอาร์เรย์ของทุกสิ่งที่ผ่านเข้ามาจากนั้นreplaceแปลงเป็นสตริงเช่น "a, a, 0, a, b, a, a" และแทนที่ "a" ตัวละครกับมัน


รับลงไปที่ 37 ไบต์ ดูเหมือนว่าเลขฐานสิบหกดังนั้นหวังว่าจะช่วยได้
mbomb007


1
ฉันไม่สามารถโหวตได้อีก แต่นี่เป็นโปรแกรมที่ดีทีเดียว
insertusernamehere

5

Python, <= 32 ( แตกโดย Egor Skriptunoff)

เอาต์พุตคือ 1832 ไบต์รวมถึงบรรทัดใหม่:

163
485
559
1649
2707
8117
8415
24929
41891
124133
142639
423793
694675
2075317
2162655
6357089
10682531
31785445
36635183
108070513
177408659
531963829
551493855
1633771873
2745410467
8135173349
9347869999
27774121841
45526653331
136007297717
141733920735
416611827809
700079669411
2083059139045
2400886719023
7082401072753
11626476472979
34862249549749
36142149804255
107069239746913
179920475038627
533147175478501
612629840276783
1820177075697521
2983606407043475
8913418645908149
9288532499693535
27303489359118433
45881121294188707
136517446795592165
157346912904610351
464159319105013361
761964388609624723
2284767248741900213
2368648071721459935
7016996765293437281
11791448172606497699
34940303480791033061
40148795925132553519
119288945009988433777
195535487181321247123
584146895667469134517
608742554432415203295
1789334175149826506849
3006819284014656913571
8946670875749132534245
10311729937203639353903
30418680977547050616433
49935336207531756227219
149732221646300430475189
155229351380265876857055
459858883013505412260193
772752555991766826787747
2289849682101787770873061
2631225127929856733097263
7817601011229592008423281
12814491939404182769539475
38282841570818685533137589
39893943304728330352263135
117267593836794179779362913
197057915416468570144702627
586337969183970898896814565
675799844894514912336740911
1993549095225501056249169521
3272612129033008707863251603
9813000610033591312052461493
10173266001408484771580813535
30137771616056104203296268641
50643884262032422527188575139
150067460764265635881358255333
172437765505860562200296238383
512342117472953771456036566897
839818522529453467650609486227
2508891813142320379359897758389
2614529362361980586296269078495
7685131765672974922140201517153
12914190492831906312462400487587
38425658828364874610701007585765
44288542855785494654395594310191

ฉันเห็นรูปแบบของ 4s
J Atkin


@EgorSkriptunoff Yep - ฉันใช้โครงสร้างลูปที่แตกต่างกัน แต่ไม่อย่างนั้นมันก็เป็นตรรกะเดียวกัน
DLosc

@DLosc - มันสามารถทำให้สั้นลงด้วยลูปอื่นได้หรือไม่
Egor Skriptunoff

@EgorSkriptunoff ผมใช้เทคนิคการเล่นกอล์ฟงูหลาม - ฉันเป็นไม่ได้ไปโพสต์รหัสของฉันเพราะฉันอาจจะทำบางสิ่งบางอย่างที่คล้ายกันในคำตอบอื่น, แต่คุณสามารถหาแนวคิดที่หน้าเคล็ดลับหลาม
DLosc

5

CJam ( แตกโดยเดนนิส)

ความยาว <= 4

1737589973457545958193355601

ฉันไม่ได้ให้โอกาสรอดชีวิตสูงนัก แต่ฉันก็อยากลองใช้ 4 ไบต์ต่อไป

รหัสของฉันคือสิ่งที่ Dennis ออกแบบวิศวกรรมย้อนกลับ:

H     Push 17
J     Push 19.
K     Push 20.
#     Power.

จากนั้น CJam จะพิมพ์เนื้อหาสแต็กทั้งหมดที่ต่อกัน ดังนั้นการส่งออกที่ถูกตัดแบ่งกับ1719^20



@Dennis Ok ทำเครื่องหมายว่าเป็นรอยร้าว ฉันไม่ได้คาดหวังให้มันหยุดยั้ง แต่ฉันก็ยังสนใจอยู่ดี: คุณกำลังดุร้ายเหรอ? หรือว่าคุณเดาได้ดีกับสิ่งที่ฉันทำ
Reto Koradi

1
เอาท์พุทใหญ่เกินไปที่จะเป็นอะไรก็ได้ แต่เป็นแฟกทอเรียลหรือพลังงาน ฉันเริ่มต้นกับพยายามอำนาจอีกไม่กี่และพบในที่สุดKK# JK#
เดนนิส

5

Lua, ≤ 4 ( แตกโดย feersum)

เอาท์พุท:

9.5367431640625e-07

คุณต้องค้นหาสตริงสำหรับ Lua REPL ซึ่งผลลัพธ์เป็นค่าคงที่ "1 / M"
มันง่าย แต่ไม่สำคัญมาก


@ LegionMammal978 - คำแนะนำ: ใน Lua 5.3 REPL หนึ่งสามารถละเว้น=ก่อนการแสดงออก
Egor Skriptunoff

สิ่งที่ฉันไม่ทราบ แต่เป็นว่าไม่มีคำตอบที่นี่ ...
LegionMammal978

@ LegionMammal978 - ใช่ลิงค์ที่คุณให้ไว้เป็นที่ที่เหมาะสมในการอ่าน คุณมีข้อมูลทั้งหมดที่คุณต้องการอยู่แล้ว แค่แก้มัน
Egor Skriptunoff


วิธีแก้ปัญหาที่น่าสนใจ:0x2p-21
daurnimator

5

Pip , <= 16 (ปลอดภัย)

นี่คือการส่ง Pip ครั้งสุดท้ายของฉันฉันสัญญา :)

0123456789
0        9
0        9
0        9
0        9
0        9
0        9
0        9
0        9
0        9
0        9
0123456789

ฉันจะแปลกใจถ้ามีใครลดขนาดได้ถึง 16 ไบต์ - ฉันต้องพยายามสักสองสามครั้งเพื่อให้พอดี (รับสิ่งนั้นเป็นสิ่งที่ท้าทายหากคุณต้องการ!)


ตอบ:

Px:J,tLtP09JsX8x

รหัสนี้ใช้ประโยชน์จากตัวแปรที่กำหนดไว้ล่วงหน้าt= 10 และs= ช่องว่าง

    ,t            Range(10)
   J              Join into string: "0123456789"
Px:               Assign to x and print
      Lt          Loop 10 times:
         09         This is a numeric literal, but it can act like a string "09" because
                    strings and numbers are the same data type in Pip
            sX8     8 spaces
           J        Join left arg on right arg: "0        9"
        P           Print
               x  Last expression in a program is autoprinted: "0123456789"

นี่มันเท่ห์ดี
J Atkin

อืม ... แต่ละหมายเลขคือหมายเลขคอลัมน์ 0 ดัชนี : - /
ev3commander

@JAtkin ฉันก็คิดเช่นกัน เพิ่ม ^ _ ^ คำอธิบาย
DLosc

ดีมากมี +1;)
J Atkin

4

ทับทิมแตกโดย kennytm

ช่วง: ≤64

#<MatchData "@@" 1:"@" 2:"@">
"#<ArgumentError: unknown command \"\\x00\">\nu#<ArgumentError: unknown command \"\\x00\">\nn#<ArgumentError: unknown command \"\\x00\">\nk#<ArgumentError: unknown command \"\\x00\">\nn#<ArgumentError: unknown command \"\\x00\">\no#<ArgumentError: unknown command \"\\x00\">\nw#<ArgumentError: unknown command \"\\x00\">\nn#<ArgumentError: unknown command \"\\x00\">\n #<ArgumentError: unknown command \"\\x00\">\nc#<ArgumentError: unknown command \"\\x00\">\no#<ArgumentError: unknown command \"\\x00\">\nm#<ArgumentError: unknown command \"\\x00\">\nm#<ArgumentError: unknown command \"\\x00\">\na#<ArgumentError: unknown command \"\\x00\">\nn#<ArgumentError: unknown command \"\\x00\">\nd#<ArgumentError: unknown command \"\\x00\">\n #<ArgumentError: unknown command \"\\x00\">\n\"#<ArgumentError: unknown command \"\\x00\">\n\\#<ArgumentError: unknown command \"\\x00\">\nx#<ArgumentError: unknown command \"\\x00\">\n0#<ArgumentError: unknown command \"\\x00\">\n0#<ArgumentError: unknown command \"\\x00\">\n\"#<ArgumentError: unknown command \"\\x00\">\n@#<ArgumentError: unknown command \"\\x00\">\n@#<ArgumentError: unknown command \"\\x00\">\n"

(และใช่เอาต์พุตทั้งหมดคือ STDOUT)

โซลูชันที่ตั้งใจไว้:

test'@@'=~/(.)(.)/ rescue p"#{$!}#{p$~}".gsub(//,$!.inspect+$/)


@ kennytm ว้าวฉันประทับใจ คุณสามารถทำให้ตัวละครตัวหนึ่งสั้นกว่ารหัสเดิมของฉันได้!
Doorknob

4

TI-BASIC ( แตกโดยโทมัสควา )

ชุดตัวเลือก TI-89
ช่วง: ≤8
ความยาวเอาต์พุต: 460

1257286521829809852522432602192237043962420111587517182185282167859393833998435970616540717415898427784984473447990617367563433948484506876830127174437083005141539040356040105854054119132085436114190914221684704295353373344661986220406465038338295680627940567692710933178603763184382721719223039895582218462276317539764129360057392146874652124017927952151332902204578729865820715723543552685154087469056000000000000000000000000000000000000000000000000000000000

ฉันไม่คิดว่าคุณสามารถใช้ RIES ในเรื่องนี้ได้ แต่ฉันสงสัยว่ามันจะอยู่รอดได้ 7 วัน โอ้ดี

รหัส:

236!


"REIS" คืออะไร
mbomb007


4

MATLAB แตกโดย Tom Carpenter

ช่วง <= 16

ans =

        5760       22320
       13920       53940

Grr, 17 เป็นคนใกล้ชิดที่สุดที่ฉันจะได้รับ!
Tom Carpenter

8
ในความเป็นจริงฉันพบมาแล้ว 8 วิธีใน 17 ไบต์!
Tom Carpenter


2
ผู้ชายคนนั้นเป็นความท้าทายที่สนุก!
Tom Carpenter


4

Thue - <= 64 Bytes โดยแคร็กเกอร์

555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555

นั่นคือ 5 วินาที 2559; ยังไงซะ.



4

CJam, ≤8 (ปลอดภัย)

\"3.341594\43181\

รหัสเดิม:

P`_`_`er

นั่นคือการเริ่มต้นด้วย3.141592653589793และแทนที่ตัวละครแต่ละตัวในกับตัวละครที่สอดคล้องกันใน"3.141592653589793" "\"3.141592653589793\""กับรายการที่ซ้ำกันออกก็จริงแทนที่ด้วย".123456789""35\.49831


4

Python 2 (ปลอดภัย 16)

(1.06779146638-0.024105112278j)

ช่วง≤ 16 ในกรณีที่เรื่องรุ่น (สำหรับการพิมพ์ที่มีความแม่นยำ?) ผมใช้ideone

ฉันไม่เห็นวิธีการเดารหัสโดยไม่ต้องค้นหาด้วยคอมพิวเตอร์ แต่คุณทุกคนเคยทำให้ฉันประทับใจมาก่อน


ตอบ:

print.7j**8j**2j

1
REPL นี้หรือโปรแกรมเต็มหรือไม่
lirtosiast

@ThomasKwa โปรแกรมเต็มรูปแบบ
xnor

ใช้dir(complex)เพื่อดูสิ่งที่ ops ถูกกำหนดสำหรับตัวเลขที่ซับซ้อน ฉันไม่รู้ว่าคุณสามารถใช้โมดูลัส โปรดทราบว่าสิ่งนี้อาจไม่เป็นประโยชน์ แต่อาจ ...
mbomb007

3

JavaScript ES6, ≤128ไบต์ - แตก

เอาท์พุท (1124 ไบต์):

00371223425266831021221451701972262572903253624014424855305776266777307858429019621025109011571226129713701445152216011682176518501937202621172210230524022501260227052810291730263137325033653482360137223845397040974226435744904625476249015042518553305477562657775930608562426401656267256890705772267397757077457922810182828465865088379026921794109605980210001102021040510610108171102611237114501166511882121011232212545127701299713226134571369013925141621440114642148851513015377156261587716130163851664216901171621742517690179571822618497187701904519322196011988220165204502073721026213172161021905222022250122802231052341023717240262433724650249652528225601259222624526570268972722627557278902822528562289012924229585299303027730626309773133031685320423240132762331253349033857342263459734970353453572236101364823686537250376373802638417388103920539602400014040240805412104161742026424374285043265436824410144522449454537045797462264665747090475254796248401488424928549730501775062651077515305198552442529015336253825542905475755226556975617056645571225760158082585655905059537600266051761010615056200262501630026350564010

ขอให้สนุกและโชคดี!

รหัสเดิม:

new Array(254) .fill(0).map((x,s)=>s*s-s/((5-s)||3)).map(Math.floor).join``

Still safe :3
Conor O'Brien

1
ฉันชอบสิ่งนี้ แคร็ก
SLuck49

@ SLuck49 ฉันโพสต์รหัส
Conor O'Brien

3

TI-BASIC (แตกโดยโทมัสควา)

ช่วง: <= 2

สตริง: -10

รหัส: Xmin

ไม่มีใครหลอกคนนี้ ...


คุณยังไม่ได้แตกมันใช่ไหม
ปาเก็ตตี้

1
ฉันจะเศร้าอย่างจริงจังถ้าคุณทำสิ่งนี้เป็น IMO ที่ค่อนข้างฉลาด
ปาเก็ตตี้

ใน Python นี่คือ~9(การผกผันของบิต)
user193661

แน่นอน แต่คุณต้องตอบเป็น TI-BASIC ไม่ว่าจะในอัตราใดก็ตาม โทมัสแตกมันแล้ว ฉันคิดว่าเขากำลังรอที่จะดี (?)
ปาเก็ตตี้


3

AppleScript แตก ≤ 2 ไบต์

"เดรัจฉานบังคับ ... บ่นบ่น ... "

นี่อะไรน่ะ? คำตอบสั้น ๆ ของ AppleScript? : o

ค่าที่ขาดหายไป

(ใช่สิ่งนี้พิมพ์ไปยัง stdout)


a=หรือa- 1=หรือ1-หรือ ฉันไม่มีความคิด =)
ข้อบกพร่อง

Nope สิ่งเหล่านั้นจะส่งไปที่ STDERR เป็นข้อผิดพลาด # -2741
Addison Crump


1
@squeamishossifrage คุณสามารถร่นว่าโดยหนึ่งไบต์ใช้และถ้าคุณไม่ทราบไวยากรณ์หนึ่งไบต์มากขึ้นด้วยsay"Cracked." say"Cracked"c:
Addison Crump


3

GolfScript (ปลอดภัย)

44460233687688399109436699097976761322375660878906252846699686946304

ช่วง≤ 8

วิธีการแก้

{9?7*}.%

ลองออนไลน์

มันทำงานอย่างไร

  • {9?7*} ดันบล็อกนั้นบนสแต็ก

  • .% ทำซ้ำบล็อกและแมปมัน…เหนือตัวเอง

    GolfScript ดำเนินการคัดเลือกนักแสดงอย่างไม่มีวันพรุ่งนี้ ในกรณีนี้ล่ามคาดว่า iterable เพื่อบล็อกเดิมได้รับการส่งข้อมูลไปยังอาร์เรย์ผลผลิตอาร์เรย์ต่อไปนี้ของรหัสตัวอักษร: [57 63 55 42]

  • บล็อกจะยกรหัสอักขระแต่ละตัวให้กับกำลังเก้า ( 9?) จากนั้นคูณผลลัพธ์ด้วยเจ็ด ( 7*)

    สำหรับรหัสอักขระสี่ตัวในอาร์เรย์สิ่งนี้จะผลักดัน

    44460233687688399
    109436699097976761
    32237566087890625
    2846699686946304
    

    ก่อนออกล่ามผู้แปลจะพิมพ์จำนวนเต็มสี่จำนวนโดยไม่มีตัวคั่น

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