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

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

30
ศิลปะ ASCII“ Hello-World!” [ปิด]
เป้าหมายของคุณคือการเขียนโปรแกรมที่สั้นที่สุดที่ส่งออก "Hello-World!" เป็นศิลปะ ASCII กฎ: มันต้องเป็นมนุษย์ที่อ่านได้ฉันไม่สนใจขนาดมัน (cols / rows) เอาต์พุตต้องมีช่องว่าง (""), ชาร์ป ("#") และบรรทัดใหม่เท่านั้น ผลลัพธ์จะต้องทำงานกับแบบอักษร monospaced (แต่ตัวอักษรไม่จำเป็นต้องใช้แบบอักษรแบบ monospaced) ในผลลัพธ์อักขระแต่ละตัวต้องแยกจากกันด้วยช่องว่างอย่างน้อยหนึ่งช่อง โปรดเพิ่มชื่อด้วยภาษาและจำนวนไบต์ในรหัสของคุณ

20
รักการคำนวณ
เมื่อตอนเป็นเด็กน้องสาวของฉันแสดงให้ฉันเห็นถึงการคำนวณความรักเล็ก ๆ น้อย ๆ เพื่อดูว่าคุณมีโอกาสที่จะได้รับความสัมพันธ์ที่ประสบความสำเร็จกับความสนใจของคุณ สิ่งที่คุณต้องมีคือ 2 ชื่อและกระดาษหนึ่งแผ่น จอห์น เจน จากนั้นคุณแยกชื่อเหล่านี้ด้วยคำว่ารัก คุณสามารถเขียนสิ่งนี้ในหนึ่งบรรทัดหรือในบรรทัดใหม่ จอห์น รัก เจน จากนั้นการคำนวณจะเริ่มขึ้น คุณเริ่มต้นด้วยการนับจำนวนตัวอักษรที่เกิดขึ้นจากซ้ายไปขวาและในกรณีที่คุณใช้บรรทัดใหม่จากบนลงล่าง ตัวละครแต่ละตัวจะถูกนับหนึ่งครั้งดังนั้นหลังจากนับJของจอห์นคุณไม่จำเป็นต้องนับอีกครั้งเมื่อคุณเริ่มต้นกับ Jane ผลลัพธ์ของตัวอย่างนี้จะเป็นดังนี้: J: 2 ([J] ohn | [J] ane) O: 2 (J [o] hn | L [o] ves) H: 1 (Jo [h] n) N: 2 (Joh [n] | Ja [n] e) __ …

25
HelolW rdlo (ความท้าทายการเธรด)
ฉันมีความท้าทายสำหรับคุณ: พิมพ์ "Hello World" โดยใช้ภาษาใดก็ได้ อักขระแต่ละตัวจะต้องพิมพ์จากเธรดที่ไม่ซ้ำใคร แค่นั้นแหละ. เห็นได้ชัดว่าไม่มีการรับประกันว่าเธรดจะทำงานตามลำดับที่คุณเริ่มต้นคุณต้องทำให้เธรดโปรแกรมของคุณปลอดภัยเพื่อให้แน่ใจว่าผลลัพธ์จะถูกพิมพ์ในลำดับที่ถูกต้อง และเนื่องจากนี่คือรหัสกอล์ฟโปรแกรมที่สั้นที่สุดชนะ ปรับปรุง: ผู้ชนะคือรายการ APL ของ Marinusที่ 34 ตัวอักษร นอกจากนี้ยังชนะรางวัลสำหรับการอ่านที่น้อยที่สุด
39 code-golf 

5
แก้ปัญหาแปดราชินีในเวลาคอมไพล์ [ปิด]
คุณสามารถไขปริศนาแปดราชินีในเวลารวบรวมได้หรือไม่? เลือกรูปแบบผลลัพธ์ที่เหมาะสม ฉันสนใจเป็นพิเศษในการแก้ปัญหาการเขียนโปรแกรมเทมเพลต metaprogramming ของ C ++ แต่คุณสามารถใช้ภาษาที่มีโครงสร้างคล้ายกันเช่นระบบประเภทของ Haskell หลักการที่ดีเมตาโปรแกรมของคุณจะแสดงผลโซลูชันทั้งหมด ไม่มีการเข้ารหัส

