การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

9
แสดงลำดับ OEIS
On-Line สารานุกรมของจำนวนเต็มลำดับ (OEIS) เป็นฐานข้อมูลออนไลน์ของลำดับจำนวนเต็ม มันมีเกือบ 280000 ลำดับของดอกเบี้ยคณิตศาสตร์ ตัวอย่างของลำดับ: จำนวนเต็มบวก ( A000027 ) หมายเลขเฉพาะ ( A000040 ) หมายเลขฟีโบนักชี ( A000045 ) งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่แสดงลำดับ OEIS ให้มากที่สุดเท่าที่จะทำได้โดยมีซอร์สโค้ดสูงสุด100 ไบต์ โปรแกรมของคุณควรยอมรับว่าป้อนรหัสลำดับ (โดยไม่มีการเติมAและเลขศูนย์) และส่งออก 20 หมายเลขแรกในลำดับนั้น คุณไม่ได้รับอนุญาตให้ดึงข้อมูลโดยตรงจากเว็บไซต์ OEIS ลำดับทั้งหมดจะต้องคำนวณโดยรหัสของคุณ เกณฑ์การให้คะแนน คะแนนคือจำนวนของลำดับ OEIS ที่โปรแกรมสามารถแสดงได้ รู้รอบจะต้องแสดง ID ของลำดับที่โปรแกรมของพวกเขารู้จัก ตัวอย่าง นี่คือคำตอบที่ถูกต้องใน Java 8: (int a) -> { for (int i …

10
โบว์ลิ่งมนุษย์หิมะ
(ที่เกี่ยวข้อง / แรงบันดาลใจจาก: วาดขบวนโบว์ลิ่ง ) งานอดิเรกที่สนุกสนานในช่วงฤดูหนาวที่นี่คือการเล่นโบว์ลิ่งหิมะโดยใช้ลูกบอลขนาดใหญ่ (เช่นบาสเก็ตบอล) และตุ๊กตาหิมะขนาดเล็ก มาสร้างใหม่กันใน ASCII มนุษย์หิมะแต่ละคนประกอบด้วยสิ่งต่อไปนี้: (.,.) ( : ) นี่คือการจัดตำแหน่งของมนุษย์หิมะสิบ "พิน" (.,.) (.,.) (.,.) (.,.) ( : ) ( : ) ( : ) ( : ) (.,.) (.,.) (.,.) ( : ) ( : ) ( : ) (.,.) (.,.) ( : ) …

6
ฉันสามารถกวาดทุ่นระเบิดได้ไหม?
Minesweeperเป็นเกมตัวต่อยอดนิยมที่คุณต้องค้นหาว่าแผ่นไหนเป็น "เหมือง" โดยไม่ต้องคลิกบนแผ่นเหล่านั้น แต่คุณคลิกที่ไพ่ใกล้เคียงเพื่อเปิดเผยจำนวนเหมืองที่อยู่ติดกัน ข้อเสียอย่างหนึ่งเกี่ยวกับเกมนี้คือมันเป็นไปได้ที่จะจบลงในสถานการณ์ที่มีหลายคำตอบที่ถูกต้องและคุณอาจเดาได้ ตัวอย่างเช่นใช้กระดานต่อไปนี้: 1110 2*31 3*?? 2*4? 112? ในรูปแบบนี้ตัวเลขหมายถึงจำนวนเหมืองที่อยู่ติดกันและเป็น*ตัวแทนของเหมืองที่รู้จักและ "?" แสดงถึงเหมืองที่มีศักยภาพ อัปมงคลเกี่ยวกับปริศนานี้โดยเฉพาะอย่างยิ่งก็คือว่ามีสี่ที่แตกต่างและถูกต้องแก้ปัญหาที่อาจเกิดขึ้น: 1110 1110 1110 1110 2*31 2*31 2*31 2*31 3*4* 3*5* 3**2 3**1 2*42 2*4* 2*4* 2*42 112* 1121 1121 112* หมายความว่าบอร์ดไม่สามารถแก้ไขได้ นี่คือตัวอย่างของบอร์ดที่แก้ไขได้ : 1121 1??* 12?* 0122 บอร์ดนี้แก้ไขได้เนื่องจากมีวิธีแก้ปัญหาที่ใช้ได้เพียงวิธีเดียวเท่านั้น 1121 1*4* 12** 0122 งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้บอร์ดกวาดทุ่นระเบิดที่ถูกต้องและพิจารณาว่าสามารถแก้ไขได้หรือไม่ โดย "เรือกวาดทุ่นระเบิดที่ถูกต้อง" …

8
เล่น Canon ของ Pachelbel
ตัดตอนข้อความที่ตัดตอนมาต่อไปนี้จาก Canon ของ Pachelbel ใน D เป็นเสียง: กฎระเบียบ รูปแบบ / การเข้ารหัสใด ๆ อาจถูกนำมาใช้ตราบใดที่มีตัวแปลงสัญญาณอยู่ก่อนการสร้างความท้าทายนี้ เครื่องมือใด ๆ (อาจเป็นเครื่องมือจริง, การสังเคราะห์ MIDI, ฯลฯ ) จังหวะต้องเป็น 65 BPM (ตามที่ระบุไว้ในแผ่นเพลง) - หากคุณไม่สามารถรับ 65 BPM คุณสามารถใช้จังหวะใด ๆ ในช่วง (รวม) ช่วง 64.75 - 65.25 แผ่นเพลงอยู่ในระดับเสียงคอนเสิร์ต ต้องใช้การปรับแต่งอารมณ์ที่เท่าเทียมกัน (โดยเฉพาะ 12-ET กับ A4 = 440 Hz) สำหรับการอ้างอิงนี่คือ Stack Snippet ที่จะเล่นข้อความที่ตัดตอนมา: แสดงตัวอย่างโค้ด …

16
เติมลำดับที่เพิ่มขึ้นด้วยตัวเลขให้ได้มากที่สุด
รายการตัวเลขเรียกว่าการเพิ่ม monotonically (หรือไม่ลดลง) คือทุกองค์ประกอบมีค่ามากกว่าหรือเท่ากับองค์ประกอบก่อนหน้า ตัวอย่างเช่น1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14เพิ่มขึ้นซ้ำซากจำเจ ให้รายการเลขจำนวนเต็มบวกที่เพิ่มขึ้นแบบ monotonically ที่มีจำนวนจุดว่างว่างแทนโดย?เติมจุดว่างด้วยจำนวนเต็มบวกเช่นจำนวนเต็มที่ไม่ซ้ำกันมากที่สุดที่มีอยู่ในรายการ แต่ก็ยังคงเพิ่มขึ้นแบบจำเจ อาจมีหลายวิธีในการทำสิ่งนี้ให้สำเร็จ ใด ๆ ที่ถูกต้อง เอาท์พุทรายการผลลัพธ์ ตัวอย่างเช่นถ้าอินพุตเป็น ?, 1, ?, 1, 2, ?, 4, 5, 5, 5, ?, ?, ?, ?, 8, 10, 11, ?, 14, 14, ?, ? มันรับประกันได้ว่าไม่มีจุดที่ว่างเปล่ารายการจะเพิ่มขึ้นซ้ำซาก 1, …

30
ทำให้ฉันเป็นไข่อีสเตอร์!
ไม่ไม่ใช่^^vv<><>BAไข่อีสเตอร์ไข่อีสเตอร์ที่แท้จริงที่เราวาด นี่คือไข่ที่วาดขึ้นอย่างน่ากลัว __ / \ / \ | | \____/ ในอีสเตอร์เราวาดลวดลายด้วยลวดลาย เช่นนี้ __ /--\ /----\ |----| \____/ __ /%%\ /%%%%\ |%%%%| \____/ __ /~~\ /~~~~\ |~~~~| \____/ ความท้าทาย ให้ตัวละคร (พิมพ์ ASCII) เพื่อทาสีไข่พิมพ์ไข่ทาสี ตัวอย่าง: &: __ /&&\ /&&&&\ |&&&&| \____/ #: __ /##\ /####\ |####| \____/ รายละเอียด อนุญาตการขึ้นบรรทัดใหม่ / การเว้นวรรค

11
แก้ไขปัญหาการหยุดชะงักของ Befinge
ให้มีกำหนดที่เรียบง่ายภาษา 2D ซึ่งเราจะให้ชื่อเดิมอย่างไม่น่าเชื่อbefinge Befinge มี 5 คำแนะนำ: <>^vเช่นเดียวกับใน esolangs 2D ส่วนใหญ่ให้เปลี่ยนเส้นทางตัวชี้คำสั่งในทิศทางที่เกี่ยวข้อง . เป็น no-op ตัวชี้คำสั่งเริ่มต้นที่มุมบนซ้ายไปทางขวา หากตัวชี้คำแนะนำเข้าใกล้ขอบโปรแกรมจะหยุด ทุกโปรแกรมของ Befinge จะหยุดหรือเข้าสู่วงวนไม่สิ้นสุดซึ่งไม่ทำอะไรเลย นี่คือสองตัวอย่าง: ลังเล: >.v ..< แบบไม่ลังเล: >....v ..v..< ..>v.. ^..<.. ปัญหาการหยุดชะงักไม่สามารถแก้ไขได้สำหรับภาษาทัวริงที่สมบูรณ์ แต่สำหรับภาษานี้ งานของคุณคือการเขียนโปรแกรม (หรือฟังก์ชั่น) ที่ใช้เป็นอินพุตสตริงที่แทนโปรแกรมbefingeและส่งกลับค่าความจริงหรือความเท็จขึ้นอยู่กับว่ามันจะหยุดหรือไม่ คุณสามารถสันนิษฐานได้ว่าการป้อนข้อมูลจะประกอบด้วยตัวละครเหล่านี้เท่านั้นและจะถูกเติมด้วยช่องว่างเพื่อสร้างสี่เหลี่ยมผืนผ้า คุณสามารถใช้ชุดอักขระห้าตัวสำหรับคำแนะนำ (เช่นadws ) กรณีทดสอบ ลังเล: . v> >^ ....v.... ....>...v .^..<.... .......v< .......v. ....^..<. v<>v>v^ >v^>^>v …

24
Dutch Burgerservicenummer (BSN) สิบเอ็ดทดสอบ
บทนำ: Dutch BSN (BurgerServiceNummer) ใช้ได้เมื่อปฏิบัติตามกฎต่อไปนี้: มันมีตัวเลขเท่านั้น ความยาวควรมีความยาว 8 หรือ 9 เมื่อตัวเลขถูกทำดัชนีว่าAผ่านIผลลัพธ์ของการรวมดังต่อไปนี้: 9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI(หมายเหตุ -1 แทนที่จะเป็น 1!) ควรหารด้วย 11 และไม่ควรเป็น 0 ท้าทาย: อินพุต:สตริงหรืออักขระที่แทน BSN ผลลัพธ์: ผลลัพธ์ที่เป็นจริงหรือเท็จไม่ว่าอินพุตจะเป็น BSN ที่ถูกต้อง กฏท้าทาย: รูปแบบอินพุตควรเป็นสตริงหรือ char-array คุณไม่ได้รับอนุญาตให้ใช้จำนวนเต็มหรือตัวเลข (อาจแปด) (คุณได้รับอนุญาตให้แปลงเป็นตัวเลขภายในด้วยตัวคุณเอง แต่ไม่ใช่อาร์กิวเมนต์โดยตรง) แม้จะมีข้อ …

25
เรียงลำดับสตริงเรียงจาก
หากคุณเรียงลำดับสตริงคุณมักจะได้รับสิ่งที่ชอบ: ':Iaaceeefggghiiiiklllllmnnooooprrssstttttuuyyyy ใช่นั่นเป็นประโยคแรกที่เรียง ที่คุณสามารถดูมีจำนวนมากของตัวละครซ้ำ, aa, eee, ttttt, 9 ช่องว่างและอื่น ๆ ถ้าเราเพิ่ม128ค่า ASCII ของรายการที่ซ้ำกันครั้งแรก256ที่สอง384ที่สามและอื่น ๆ เรียงลำดับอีกครั้งและส่งออกสตริงใหม่ (โมดูลัส 128 เพื่อรับตัวอักษรเดียวกันกลับ) เราได้รับสตริง: ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt (หมายเหตุช่องว่างนำหน้าเดียวและช่องว่างต่อท้าย 4 ช่อง) สตริงคือ "เรียงตามลำดับ" <space>':I....uy, <space>aeg....uy, <space>egi....ty, <space>iloty, <space>lt, <space>, <space>, ,<space><space> มันอาจจะง่ายขึ้นที่จะเห็นภาพนี้ถ้าเราใช้สตริงที่มีตัวเลขอยู่ในนั้น สตริง111222334จะเมื่อ "เรียง" 123412312เป็น: ท้าทาย: ไม่แปลกใจเลยว่าความท้าทายคือการเขียนโค้ดที่เรียงสตริงตามคำอธิบายข้างต้น คุณสามารถสันนิษฐานได้ว่าสตริงอินพุตจะมีเฉพาะอักขระ ASCII ที่พิมพ์ได้ในช่วง 32-126 (เว้นวรรคถึงตัวหนอน) กรณีทดสอบ: **Test …

1
เขียนโปรแกรมที่มีคำว่า nontermination เป็นอิสระจากเลขคณิตของ Peano
ท้าทาย เขียนโปรแกรม P, การไม่มีการป้อนข้อมูลเช่นว่าเรื่อง“การดำเนินการของ P ในที่สุดก็ยุติ” เป็นอิสระของอาโน่คณิตศาสตร์ กฎอย่างเป็นทางการ (ในกรณีที่คุณเป็นนักตรรกวิทยาคณิตศาสตร์ที่คิดว่าคำอธิบายข้างต้นไม่เป็นทางการ) ตามหลักการแล้วสามารถแปลงU Universal Turing Machine บางตัว(เช่นภาษาการเขียนโปรแกรมที่คุณชื่นชอบ) ไปเป็นสูตร HALT ทางคณิตศาสตร์ Peano HALT บนตัวแปรpซึ่ง HALT ( p ) เข้ารหัสข้อเสนอ“ Uยุติลงในโปรแกรม ( Gödel-encoded by) p ” ความท้าทายคือการหาpที่ HALT ( p ) และ¬HALT ( p ) ไม่สามารถพิสูจน์ได้ใน Peano arithmetic คุณอาจสมมติว่าโปรแกรมของคุณทำงานบนเครื่องในอุดมคติโดยมีหน่วยความจำไม่ จำกัด และจำนวนเต็ม / พอยน์เตอร์ขนาดใหญ่พอที่จะเข้าถึงได้ ตัวอย่าง เมื่อต้องการดูว่ามีโปรแกรมดังกล่าวอยู่ตัวอย่างหนึ่งคือโปรแกรมที่ค้นหาหลักฐานทางคณิตศาสตร์ของ …
29 code-golf 

13
ประเมินการแสดงออกของผู้ประกอบการที่ประกอบไปด้วย
พิจารณาไวยากรณ์กว่าอักษร{ 0, 1, ?, :}กำหนดโดยกฎการผลิต s →การ0┃ 1┃ 0 ?s :s ┃ 1 ?s :s รับสตริงที่สร้างจากs , แยกมันเป็นนิพจน์ที่?:เป็นความสัมพันธ์ที่ถูกต้อง (ตัวอย่างเช่นa?B?X:Y:c?d:e?f:gหมายถึงa?(B?X:Y):(c?d:(e?f:g))) และประเมินด้วยความหมายต่อไปนี้: eval(0) = 0 eval(1) = 1 eval(0?a:b) = eval(b) eval(1?a:b) = eval(a) ถ้าผลลัพธ์เป็น0ให้เอาท์พุทค่าคงที่บางค่า ถ้าผลลัพธ์คือ1ให้เอาท์พุทค่าคงที่ที่ต่างออก ระบุค่าผลลัพธ์ที่คุณเลือก (เช่น0/ 1หรือFalse/ True) ในคำตอบของคุณ กรณีทดสอบ 0 -> 0 1 -> 1 0?0:1 -> 1 0?1:0 …
29 code-golf  syntax 

29
มาทำคลื่นกันเถอะ!
การป้อนข้อมูล: สตริง (คลื่นข้อมูลโค้ด) >= 2ที่มีความยาว เป็นจำนวนเต็มบวกn >= 1 เอาท์พุท: เราส่งคลื่นเดี่ยวบรรทัด เราทำสิ่งนี้โดยทำซ้ำสตริงอินพุตnครั้ง กฏท้าทาย: หากอักขระตัวแรกและตัวสุดท้ายของอินพุตสตริงตรงกันเราจะแสดงผลลัพธ์เพียงครั้งเดียวในเอาต์พุตทั้งหมด (เช่น^_^ความยาว 2 กลายเป็น^_^_^และไม่ใช่^_^^_^) สตริงอินพุตจะไม่มี whitespaces / tabs / new-lines / etc ใด ๆ หากภาษาของคุณไม่รองรับอักขระที่ไม่ใช่ ASCII แสดงว่าไม่เป็นไร ตราบใดที่ยังคงเป็นไปตามความท้าทายกับอินพุตคลื่น ASCII เท่านั้น กฎทั่วไป: นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชัน / เมธอดพร้อมพารามิเตอร์ที่เหมาะสมโปรแกรมเต็มรูปแบบ การโทรของคุณ ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม …
29 code-golf  string 

30
The Squaring Sequence
ระยะในลำดับ squaring แต่ละx nถูกสร้างขึ้นโดยการx n-1 , squaring มันและลบทั้งหมด แต่ตัวเลขสี่ครั้งแรก ลำดับเสมอเริ่มต้นด้วยx 1 = 1111 การยกกำลังสองนี้จะได้ 1234321 ดังนั้นx 2 = 1234 คำศัพท์สองสามคำแรกคือ: 1111 1234 1522 2316 5363 ... ความท้าทาย งานของคุณคือการได้รับจำนวนเต็มไม่เป็นลบnคำนวณx n คุณสามารถส่งโปรแกรมเต็มรูปแบบซึ่งดำเนินการ I / O หรือฟังก์ชั่นที่ใช้nเป็นพารามิเตอร์ โซลูชันของคุณอาจมีค่าศูนย์หรือดัชนีหนึ่งรายการตราบใดที่คุณระบุว่า เนื่องจากข้อกำหนดทั้งหมดในลำดับนี้สั้นกว่า 5 หลักรหัสของคุณควรสั้นที่สุดเท่าที่จะเป็นไปได้ มีช่องโหว่ของรหัสมาตรฐานสำหรับกอล์ฟ ขอให้นักกอล์ฟที่ดีที่สุดชนะ! กรณีทดสอบ หมายเหตุ: สิ่งเหล่านี้เป็น 1 ดัชนี 1 -> 1111 8 -> …

16
ลดความซับซ้อนของรากที่สอง
รับค่าจำนวนเต็มบวกnทำให้สแควร์รูท√nเป็นรูปแบบที่ง่ายa√bขึ้นโดยการแยกปัจจัยสแควร์ทั้งหมด เอาต์พุตa,bควรเป็นจำนวนเต็มบวกโดยn = a^2 * bมีbขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ คุณสามารถส่งออกaและbในลำดับใดก็ได้ในรูปแบบที่เหมาะสม คุณไม่สามารถละเว้นเอาต์พุตของ1โดยปริยาย ผลลัพธ์สำหรับn=1..36เป็น(a,b): 1 (1, 1) 2 (1, 2) 3 (1, 3) 4 (2, 1) 5 (1, 5) 6 (1, 6) 7 (1, 7) 8 (2, 2) 9 (3, 1) 10 (1, 10) 11 (1, 11) 12 (2, 3) 13 (1, 13) 14 (1, …

23
ค้นหาตำแหน่งที่มีจำนวนมากที่สุด n อยู่ห่างจาก n
ภาคต่อของคำถามนี้ งาน รับอาร์เรย์ของจำนวนเต็มบวกหาองค์ประกอบที่ใหญ่ที่สุด kซึ่ง: มีอยู่บางระยะจำนวนเต็มบวกnเพื่อให้องค์ประกอบในอาร์เรย์อยู่n ตำแหน่งไปทางซ้ายหรือทางขวาจากkเท่ากับn อาร์เรย์รับประกันว่าจะมีองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบที่ตรงตามเงื่อนไขนี้ รหัสที่สั้นที่สุด (เป็นไบต์) ชนะ คุณสามารถเลือกรูปแบบ I / O ใดก็ได้ที่คุณต้องการ ตัวอย่าง รับอินพุต [4, 6, 7, 9, 3, 6, 5, 7, 2] ค่าที่มีสิทธิ์คือ: The 4เนื่องจากมี7ตำแหน่งอยู่ 7 ตำแหน่งทางด้านขวา ครั้งแรก6เนื่องจากมี3ตำแหน่งอยู่ 3 ตำแหน่งทางด้านขวา The 3เนื่องจากมี4ตำแหน่งอยู่ 4 ตำแหน่งทางด้านซ้าย The 5เนื่องจากมี2ตำแหน่งอยู่ 2 ตำแหน่งทางด้านขวา ที่สอง7เนื่องจากมี3ตำแหน่งอยู่ 3 ตำแหน่งทางด้านซ้าย 7ค่าเหล่านี้ที่ใหญ่ที่สุดคือ กรณีทดสอบ [1, 13] → …

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