คำถามติดแท็ก busy-beaver

บีเวอร์ที่ไม่ว่างจะเพิ่มคุณสมบัติบางอย่างของโมเดลการคำนวณให้สูงสุด (เช่นเวลาดำเนินการการใช้หน่วยความจำความยาวเอาต์พุต) ขึ้นอยู่กับข้อ จำกัด ที่ต้องหยุด

3
Manufactoria: สร้างโปรแกรมการยอมรับที่ช้าที่สุดที่เป็นไปได้
เขียนโปรแกรมManufactoriaที่จะยอมรับเทปอินพุตเปล่า แต่อย่าทำอย่างรวดเร็ว! ฉันหมายถึงเขียนโปรแกรมอย่างรวดเร็ว แต่อย่าให้มันทำงานเร็ว ยิ่งโปรแกรมช้าลงเท่าใดก็ยิ่งดีตราบเท่าที่มันสิ้นสุดลงในที่สุด โปรแกรมตัวอย่างด้านล่างใช้เวลา 3:51 ("เวลารวม" ที่รายงานโดยเครื่องมือจำลอง) http://pleasingfungus.com/Manufactoria/?lvl=36&code=g12:5f3;r9:8f1;p12:9f3;c13:9f0;r11:9f0;r10:9f0;r9:9f1;b11:8f0;b10:8f1 ; R9: 7f2; C10: 7f2; c11: 7f2; c12: 7f3; Q12: 8f3; y13: 8f2; y14: 8f2; Y15: 8f1; Y15: 7f0; y14: 7f0; y13: 7f0; G12: 6f3; & CTM = Slow_Accepter!; Generate_the_slowest_possible_accepting_machine;:; 7; 3; 0 ; โปรแกรมของคุณเริ่มต้นด้วยเทปเปล่า มันจะต้องขีดเส้นขยุกขยิกประมาณเล็กน้อย คุณอาจทิ้งข้อมูลไว้ในเทปได้หากต้องการ โปรแกรมที่ช้าที่สุดในบอร์ด 7x7 Manufactoria …

3
ตีกอล์ฟให้ใหญ่กว่าหมายเลขของรถตัก
ตามโปรแกรมการยุติที่สั้นที่สุดซึ่งมีขนาดเอาต์พุตเกินจำนวนของเกรแฮมและกอล์ฟที่มีขนาดใหญ่กว่า TREE (3)ฉันขอเสนอความท้าทายใหม่ หมายเลขของ Loader นั้นมีจำนวนมากซึ่งเป็นการยากที่จะอธิบาย (เนื่องจากตัวมันเองเป็นผลมาจากการฝึกเล่นกอล์ฟโดยมีเป้าหมายที่ยืดหยุ่น) มีคำจำกัดความและคำอธิบายที่นี่แต่สำหรับจุดประสงค์ของการกักกันตัวเองฉันจะพยายามอธิบายในโพสต์นี้ด้วย อัลกอริทึม Ralph Loader ที่ใช้สร้างหนึ่งในจำนวนที่ใหญ่ที่สุดของอัลกอริทึม (คำนวณ) ใด ๆ ที่เคยเขียน! ที่จริงแล้วจำนวนของ Loader นั้นเป็นจำนวนที่ "คำนวณได้" มากที่สุดใน Googology Wiki (โดยตัวเลข "คำนวณได้" หมายถึงตัวเลขที่กำหนดในแง่ของการคำนวณ) นั่นหมายความว่าหากคำตอบสร้างจำนวนที่มากกว่าจำนวนตัวโหลดในวิธีที่น่าสนใจ (เช่นไม่ใช่แค่หมายเลขของตัวโหลด + 1) คุณสามารถลงไปได้ ประวัติ Googology! ที่ถูกกล่าวว่าโปรแกรมที่ผลิตบางอย่างเช่นหมายเลขของ Loader +1เป็นคำตอบที่ถูกต้องและ contenders คำถามนี้อย่างแน่นอน; อย่าคาดหวังว่าจะมีชื่อเสียง งานของคุณคือการสร้างโปรแกรมยุติที่ผลิตจำนวนขนาดใหญ่กว่าจำนวน Loader ของ นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดชนะ! คุณไม่ได้รับอนุญาตให้ป้อนข้อมูล โปรแกรมของคุณจะต้องยุติอย่างถาวรในที่สุด แต่คุณสามารถสันนิษฐานได้ว่าเครื่องมีหน่วยความจำไม่สิ้นสุด คุณอาจสมมติว่าประเภทหมายเลขภาษาของคุณสามารถเก็บค่าที่แน่นอนใด ๆแต่จำเป็นต้องอธิบายวิธีการทำงานในภาษาของคุณ (เช่น: ลอยมีความแม่นยำไม่สิ้นสุด?) …