13
โค้ดกอล์ฟขั้นสูง - เขียนเซิร์ฟเวอร์ HTTP ขนาดเล็ก
ความท้าทายของคุณคือการเขียนเซิร์ฟเวอร์ HTTP code-golf ที่รับคำขอ GET เห็นได้ชัดว่าไม่จำเป็นต้องมีคุณลักษณะครบถ้วน แต่จะต้องให้บริการไฟล์จากไดเรกทอรี กฎ: เซิร์ฟเวอร์ HTTP ต้องฟังบนพอร์ต TCP 36895 (0x901F) มันจะต้องให้บริการไฟล์จาก/var/wwwระบบ * NIX (เช่น Linux) หรือC:\hgolfบน Windows คุณสามารถละเว้นส่วนหัว HTTP ที่เข้ามาทั้งหมดยกเว้นGETตัวเอง หากวิธี HTTP ไม่ใช่ GET คุณจะต้องส่งรหัสสถานะกลับเป็น "405 ไม่รองรับ" และเนื้อความของ "405 ไม่รองรับ" หากไฟล์ไม่มีอยู่คุณต้องส่งรหัสสถานะ "404 ไม่พบไฟล์" กลับมาและเนื้อความของ "404 ไม่พบไฟล์" หากไฟล์นั้นมีอยู่ แต่ไม่สามารถอ่านได้ด้วยเหตุผลบางอย่างคุณต้องส่งรหัสสถานะ "ข้อผิดพลาดเซิร์ฟเวอร์ 500" และเนื้อหา "ข้อผิดพลาดเซิร์ฟเวอร์ 500" หากผู้ใช้ร้องขอ/หรือรูทไดเร็กทอรีอื่นที่มีอยู่ (เช่น/foo/มีไดเร็กทอรีfooอยู่/var/www/) ให้ตอบกลับด้วยหน้าว่าง …
39 code-golf 

30
ถาม: เขียนชิ้นส่วนของรหัสที่ปิดตัวเอง [ปิด]
ฉันกำลังค้นหาชิ้นส่วนของรหัสที่หยุดทันที - ในแบบที่ไม่เป็นทางการ นี่ไม่ได้หมายความว่า: System.exit((int) 'A');(Java) มันอาจหมายถึง: #!/usr/bin/env python3 # NOTE: This kills ALL RUNNING Python processes. Be careful! def exit(): import os os.system("killall python3") # Windows addon os.system("taskkill /im python.exe /f") exit() คำตอบที่โหวตมากที่สุดชนะ! ทุกภาษาสถาปัตยกรรมทั้งหมด แก้ไข: การออกโดยการโยนข้อยกเว้นจะไม่ได้รับการยอมรับอีกต่อไป!

20
พิมพ์ไพรม์ nth ที่มี n
คำถามนี้จะเป็นการบิดในการค้นหาnหมายเลขเฉพาะ ท้าทาย คุณต้องเขียนโปรแกรมที่จะรับหนึ่งอินพุทnและเอาท์พุทnหมายเลขnไพรเวตตัวที่มีการแทนค่าทศนิยมประกอบด้วยการแทนค่าทศนิยมในรูปของการลบ สับสน? นี่คือตัวอย่างบางส่วน. n=1 Primes: 2, 3, 5, 7, 11 ^1 first prime that contains a 1 Output: 11 n=2 Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23 ^1 ^2 second prime that contains a 2 Output: 23 n=3 Primes: 2, 3, 5, 7, 11, 13, …

