บทนำ
สมมติว่าช่วงเวลาที่งูพิษและหน้าผาอยู่ห่างออกไปเพียงสองก้าวแทนที่จะเป็นสามขั้น
o
---
Hsss! |
';;' ___ /_\ ___ _
|
น่าเสียดายที่คุณเป็นเชลยของผู้ทรมานซาดิสต์ คุณจะต้องเดินไปทางซ้ายหรือขวาทุกก้าว ถ้าคุณทำไม่ได้พวกเขาจะยิงคุณตายทันที คุณได้รับอนุญาตให้วางแผนขั้นตอนของคุณล่วงหน้า แต่เมื่อคุณทำตามขั้นตอนแรกคุณจะไม่สามารถเปลี่ยนแผนได้ (และไม่มีเสียงดังอืดอาดเช่นกันพวกมันจะยิงคุณ)
ทันใดนั้นความคิดที่สดใสก็มาถึงใจ ...
Ah! ฉันสามารถสลับก้าวไปทางซ้ายและขวาได้! ขั้นตอนที่ถูกต้องขั้นตอนที่เหลือขั้นตอนที่ถูกต้องขั้นตอนที่เหลือและอื่น ๆ ...
อ่าอาไม่เร็วนัก อย่างที่ฉันพูดผู้ทรมานนั้นเป็นพวกซาดิสต์ พวกเขาจะเลือกไม่ว่าคุณจะทำทุกขั้นตอนหรือทุกขั้นตอนที่สองหรือทุกขั้นตอนที่สามเป็นต้น ดังนั้นหากคุณเลือกอย่างไร้เดียงสาลำดับแล้วพวกเขาสามารถบังคับให้คุณใช้เวลาทุกขั้นตอนที่สองซึ่งจะเริ่มต้นด้วยRLRLRL...
LL
เอ่อโอ้! คุณถูกงูพิษกัด! ความมืดปกคลุมคุณและทุกอย่างก็จางหายไป ...
ที่จริงแล้วคุณยังไม่ตาย คุณยังต้องเกิดขึ้นกับแผนของคุณ หลังจากคิดถึงเรื่องนี้สักครู่คุณก็ตระหนักว่าคุณกำลังถูกลงโทษ ไม่มีวิธีการวางแผนขั้นตอนต่าง ๆ ที่จะรับประกันความอยู่รอดของคุณ RLLRLRRLLRR
ดีที่สุดที่คุณสามารถขึ้นมามี 1สิบเอ็ดขั้นตอนที่ปลอดภัยและไม่มาก หากขั้นตอนที่สิบสองคือR
Torturer จะทำให้คุณทำทุกขั้นตอนและจากนั้นสามขั้นตอนสุดท้ายจะส่งคุณออกจากหน้าผา หากขั้นตอนที่สิบสองคือL
ผู้ทรมานจะทำให้คุณทำทุกขั้นตอนที่สาม ( LRLL
) ซึ่งจะทำให้คุณถูกต้องในฝูงของงูพิษและกัดกัดตายของพวกเขา
คุณเลือกR
เป็นขั้นตอนที่สิบสองหวังที่จะชะลอการตายให้นานที่สุด ด้วยเสียงคำรามในหูของคุณคุณสงสัยในตัวเอง ...
ถ้าฉันมีสามขั้นตอนล่ะ
แจ้งเตือนสปอยเลอร์!
คุณยังจะตาย ไม่ว่าคุณจะมีกี่ก้าวก็จะมีบางจุดที่ไม่ว่าคุณจะเลือกแบบไหนก็ตามจะมีลำดับขั้นตอนที่ทรมานของคุณสามารถเลือกได้เพื่อให้แน่ใจว่าคุณจะได้พบกับชะตากรรมที่อันตราย 2อย่างไรก็ตามเมื่องูพิษและหน้าผาอยู่ห่างออกไปสามขั้นตอนคุณสามารถทำตามขั้นตอนที่ปลอดภัยทั้งหมด 1160 ขั้นตอนและเมื่อก้าวออกไปสี่ก้าวจะมีขั้นตอนที่ปลอดภัยอย่างน้อย 13,000 ขั้น! 3
ความท้าทาย
รับจำนวนเต็มเดียวn < 13000
ออกลำดับn
ขั้นตอนที่ปลอดภัยสมมติว่าหน้าผาและงูพิษอยู่ห่างออกไปสี่ขั้นตอน
กฎระเบียบ
- สามารถเป็นได้ทั้งโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบ
- อินพุตสามารถใช้ผ่าน STDIN หรือเทียบเท่าหรือเป็นอาร์กิวเมนต์ของฟังก์ชัน
- การส่งออกจะต้องมีตัวละครสองตัวที่แตกต่างกัน (ซึ่งอาจจะเป็น
+/-
,R/L
,1/0
ฯลฯ ) - ช่องว่างใด ๆ ในผลลัพธ์ไม่สำคัญ
- ไม่อนุญาตให้ใช้การเข้ารหัสอย่างหนัก นั่นจะทำให้ความท้าทายนี้เป็นเรื่องเล็กน้อย
- โปรแกรมของคุณควร (ในทางทฤษฎี) เสร็จในเวลาที่เหมาะสม ในขณะที่
n=13000
อาจใช้เวลาเช่นเดือน แต่ก็ไม่ควรใช้เวลาเป็นพัน ๆ ปีหรือมากกว่า นั่นคือไม่มีกำลังดุร้าย (อย่างน้อยก็พยายามหลีกเลี่ยง) - โบนัสชีวิต:มอบชุดของ
2000
ขั้นตอนที่ปลอดภัย หากคุณทำสิ่งนี้ผู้ทรมานจะประทับใจในความดื้อรั้นความเพียรและความคาดหวังของคุณที่พวกเขาจะปล่อยให้คุณมีชีวิตอยู่ ครั้งนี้ (ปฏิบัติตามลำดับนี้เป็นเลขฐานสองและจัดให้มีทศนิยมเทียบเท่าสำหรับการตรวจสอบนี่มีจุดประสงค์เพื่อให้รางวัลแก่คำตอบที่เสร็จอย่างรวดเร็วเนื่องจากคำตอบนั้นใช้เวลานานมาก) - คะแนน: ไบต์เว้นแต่คุณจะมีสิทธิ์ได้รับโบนัส - คูณด้วย 0.75
1มีคำอธิบายที่ดีของปัญหานี้และ "การแก้ปัญหา" โดยหนึ่งในดาวของ Numberphile เจมส์สกปรกมากกว่าในช่อง YouTube ของเขาอยู่ที่นี่: https://www.youtube.com/watch?v=pFHsrCNtJu4
2 การคาดคะเนอายุ 80 ปีนี้ซึ่งรู้จักกันว่าเป็นปัญหาความไม่ลงรอยกันของ Erdos ได้รับการพิสูจน์โดย Terence Tao เมื่อเร็ว ๆ นี้ นี่เป็นบทความที่ดีมากในนิตยสารควอนตั้มเกี่ยวกับเรื่องนี้: https://www.quantamagazine.org/20151001-tao-erdos-discrepancy-problem/
3ที่มา: การโจมตี SAT จาก Erdos Conjecture Conjectureโดย Boris Konev และ Alexei Lisitsa แปลจากที่นี่: http://arxiv.org/pdf/1402.2184v2.pdf
n=13000
ภายในเช่นปีอาจจะสิบ คุณจะรอเดือนn=2000
หรือไม่ อาจจะไม่ได้ และถ้าคุณทำเช่นนั้นคุณสมควรได้รับโบนัสอยู่ดี
n=13000
2000 คำแนะนำแรกของมันจะได้รับโบนัสหรือไม่ ดูเหมือนไม่มีจุดหมายดังนั้นคุณอาจหมายถึงอย่างอื่นหรือ