30
การเพิ่มเอาต์พุตจากอินพุตน้อยที่สุด
เห็นได้ชัดว่าการเล่นโค้ดเป็นเรื่องเกี่ยวกับการใช้ประโยชน์จากโค้ดให้น้อยที่สุด ใครสนใจว่าผลผลิตจริงคืออะไร ในขณะที่เรามีความท้าทายสำหรับอัตราส่วนอินพุทต่อเอาท์พุทที่สูงที่สุดนี่เป็นการเรียกเอาท์พุทจำกัด และกำหนดค่าส่วนใหญ่ด้วยความยาวโค้ดที่กำหนด กระแทกแดกดันความท้าทายนี้เป็นแล้วไม่รหัสกอล์ฟ กฎ: เขียนตัวอย่างอิสระสามชุด (ไม่ใช่โปรแกรม / ฟังก์ชั่นเต็มรูปแบบ) ตัวอย่างต้องเป็นภาษาเดียวกัน คะแนนคือจำนวนเอาท์พุทไบต์ทั้งหมด ผลลัพธ์อาจอยู่ในรูปแบบของผลลัพธ์ STDOUT เป็นต้น ตัวอย่างอาจไม่ทำให้เกิดข้อผิดพลาดใด ๆ ตัวอย่างอาจทำให้เกิดรูปแบบที่แตกต่างกันของการส่งออก อักขระบรรทัดใหม่ที่ต่อท้ายจะไม่ถูกนับ ตัวอย่างแรกจะต้องมี 1 ไบต์หรือความยาวขั้นต่ำที่สร้างอย่างน้อย 1 ไบต์ของเอาต์พุต ตัวอย่างที่สองจะต้องยาวกว่าหนึ่งไบต์ ตัวอย่างที่สามจะต้องยาวกว่าสองไบต์แรก

3
ลำดับ Game-of-Life ที่ไม่ซ้ำกันนานที่สุด
รับจำนวนเต็มบวก N กำหนดรูปแบบเริ่มต้นบน N x N- กริดที่ให้ลำดับที่ไม่ซ้ำกันที่ยาวที่สุดภายใต้ Game of Life-rules และสิ้นสุดด้วยรูปแบบคงที่ (วงจรความยาว 1) เล่นบนพรู เป้าหมายไม่ใช่โปรแกรมที่สั้นที่สุด แต่เร็วที่สุด เนื่องจากโลกนี้มีขอบเขต จำกัด ในที่สุดคุณก็จะจบลงด้วยการวนซ้ำดังนั้นจึงเป็นรัฐที่เยี่ยมชมแล้วซ้ำอีก หากการวนซ้ำนี้มีระยะเวลา 1 รูปแบบเริ่มต้นจะเป็นตัวเลือกที่ถูกต้อง เอาต์พุต: รูปแบบเริ่มต้นและจำนวนรวมของสถานะที่ไม่ซ้ำกันในลำดับ (รวมถึงรูปแบบเริ่มต้น) ตอนนี้ 1x1-torus เป็นพิเศษเนื่องจากเซลล์อาจถูกพิจารณาว่าอยู่ใกล้เคียงกับตัวเองหรือไม่ แต่ในทางปฏิบัติไม่มีปัญหาเซลล์ที่มีชีวิตเดียวจะตายในกรณีใดกรณีหนึ่ง ดังนั้นอินพุต 1 ให้ผลตามลำดับความยาว 2 ลำดับเป็นหนึ่งเซลล์ที่มีชีวิตจากนั้นก็ตายไปตลอดกาล แรงจูงใจสำหรับคำถามนี้คืออนาล็อกของฟังก์ชันบีเวอร์ที่วุ่นวาย แต่มีความซับซ้อนน้อยกว่าเนื่องจากเรามีความจำที่ จำกัด นี่จะเป็นลำดับที่ดีที่จะรวมไว้ใน OEIS เช่นกัน สำหรับ N = 3 ความยาวของลำดับคือ 3 รูปแบบใด ๆ บนด้านซ้ายมือถึงพื้นที่สี่เหลี่ยมจัตุรัสสีดำสนิทขนาด 3x3 …