8
จำลองลูกบาศก์รูบิค
ลูกบาศก์ของรูบิคมี 6 สี ได้แก่ แดงส้มเหลืองขาวน้ำเงินและเขียว ใบหน้าสีแดงและส้มเหลืองและขาวและสีน้ำเงินและสีเขียวอยู่ตรงกันข้ามกัน สุทธิจากลูกบาศก์ของ Rubik ที่แก้ไขแล้วจะมีลักษณะเช่นนี้: Y BRGO W และกระเบื้องมีลักษณะดังนี้: Y Y Y Y Y Y Y Y Y B B B R R R G G G O O O B B B R R R G G G O O O B B B R …

30
ฉันย้อนกลับซอร์สโค้ดคุณลบล้างผลลัพธ์!
งานของคุณถ้าคุณต้องการที่จะยอมรับมันคือการเขียนโปรแกรมที่ส่งออกจำนวนที่ไม่เป็นศูนย์ (อาจเป็นจำนวนเต็มหรือลอย) ส่วนที่ยุ่งยากคือถ้าฉันย้อนกลับซอร์สโค้ดของคุณผลลัพธ์จะต้องเป็นจำนวนเต็มต้นฉบับเมื่อตะกี้ กฎระเบียบ คุณต้องสร้างโปรแกรมเต็มรูปแบบ นั่นคือผลลัพธ์ของคุณจะต้องพิมพ์ไปที่ STDOUT ตัวเลขทั้งสองต้องอยู่ในฐาน 10 (ห้ามส่งออกในฐานอื่นหรือด้วยเครื่องหมายทางวิทยาศาสตร์เป็นสิ่งต้องห้าม) การส่งออกตัวเลขที่มีช่องว่างต่อท้าย / นำหน้าได้รับอนุญาต นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุด (ต้นฉบับ) ในแต่ละภาษาชนะ! มีการใช้ช่องโหว่เริ่มต้น ตัวอย่าง สมมติว่ารหัสที่มาของคุณและผลผลิตที่สอดคล้องกันของมันคือABC 4ถ้าผมเขียนแทนและเรียกใช้การส่งออกจะต้องมีCBA-4

