บางคนอาจคุ้นเคยกับBigNum Bakeoffซึ่งจบลงด้วยความน่าสนใจ เป้าหมายสามารถสรุปได้มากหรือน้อยเมื่อเขียนโปรแกรม C ที่ผลลัพธ์จะใหญ่ที่สุดภายใต้ข้อ จำกัด และเงื่อนไขทางทฤษฎีเช่นคอมพิวเตอร์ที่สามารถเรียกใช้โปรแกรมได้
ในจิตวิญญาณเดียวกันฉันวางความท้าทายที่คล้ายกันเปิดให้ทุกภาษา เงื่อนไขคือ:
สูงสุด 512 ไบต์
ต้องพิมพ์ผลลัพธ์สุดท้ายไปที่ STDOUT นี่คือคะแนนของคุณ หากมีการพิมพ์จำนวนเต็มจำนวนมากพวกมันจะถูกต่อกัน
เอาต์พุตต้องเป็นจำนวนเต็ม (หมายเหตุ: อินฟินิตี้ไม่ใช่จำนวนเต็ม )
ไม่มีค่าคงที่แบบบิวด์อินที่ใหญ่กว่า 10 แต่ตัวเลข / หลักนั้นดี (เช่นค่าคงที่ของ Avogadro (ค่าคงที่ในตัว) ไม่ถูกต้อง แต่ไม่ใช่ 10,000
โปรแกรมจะต้องยุติเมื่อมีทรัพยากรเพียงพอที่จะเรียกใช้
เอาต์พุตที่พิมพ์ออกมาจะต้องถูกกำหนดไว้ล่วงหน้าเมื่อมีทรัพยากรเพียงพอในการทำงาน
คุณได้รับจำนวนเต็มหรือบิ๊กพอที่เพียงพอเพื่อให้โปรแกรมของคุณทำงาน ตัวอย่างเช่นถ้าโปรแกรมของคุณต้องการการใช้งานพื้นฐานไปยังหมายเลขที่มีขนาดเล็กกว่า 10 1,000,000แล้วคุณอาจคิดคอมพิวเตอร์ที่ใช้นี้สามารถจัดการกับตัวเลขอย่างน้อยถึง 10 1,000,000 (หมายเหตุ: โปรแกรมของคุณอาจทำงานบนคอมพิวเตอร์ที่จัดการตัวเลขสูงถึง 10 2,000,000ดังนั้นการเรียกเลขจำนวนเต็มที่สูงสุดที่คอมพิวเตอร์สามารถจัดการได้จะไม่ส่งผลให้เกิดผลลัพธ์ที่กำหนดขึ้น)
คุณได้รับพลังการประมวลผลที่เพียงพอสำหรับโปรแกรมของคุณในการดำเนินการให้เสร็จสิ้นภายใน 5 วินาที (ดังนั้นไม่ต้องกังวลหากโปรแกรมของคุณทำงานเป็นเวลาหนึ่งชั่วโมงในคอมพิวเตอร์ของคุณและจะไม่เสร็จเร็ว ๆ นี้ทุกเวลา)
ไม่มีแหล่งข้อมูลภายนอกดังนั้นอย่าคิดนำเข้าฟังก์ชั่น Ackermann เว้นแต่จะเป็นแบบในตัว
ไอเท็มเวทย์มนตร์ทั้งหมดถูกยืมชั่วคราวจากเทพผู้ใจดี
มีขนาดใหญ่มากพร้อมขีด จำกัด ที่ไม่รู้จัก
- Steven H , Pyth f 3 + B³F + ω² (256 26 )
โดยที่B³Fเป็นลำดับของ Church-Kleene กับลำดับขั้นพื้นฐานของ
B³F[n] = B³F(n), the Busy Beaver BrainF*** variant
B³F[x] = x, ω ≤ x < B³F
ลีดเดอร์บอร์ด:
ซิมเพิลอาร์ทสวย , ทับทิม f ψ 0 (X (Ω M + X (Ω M + 1 Ω M + 1 ) )) + 29 (9 9 9 )
สตีเว่น H , Pythฉ ψ (โอห์มโอห์ม ) + ω² + 183 (256 27! )
Leaky Nun , Python 3 f ε 0 (9 9 9 )
fejfo , Python 3ฉโอห์มโอห์ม6 (ฉโอห์มโอห์ม5 (9e999))
สตีเว่น H , Python 3ฉโอห์มโอห์ม + ω² (9 9 9 99 )
ซิมเพิลอาร์ทสวย , ทับทิม f ω + 35 (9 9 99 )
i .. , Python 2 , f 3 (f 3 (141))
หมายเหตุด้านข้างบางส่วน:
หากเราไม่สามารถตรวจสอบคะแนนของคุณได้เราจะไม่สามารถวางลงบนลีดเดอร์บอร์ดได้ ดังนั้นคุณอาจต้องการอธิบายโปรแกรมของคุณสักเล็กน้อย
ในทำนองเดียวกันหากคุณไม่เข้าใจว่าจำนวนของคุณมากเพียงใดให้อธิบายโปรแกรมของคุณแล้วเราจะพยายามทำให้สำเร็จ
หากคุณใช้โปรแกรมประเภทหมายเลขของ Loaderฉันจะจัดให้คุณอยู่ในหมวดหมู่แยกต่างหากที่เรียกว่า"ขนาดใหญ่มากพร้อมขีด จำกัด ที่ไม่รู้จัก"เนื่องจากหมายเลขของ Loader นั้นไม่มีขอบเขตบนที่ไม่สำคัญในแง่ของลำดับชั้นที่เติบโตอย่างรวดเร็วสำหรับ ' มาตรฐาน 'ลำดับขั้นพื้นฐาน
ตัวเลขจะถูกจัดอันดับผ่านลำดับชั้นที่เติบโตอย่างรวดเร็ว
สำหรับผู้ที่ต้องการเรียนรู้วิธีการใช้ลำดับชั้นที่เติบโตอย่างรวดเร็วเพื่อประมาณจำนวนมากจริงๆฉันโฮสต์เซิร์ฟเวอร์ Discordเพียงแค่นั้น นอกจากนี้ยังมีห้องสนทนา: Ordinality
ความท้าทายที่คล้ายกัน:
โปรแกรมยกเลิกที่สั้นที่สุดที่ขนาดเอาต์พุตเกินจำนวนของ Graham
สำหรับผู้ที่ต้องการเห็นโปรแกรมง่าย ๆ บางอย่างที่ให้ลำดับชั้นที่เติบโตอย่างรวดเร็วสำหรับค่าเล็ก ๆ นี่คือ:
Ruby: ลำดับชั้นที่เติบโตอย่างรวดเร็ว
#f_0:
f=->n{n+=1}
#f_1:
f=->n{n.times{n+=1};n}
#f_2:
f=->n{n.times{n.times{n+=1}};n}
#f_3:
f=->n{n.times{n.times{n.times{n+=1}}};n}
#f_ω:
f=->n{eval("n.times{"*n+"n+=1"+"}"*n);n}
#f_(ω+1):
f=->n{n.times{eval("n.times{"*n+"n+=1"+"}"*n)};n}
#f_(ω+2):
f=->n{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}};n}
#f_(ω+3):
f=->n{n.times{n.times{n.times{eval("n.times{"*n+"n+=1"+"}"*n)}}};n}
#f_(ω∙2) = f_(ω+ω):
f=->n{eval("n.times{"*n+"eval(\"n.times{\"*n+\"n+=1\"+\"}\"*n)"+"}"*n);n}
เป็นต้น
ที่จะไปจากf_x
การที่เราเพิ่มอีกหนึ่งวงของf_(x+1)
n.times{...}
มิเช่นนั้นเราจะตัดทแยงมุมเทียบกับตัวอย่างก่อนหน้าทั้งหมด
f_ω(1) = f_1(1)
f_ω(2) = f_2(2)
f_ω(3) = f_3(3)
f_(ω+ω)(1) = f_(ω+1)(1)
f_(ω+ω)(2) = f_(ω+2)(2)
f_(ω+ω)(3) = f_(ω+3)(3)
เป็นต้น