3
ชะตากรรมของคองคอร์ด
พื้นหลัง ปัญหาพนักงานขายที่เดินทาง (TSP) ขอวงจรที่สั้นที่สุดที่ผู้เข้าชมคอลเลกชันที่กำหนดของเมือง สำหรับจุดประสงค์ของคำถามนี้เมืองจะเป็นจุดในระนาบและระยะทางระหว่างพวกเขาจะเป็นระยะทางแบบยุคลิดตามปกติ(ปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด) วงจรจะต้องเป็น "ไปกลับ" หมายความว่ามันจะต้องกลับไปที่เมืองเริ่มต้น ตัวแก้ปัญหา Concorde TSPสามารถแก้ปัญหากรณีปัญหาพนักงานขาย Euclidean ที่เดินทางได้อย่างรวดเร็วและเร็วเกินคาด ตัวอย่างเช่น Concorde สามารถแก้ปัญหาอินสแตนซ์ 85,900 จุดได้อย่างแม่นยำซึ่งบางส่วนมีลักษณะดังนี้: อย่างไรก็ตามอินสแตนซ์ TSP บางรายการใช้เวลานานเกินไปสำหรับ Concorde ยกตัวอย่างเช่นไม่มีใครได้รับสามารถที่จะแก้ปัญหานี้เช่น 100,000 จุดบนพื้นฐานของโมนาลิซ่า (มีรางวัล $ 1,000 ให้ถ้าคุณสามารถแก้มันได้!) Concorde พร้อมให้ดาวน์โหลดในรูปของซอร์สโค้ดหรือไฟล์ที่เรียกใช้งานได้ โดยค่าเริ่มต้นจะใช้QSoptตัวแก้ปัญหาโปรแกรมเชิงเส้น (LP) ในตัวแต่ยังสามารถใช้ตัวแก้ปัญหา LP ที่ดีขึ้นเช่น CPLEX ความท้าทาย อินสแตนซ์ของ TSP ที่เล็กที่สุดที่คุณสามารถสร้างได้ใช้เวลานานกว่าห้านาทีในการแก้ไขคือConcorde คืออะไร คุณสามารถเขียนโปรแกรมเพื่อแสดงผลอินสแตนซ์หรือใช้วิธีอื่นที่คุณต้องการ เกณฑ์การให้คะแนน คะแนนน้อยลงในอินสแตนซ์ที่ดีกว่า ความสัมพันธ์จะถูกทำลายโดยขนาดไฟล์ของอินสแตนซ์ (ดูด้านล่าง) มาตรฐาน คอมพิวเตอร์หลายเครื่องทำงานเร็วหรือช้ากว่าดังนั้นเราจะใช้เซิร์ฟเวอร์ NEOS …

4
บีเวอร์สมองไม่ว่าง
เขียนโปรแกรม brainfuck ที่มีอักขระไม่เกิน 256 ตัวซึ่งดำเนินการตามขั้นตอนมากที่สุดเท่าที่จะทำได้ แต่ไม่วนซ้ำอย่างไม่สิ้นสุด โปรแกรมอาจไม่รับอินพุตใด ๆ โดยเฉพาะอย่างยิ่ง: สมมติว่ามีจำนวนเซลล์ที่ไม่ จำกัด ทางด้านขวา A <เมื่ออยู่ที่เซลล์ด้านซ้ายสุดไม่ทำอะไรเลย เมื่อค่าในเซลล์เป็นเซลล์ศูนย์ชุด-255 คำแนะนำ+-<>.ทั้งหมดนับเป็นขั้นตอนเดียวเมื่อดำเนินการ เมื่อ a [หรือ]พบมันนับเป็นขั้นตอนเดียว แต่ถ้าเงื่อนไขเป็นจริงและการควบคุมการไหลกระโดดที่สอดคล้องกัน]หรือ[ไม่ไม่ได้อีกครั้งนับเป็นขั้นตอน ทางออกที่ทำตามขั้นตอนมากที่สุดเป็นผู้ชนะ หากมีวิธีการแก้ปัญหาของคุณอยู่บ้างการให้ฟังก์ชั่นสำหรับจำนวนขั้นตอนที่โปรแกรมที่มีความยาวคล้ายกันnจะได้รับการชื่นชม แต่ไม่จำเป็น หากต้องการนับคำแนะนำคุณสามารถใช้ล่ามที่ปรับเปลี่ยนนี้ได้ : ตัวอย่าง: ++[-] คำแนะนำที่พบคือ++[-]-]และโปรแกรมรัน 7 ขั้นตอน