30
เอาท์พุท Yggdrasil ในตำนาน
งานของคุณคือการส่งออกเป็นตัวแทนของต้นไม้ในตำนานของชีวิตYggdrasil คุณต้องเขียนโปรแกรมที่มีผลลัพธ์ตรงตาม: /\ /**\ /****\ /******\ /******\ /********\ /**********\ /************\ /**************\ /************\ /**************\ /****************\ /******************\ /********************\ /**********************\ /******************\ /********************\ /**********************\ /************************\ /**************************\ /****************************\ /******************************\ /************************\ /**************************\ /****************************\ /******************************\ /********************************\ /**********************************\ /************************************\ /**************************************\ /******************************\ /********************************\ /**********************************\ /************************************\ /**************************************\ /****************************************\ /******************************************\ /********************************************\ /**********************************************\ /************************************\ /**************************************\ /****************************************\ /******************************************\ /********************************************\ /**********************************************\ /************************************************\ /**************************************************\ /****************************************************\ …

21
ถอดรหัส XKCD สี
แรนดอโร (ผู้เขียน XKCD) ได้จัดสำรวจเพื่อให้ชื่อกับสี ผลหลักคือรายชื่อสำหรับ 954 ส่วนใหญ่ที่พบบ่อย RGB สีจอภาพ เพื่อความสะดวกในการเขียนโปรแกรมที่นี่เป็นรายการในข้อความธรรมดา: http://xkcd.com/color/rgb.txt ระวังบรรทัดแรกไม่ใช่ข้อมูล แต่มีสิทธิ์ใช้งาน เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ชื่อสีที่ถูกต้องจากรายการด้านบนในฐานะอินพุตและเอาต์พุตรหัสสี RGB ที่เกี่ยวข้อง โปรแกรมของคุณไม่จำเป็นต้องจัดการอินพุตที่ไม่ถูกต้องในลักษณะที่กำหนดไว้ ช่องโหว่มาตรฐานใช้ นอกจากนี้คำตอบของคุณจะต้องไม่ใช้รหัสสีที่กำหนดไว้ล่วงหน้า (ในตัวหรือภายนอก) <-> แผนที่ชื่อสี (ซึ่งรวมถึงรายการที่เชื่อมโยง) รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ หากคุณอ่านจากไฟล์ต้องนับจำนวนไบต์ของไฟล์ ตัวอย่าง: dark peach -> #de7e5d robin's egg blue -> #98eff9 pink/purple -> #ef1de7

3
สร้างรูปห้าเหลี่ยมที่หลีกเลี่ยงการใช้เข็มทิศ
กฎระเบียบ คุณจะเริ่มต้นด้วยสององค์ประกอบเท่านั้น: คะแนนAAAและเช่นนั้นBBBA ≠ BA≠BA \neq BB จุดเหล่านี้ใช้ระนาบที่ไม่มีที่สิ้นสุดในทุกทิศทาง ในขั้นตอนใด ๆ ในกระบวนการคุณสามารถทำหนึ่งในสามขั้นตอนต่อไปนี้: ลากเส้นที่ผ่านจุดสองจุด วาดวงกลมที่มีศูนย์กลางที่จุดหนึ่งเพื่อให้อีกจุดหนึ่งอยู่บนวงกลม เพิ่มจุดใหม่ที่วัตถุสองรายการ (เส้นและวงกลม) ตัดกัน เป้าหมายของคุณคือการสร้าง 5 คะแนนเพื่อให้เกิดจุดยอดของรูปห้าเหลี่ยมปกติ (รูปหลายเหลี่ยมนูนที่มีความยาวเท่ากับ 5 ด้าน) โดยใช้วงกลมน้อยที่สุดเท่าที่จะทำได้ แน่นอนว่าคุณอาจมีคะแนนอื่น ๆ แต่ 5 คะแนนต้องมีรูปห้าเหลี่ยมปกติ คุณไม่จำเป็นต้องวาดขอบรูปห้าเหลี่ยมเพื่อให้คะแนน เกณฑ์การให้คะแนน เมื่อเปรียบเทียบคำตอบสองคำตอบสิ่งที่วาดวงกลมน้อยกว่าจะดีกว่า ในกรณีที่เสมอกันเป็นวงกลมคำตอบที่วาดเส้นที่น้อยที่สุดนั้นดีกว่า ในกรณีที่เสมอกันทั้งในวงกลมและเส้นคำตอบที่เพิ่มจุดที่น้อยที่สุดจะดีกว่า ต่อต้านกฎ แม้ว่ารายการกฎจะละเอียดถี่ถ้วนและรายละเอียดทุกอย่างที่คุณสามารถทำได้คือไม่เพียงเพราะฉันไม่ได้บอกว่าคุณไม่สามารถทำอะไรไม่ได้หมายความว่าคุณทำได้ คุณไม่สามารถสร้างวัตถุ "โดยพลการ" สิ่งปลูกสร้างบางอย่างที่คุณจะพบจะคิดว่าเพิ่มจุดที่ตำแหน่ง "โดยพลการ" และทำงานจากที่นั่น คุณไม่สามารถเพิ่มคะแนนใหม่ในสถานที่อื่นนอกเหนือจากทางแยก คุณไม่สามารถคัดลอกรัศมีได้ สิ่งปลูกสร้างบางอย่างจะเกี่ยวข้องกับการตั้งเข็มทิศให้เป็นรัศมีระหว่างจุดสองจุดแล้วหยิบมันขึ้นมาแล้ววาดวงกลมอื่น ๆ คุณทำสิ่งนี้ไม่ได้ คุณไม่สามารถทำการ จำกัด กระบวนการได้ สิ่งปลูกสร้างทั้งหมดจะต้องมีจำนวนขั้นตอนที่แน่นอน ไม่ดีพอที่จะเข้าหาคำตอบแบบไม่แสดงอาการ …

13
สายลับมากเกินไป!
คุณกำลังต่อสู้กับเครือข่ายสายลับของศัตรูมากมาย คุณรู้ว่าสายลับแต่ละอันมีตัวตนปลอมอย่างน้อยหนึ่ง (หลายครั้ง) ที่พวกเขาต้องการใช้ คุณต้องการทราบจำนวนสายลับที่คุณกำลังเผชิญอยู่จริง ๆ โชคดีที่หน่วยสืบราชการลับของคุณตัวแทนกำลังทำงานของพวกเขาและสามารถบางครั้งคิดออกเมื่อสองปลอมจะถูกควบคุมจริงโดยสอดแนมศัตรูเดียวกัน กล่าวคือ: ตัวแทนของคุณไม่ทราบว่าเมื่อใดที่ตัวปลอมสองตัวมีสายลับเดียวกันอยู่ข้างหลังพวกเขา หากตัวแทนแจ้งให้คุณทราบว่าตัวตนปลอมสองตัวนั้นถูกควบคุมโดยสายลับเดียวกันคุณเชื่อว่าพวกเขาถูกต้อง ข้อความตัวแทน ตัวแทนส่งข้อความลับ ๆ ให้คุณเพื่อบอกคุณว่าตัวตนใดที่มีสายลับเดียวกันข้างหลังพวกเขา ตัวอย่าง: คุณมี2 ตัวแทนและตัวปลอม 5 ตัวที่จะจัดการ ตัวแทนแรกส่งข้อความถึงคุณ: Red Red Blue Orange Orange หมายความว่าพวกเขาคิดว่ามีสายลับ 3: อันแรก (สีแดง) ควบคุมข้อมูลประจำตัว 1 และ 2 ตัวที่สอง (สีน้ำเงิน) ควบคุมเอกลักษณ์ 3 อันที่สาม (สีส้ม) ควบคุมเอกลักษณ์ 4 และ 5 เอเจนต์ที่สองส่งข้อความถึงคุณ: cat dog dog bird fly หมายความว่าพวกเขาคิดว่ามีสายลับ …
38 code-golf 

10
วาด“ Cool S”
บทนำ เราทุกคนรู้จัก S ที่ยอดเยี่ยม (หรือเรียกอีกอย่างว่า Superman S, Stüssy S, Super S, Skater S, Pointy S, Graffiti S และอื่น ๆ ): เด็กนับพันล้านคนทั่วโลกดึง S นี้มาและรู้สึกภาคภูมิใจในตัวเองทันที ในกรณีที่คุณลืมหรือมีวัยเด็กที่ไม่ได้สมบูรณ์นี่คือภาพของ cool ที่พูดแล้ว: กำหนดสเกลแฟคเตอร์nเป็นอินพุต (โดยที่ ), ส่งเอาต์พุต Cool S ในศิลปะ ASCII1≤n≤201≤n≤201\leq n\leq 20 วิธีการวาด จากหน้า Wikipediaบน Cool S: เอาท์พุต The Cool S เมื่อn= 1 คือ: ^ / …

3
(A → B) → (¬B→¬A)
ฉันคิดว่ามันเกี่ยวกับเวลาที่เรามีคำถามพิสูจน์กอล์ฟอีกครั้ง เวลานี้เรากำลังจะพิสูจน์ความจริงเชิงตรรกะที่รู้จักกันดี ( A → B ) → ( ¬ B → ¬ A )(A→B)→(¬B→¬A)(A \rightarrow B) \rightarrow (\neg B \rightarrow \neg A) การทำเช่นนี้เราจะใช้Łukasiewiczที่สามของความจริง Schema , ชุดที่สง่างามอย่างเหลือเชื่อของสามหลักการที่มีความสมบูรณ์มากกว่าตรรกะประพจน์ นี่คือวิธีการทำงาน: สัจพจน์ ระบบŁukasiewiczมีสัจพจน์สามประการ พวกเขาคือ: ϕ → ( ψ → ϕ )ϕ→(ψ→ϕ)\phi\rightarrow(\psi\rightarrow\phi) ( ϕ → ( ψ → χ ) ) → ( ( …
38 logic  proof-golf 

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