14
แพดไฟล์ด้วยค่าศูนย์
งานของคุณในวันนี้คือการใช้ไฟล์ที่มีอยู่และต่อท้ายศูนย์จนถึงขนาดที่กำหนด คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้ชื่อของไฟล์ในไดเรกทอรีปัจจุบันที่และจำนวนของไบต์f bในขณะที่รักษาเนื้อหาต้นฉบับของfคุณจะต้องเขียนเลขศูนย์(null null ไม่ใช่ ascii 0s)ไปยังจุดสิ้นสุดเพื่อให้ขนาดใหม่เป็นbไบต์ คุณอาจคิดว่าfมีเพียงตัวอักษรและตัวเลขในชื่อที่คุณได้รับอนุญาตเต็มรูปแบบว่าในตอนแรกมันไม่ใหญ่กว่าbแต่อาจจะมีขนาดใหญ่เท่าbและมีพื้นที่ว่างที่ไม่มีที่สิ้นสุด คุณอาจไม่ถือว่าfไม่ว่างเปล่าหรือไม่มีไบต์เป็นศูนย์อยู่ ไม่ควรแก้ไขไฟล์ที่มีอยู่อื่นและไฟล์ใหม่ไม่ควรมีอยู่หลังจากสิ้นสุดการประมวลผล กรณีทดสอบ เนื้อหาของ f | b | ส่งผลให้เนื้อหาของ f 12345 | 10 | 1234500000 0 | 3 | 000 [ว่าง] | 2 | 00 [ว่าง] | 0 | [ว่าง] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

9
รีบูต BigNum Bakeoff
บางคนอาจคุ้นเคยกับBigNum Bakeoffซึ่งจบลงด้วยความน่าสนใจ เป้าหมายสามารถสรุปได้มากหรือน้อยเมื่อเขียนโปรแกรม C ที่ผลลัพธ์จะใหญ่ที่สุดภายใต้ข้อ จำกัด และเงื่อนไขทางทฤษฎีเช่นคอมพิวเตอร์ที่สามารถเรียกใช้โปรแกรมได้ ในจิตวิญญาณเดียวกันฉันวางความท้าทายที่คล้ายกันเปิดให้ทุกภาษา เงื่อนไขคือ: สูงสุด 512 ไบต์ ต้องพิมพ์ผลลัพธ์สุดท้ายไปที่ STDOUT นี่คือคะแนนของคุณ หากมีการพิมพ์จำนวนเต็มจำนวนมากพวกมันจะถูกต่อกัน เอาต์พุตต้องเป็นจำนวนเต็ม (หมายเหตุ: อินฟินิตี้ไม่ใช่จำนวนเต็ม ) ไม่มีค่าคงที่แบบบิวด์อินที่ใหญ่กว่า 10 แต่ตัวเลข / หลักนั้นดี (เช่นค่าคงที่ของ Avogadro (ค่าคงที่ในตัว) ไม่ถูกต้อง แต่ไม่ใช่ 10,000 โปรแกรมจะต้องยุติเมื่อมีทรัพยากรเพียงพอที่จะเรียกใช้ เอาต์พุตที่พิมพ์ออกมาจะต้องถูกกำหนดไว้ล่วงหน้าเมื่อมีทรัพยากรเพียงพอในการทำงาน คุณได้รับจำนวนเต็มหรือบิ๊กพอที่เพียงพอเพื่อให้โปรแกรมของคุณทำงาน ตัวอย่างเช่นถ้าโปรแกรมของคุณต้องการการใช้งานพื้นฐานไปยังหมายเลขที่มีขนาดเล็กกว่า 10 1,000,000แล้วคุณอาจคิดคอมพิวเตอร์ที่ใช้นี้สามารถจัดการกับตัวเลขอย่างน้อยถึง 10 1,000,000 (หมายเหตุ: โปรแกรมของคุณอาจทำงานบนคอมพิวเตอร์ที่จัดการตัวเลขสูงถึง 10 2,000,000ดังนั้นการเรียกเลขจำนวนเต็มที่สูงสุดที่คอมพิวเตอร์สามารถจัดการได้จะไม่ส่งผลให้เกิดผลลัพธ์ที่กำหนดขึ้น) คุณได้รับพลังการประมวลผลที่เพียงพอสำหรับโปรแกรมของคุณในการดำเนินการให้เสร็จสิ้นภายใน 5 วินาที (ดังนั้นไม่ต้องกังวลหากโปรแกรมของคุณทำงานเป็นเวลาหนึ่งชั่วโมงในคอมพิวเตอร์ของคุณและจะไม่เสร็จเร็ว ๆ นี้ทุกเวลา) ไม่มีแหล่งข้อมูลภายนอกดังนั้นอย่าคิดนำเข้าฟังก์ชั่น …

8
ระยะเวลาที่ยาวที่สุดวนซ้ำควินๆ
อย่างที่เรารู้ quine เป็นโปรแกรมที่ให้ผลลัพธ์ซอร์สโค้ดของมันเอง อย่างไรก็ตามอาจเป็นไปได้ที่จะเขียนโปรแกรมที่ส่งออกเป็นโปรแกรมอื่นที่แตกต่างกันซึ่งจะส่งออกโปรแกรมแรกอีกครั้ง ตัวอย่างเช่นโปรแกรม Python 2 x = '''x = {} print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3''' print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3 จะเมื่อส่งออกข้อความต่อไปนี้: print """x = '''x = {} print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3''' print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3""" เมื่อรันเป็นโปรแกรม Python จะเป็นการส่งออกรหัสต้นฉบับอีกครั้ง นี้เรียกว่าควิน iterating เพราะคุณต้องใช้มันสองครั้งที่จะได้รับกลับมารหัสเดิมเราบอกว่ามันมีระยะเวลา 2 แต่แน่นอนช่วงเวลาที่สูงขึ้นเป็นไปได้มาก ความท้าทายของคุณคือการเขียนควินวนซ้ำโดยใช้ระยะเวลานานที่สุดเท่าที่จะทำได้ใน100 ไบต์หรือน้อยกว่าในภาษาที่คุณเลือก (โปรดทราบว่าตัวอย่างของฉันด้านบนไม่ตรงกับข้อกำหนดนี้เนื่องจากมีขนาด 119 ไบต์รวมถึงการขึ้นบรรทัดใหม่) โปรดทราบกฎและคำชี้แจงต่อไปนี้: ใช้กฎ quine ปกติเช่นโปรแกรมของคุณไม่สามารถใช้คุณสมบัติภาษาที่อนุญาตให้เข้าถึงซอร์สโค้ดของตัวเองได้โดยตรง เอาท์พุทซ้ำแล้วซ้ำอีกจะต้องวนกลับไปที่รหัสเดิมของคุณและคุณจะต้องมีการสาธิตหรือพิสูจน์ว่ามันจะ คุณต้องรวมคำอธิบายว่าทำไมรอบจึงยาวเท่าที่คุณพูด …

1
Combinator Quines
พื้นหลัง คุณเพิ่งเรียนรู้ว่าตรรกะเชิงการรวมคืออะไร ทึ่งกับ combinators ต่าง ๆ ที่คุณใช้เวลาเรียนรู้เกี่ยวกับพวกเขาสักหน่อย ในที่สุดคุณก็สะดุดกับการแสดงออกนี้: (S I I (S I I)) คุณสังเกตเห็นว่าเมื่อพยายามที่จะลดขนาดให้อยู่ในรูปแบบปกติมันจะลดตัวเองลงหลังจากสามขั้นตอน: (S I I (S I I)) = (I (S I I) (I (S I I))) (1) = (S I I (I (S I I))) (2) = (S I I (S I I)) (3) คุณมุ่งมั่นที่จะค้นหานิพจน์อื่นที่ใช้คุณลักษณะนี้และเริ่มทำงานกับเรื่องนี้ทันที กฎระเบียบ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.