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

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

19
คืนค่าแต่ละตัวเลขจากกลุ่มของตัวเลข
ความท้าทาย โปรแกรมจะต้องส่งคืนตัวเลขทั้งหมดที่รวมอยู่ในกลุ่ม (ลำดับที่คั่นด้วยเครื่องหมายจุลภาคและเครื่องหมายขีดกลาง) ของตัวเลข กฎระเบียบ s เป็นสตริงลำดับ; ตัวเลขทั้งหมดรวมอยู่ในsเป็นบวก ; ตัวเลขจะเพิ่มขึ้น ; ตัวเลขจะไม่ซ้ำ เมื่อคุณตอบให้แสดงผลลัพธ์สำหรับ s="1,3-5,9,16,18-23" ตัวอย่าง input(s) outputs ----------------- 1 1 1,2 1,2 1-4 1,2,3,4 1-4,6 1,2,3,4,6 1-4,8-11 1,2,3,4,8,9,10,11 โชคดี. =)

19
คำนวณคำที่ n ของลำดับการอธิบายตนเองของ Golomb
แรงบันดาลใจจากคำถามก่อนหน้านี้ ลำดับ g (n) อธิบายตนเองของ Golombเป็นลำดับที่มีจำนวนธรรมชาติใด ๆnซ้ำภายในลำดับ g (n) ครั้ง ตัวเลขสองสามตัวแรกในลำดับคือ: n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 g(n) 1 2 2 3 3 4 4 4 5 5 5 6 6 6 6 7 7 …

8
การสร้างไม้บรรทัด ASCII
ความท้าทายคือการสร้างไม้บรรทัดนับอักขระ ASCII ในรูปแบบต่อไปนี้: +-------------------------------------------------------------------------+ || | | | | | | | | | | | | | | | |0 10 20 30 40 50 60 70 | | | +-------------------------------------------------------------------------+ ความยาวของไม้บรรทัดควรปรับได้ตามความหลากหลายของ 10 กฎ: ไม้บรรทัดต้องเป็นแนวนอน สมมติว่าเพื่อให้สิ่งที่เรียบง่ายว่าการทำงานของผู้ปกครองต้องจนกว่าเครื่องหมาย 1000 ตัวเลขทั้งหมดซ้ายชิดพื้นที่หนึ่งหลังจากตัวเลขสุดท้าย การขอไม้บรรทัดที่มีความยาวเป็นศูนย์ควรพิมพ์ NaR ตัวเลขติดลบควรพิมพ์ไม้บรรทัดที่กลับด้าน (-90, -80, -70, ... ) ด้วยตัวเลขที่จัดชิดขวาในรูปแบบเดียวกับที่อยู่ด้านบน และเพียงพิมพ์ไปที่คอนโซลก็โอเค พร้อมตั้งกอล์ฟ!

3
สร้างเขาวงกต 5x5x5 หลายระดับด้วยโซลูชันเดียวเท่านั้น
เป้าหมายของความท้าทายนี้คือการสร้างรหัสที่สั้นที่สุด (เป็นตัวอักษร) ที่ทำสิ่งต่อไปนี้สำเร็จ: ข้อมูลจำเพาะ : ต้องสร้าง5x5x5 labyrinthด้วยอย่างแน่นอน1 possible solution(ไม่มากไม่น้อยกว่า) ต้องสร้างเขาวงกต randomly มันจะต้องสามารถสร้างโซลูชันที่มีอยู่ได้ทั้งหมดหากปล่อยทิ้งไว้เป็นเวลาหลายปี startและfinishจะต้องอยู่ใน*opposite corners แผนที่outputจะต้องอยู่ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้: รูปแบบผลลัพธ์ตัวเลือก 1 strings, printed or alerted : xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx/ xxxxx,xxxxx,xxxxx,xxxxx,xxxxx รูปแบบผลลัพธ์ตัวเลือก 2 arrays : [[xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx], [xxxxx,xxxxx,xxxxx,xxxxx,xxxxx]] หมายเหตุการส่งออก: ใช้0สำหรับemptyและ1สำหรับsquares ไม่จำเป็นต้องขึ้นบรรทัดใหม่ คุณเป็นคนตัดสินใจว่าอะไรindexคืออะไร แต่ขอให้แน่ใจว่าได้อธิบายให้ดี * นี่คือตัวอย่างของสิ่งที่ฉันหมายถึงโดยมุมตรงข้าม: ชี้แจง : ไม่สามารถย้ายเข้าdiagonal ไม่สามารถผ่านสองครั้งบนเส้นทางเดียวกัน ต้องinaccessible areasได้รับอนุญาต คุณสามารถgo …


16
ASCII Ball in Box Animation
เขียนโปรแกรมที่แสดงลูกบอล ASCII ที่กำลังเคลื่อนที่*อยู่ในสี่เหลี่ยม (20 ถึง 10 ตัวอักษรรวมถึงเส้นขอบ) ลูกบอลต้องไม่ข้ามสี่เหลี่ยมผืนผ้าเช่นชนเมื่อชนกำแพง ฉากจะต้องถูกล้างและวาดใหม่ทุก 0.1 วินาทีและลูกบอลต้องเคลื่อนที่ 1 อักขระในทิศทาง x และ y ทุกเฟรม โปรแกรมที่สั้นที่สุดที่เขียนในภาษาใดก็ได้ชนะ เอาต์พุตตัวอย่าง (เฟรม 1) +------------------+ |* | | | | | | | | | | | | | | | +------------------+ ตัวอย่างผลลัพธ์ (เฟรม 2) +------------------+ | | | * | | | …

6
นานแค่ไหนจนถึงวันนี้
แนวคิดคือ: เขียนฟังก์ชั่นเพื่อพิมพ์ระยะเวลาจากวันนี้ / วันนี้ (ณ เวลาที่เรียกใช้ฟังก์ชัน) จนกระทั่งวันที่กำหนดเป็นอาร์กิวเมนต์ สมมติฐาน: วันที่ป้อนจะเป็นวันพรุ่งนี้หรือหลังจากนั้นในอนาคต วันที่ป้อนจะไม่เกิน 10 ปีในอนาคต กฎ: ผลลัพธ์จะต้องอยู่ในรูปแบบนี้: "[z ปี (s)], [x เดือน (s)], y วัน (s) จนถึง -Input Date-" กรอบเวลาส่งออก (วัน / เดือน / ปี) จะต้องได้รับการแก้ไขอย่างถูกต้อง เช่น1 monthไม่1 months ข้อมูลที่ป้อนสามารถอยู่ในรูปแบบวันที่ใดก็ได้ที่คุณต้องการ (3/15/12 - 15 มีนาคม 2012 - 2012.03.15) ตัวอย่าง: สมมติว่าโปรแกรมทำงานในวันที่ 15 มีนาคม 2012: วันที่ป้อนของ3/20/12=5 …
11 code-golf  date 

1
จำลองเครื่องลงทะเบียน Minsky (II)
นี้เป็นส่วนขยายของจำลองมินสกีลงทะเบียนเครื่อง (I) ฉันจะไม่ทำซ้ำคำอธิบายทั้งหมดที่นั่นดังนั้นโปรดอ่านคำอธิบายปัญหาก่อน ไวยากรณ์ในส่วน (I) นั้นเรียบง่ายที่สุดเท่าที่จะเป็นไปได้ แต่ให้ผลลัพธ์ในโปรแกรมที่ค่อนข้างยาว เนื่องจากนี่คือไซต์รหัสกอล์ฟเราควรมีไวยากรณ์กอล์ฟใช่มั้ย ในระดับสูงการเปลี่ยนแปลงจากไวยากรณ์ดั้งเดิมมีดังนี้: ฉลากในบรรทัดแรกเป็นตัวเลือก ช่องว่างเป็นทางเลือกยกเว้นในกรณีที่จำเป็นต้องแยกตัวระบุสองตัวที่ติดกัน รัฐสามารถ inlined เพื่อให้แน่ใจว่าการวิเคราะห์คำที่ไม่กำกวมไม่ชัดเจนหากสถานะแรกของการดำเนินการลดทอนเป็นสถานะอินไลน์มันจะต้องอยู่ในวงเล็บ ซึ่งหมายความว่าโปรแกรมใด ๆ ที่สามารถเล่นกอล์ฟเป็นแบบหนึ่งเส้นได้ ตัวอย่างเช่นในกรณีทดสอบต้นฉบับเรามี: b + = a, t = 0 init : t - init d0 d0 : a - d1 a0 d1 : b + d2 d2 : t + d0 a0 : t …

3
ปัญหาการบรรจุเลื่อน
เอลฟ์ของซานต้าต้องการความช่วยเหลือในการพิจารณาว่าของขวัญชุดปัจจุบันของพวกเขาจะเข้ากับซานต้า เขียนโปรแกรมสั้นที่สุดที่เป็นไปได้ในภาษาที่คุณเลือกเพื่อช่วยพวกเขาออก ข้อ จำกัด เลื่อนของซานต้าวัดกว้าง 6 ฟุตยาว 12 ฟุตและลึก 4 ฟุต ของขวัญอาจมีความเปราะบางดังนั้นจึงไม่สามารถวางซ้อนกันได้ คุณสามารถหมุนและพลิกของขวัญได้ตามที่คุณต้องการ แต่ซานต้าเป็นหุ่นยนต์ที่ครอบงำจิตใจดังนั้นการหมุนจะทวีคูณ 90 องศา ข้อกำหนดด้านสุขภาพและความปลอดภัยในขั้วโลกเหนือกำหนดว่าของขวัญต้องอยู่สูงกว่า 1 ฟุตไม่สูงเกิน 1 ฟุต (ดังนั้นพวกเขาอาจไม่สูงเกิน 5 ฟุต) อินพุต อินพุตจะเปิดSTDINและจะเป็นจำนวนเต็มหนึ่งตัวซึ่งแสดงถึงจำนวนของของขวัญในแบตช์ตามด้วยรายการมิติข้อมูลของของขวัญ - 1 การนำเสนอต่อบรรทัด 3 มิติ (ฟุต) คั่นด้วยช่องว่าง ตัวอย่าง: 1 6 12 5 6 1 12 3 1 12 4 1 12 1 1 12 …
11 code-golf 

2
Blockbox Hex ที่?
เขียนโปรแกรมหรือฟังก์ชั่นในภาษาการเขียนโปรแกรมใด ๆ ที่รับอินพุต / อาร์กิวเมนต์เลขฐานสิบหก 6 หลัก อินพุต / อาร์กิวเมนต์สามารถเป็นค่า 6 ค่าหรือสตริงอักขระ 6 ตัว โปรแกรมของคุณควรส่งออกบล็อกสี่เหลี่ยมกว้าง 8 ตัวอักษรของตัวอักษรที่มีเฉพาะเลขฐานสิบหกที่ให้มารวมกับช่องว่าง (+ Linefeed) บล็อกสี่เหลี่ยมคือการรวมกันของรูปร่างบล็อกขนาดเล็กหนึ่งรูปสำหรับแต่ละค่าที่ให้มา 6 ค่า ต่อไปนี้เป็นตัวอย่างอินพุต 2 demostrative และเอาต์พุตตัวอย่างที่ใช้ได้: ตัวอย่างอินพุต : "464fa6" or [4, 6, 4, 15, 10, 6] ทางออกหนึ่งที่ถูกต้องการส่งออก : 44 66 ff 44 66 ff 66 ff aa f aaa ffff …
11 code-golf 

13
สวัสดีชาวโลกเรนโบว์
การจัดการกับสีในภาษาที่ไม่ใช่มาร์กอัปมักทำให้เกิดความยุ่งยาก ฉันต้องการดูรูปแบบการใช้สีในภาษาต่างๆ เป้าหมายของการแข่งขันนี้คือแสดงผลลัพธ์ 'Hello World' ในเจ็ดสีรุ้ง จากข้อมูลของ Wikipedia เหล่านี้มี 7 สี Red #FF0000 (RGB: 255, 0, 0) Orange #FF7F00 (RGB: 255, 127, 0) Yellow #FFFF00 (RGB: 255, 255, 0) Green #00FF00 (RGB: 0, 255, 0) Blue #0000FF (RGB: 0, 0, 255) Indigo #6600FF (RGB: 111, 0, 255) Violet #8B00FF (RGB: …

8
codegolf.com: ประหยัดเวลา
จาก codegolf.com (ไม่โหลด ณ วันที่ 15 กันยายน 2011) เป็นสิ่งที่ทำให้ฉันบ้า พิมพ์ไปที่ STDOUT นาฬิกาของแบบฟอร์มที่มีความแม่นยำเวลาอ่านจาก STDIN และทำเครื่องหมายhที่ชั่วโมงและmนาที (ปัดเศษลงเป็นหลาย ๆ 5) และxถ้าพวกเขาทับซ้อนกันเห็บที่ไม่ได้ใช้จะถูกทำเครื่องหมายด้วยoเพื่อให้ echo "23:13" | perl script.pl อัตราผลตอบแทน o h o o m o o o o o o o ของฉันคือ: $/=':';($h,$m)=<>;printf'%9s %5s%8s %2s%14s %s%16s %2s%14s %5s%8s %9s',map{qw'o h m x'[2*($_==int$m/5)^$_==$h%12]}map{$_,11-$_}0..5 สำหรับ 136 ตัวอักษรโดยใช้ …
11 code-golf 

5
ล่ามคะแนนดนตรี
ด้วยคะแนนดนตรี ascii คุณจะต้องสามารถส่งออกบันทึกและความยาวที่สอดคล้องกัน คะแนนจะมีอยู่ระหว่าง 5 ถึง 15 โน้ตรวมอยู่ด้วยและถูกถอดความบนเสา ขั้นบันไดประกอบด้วยเส้นแนวนอนห้าเส้นซึ่งประกอบด้วยอักขระ - (ลบ) คั่นด้วยเส้นของช่องว่าง บรรทัดล่างสุดของไม้เท้านั้นเทียบเท่ากับโน้ต 'E' เส้นของช่องว่างเหนือเส้นด้านล่างจะระบุ 'F' และเป็นระยะห่างที่สูงกว่าที่ 'E' อยู่ด้านล่าง ดำเนินการต่อไปดังนี้ โปรดทราบว่าโน้ตจะสูงถึง 'G' ก่อนเริ่มอีกครั้งที่ 'A' ดูด้านล่าง: F ---------- E D ---------- C B ---------- A G ---------- F E ---------- โปรดทราบว่าตัวอักษรไม่รวมอยู่ในอินพุต บันทึกย่อดังกล่าวจะถูกวางทับที่ด้านบนของไม้เท้าโดยใช้อักขระ ao (ตัวพิมพ์เล็ก ooh) เพื่อระบุ 'หัวกระดาษโน้ต' หัวบันทึกนี้แสดงความถี่ของบันทึกย่อและดังนั้นการแสดงตามตัวอักษรของมันดังกล่าวข้างต้น ตัวอย่างเช่นโน้ตที่วางไว้ในคะแนนด้านล่างแสดงถึง 'A': ---- …

10
ค้นหาผลรวมลำดับที่ใหญ่ที่สุด
กำหนดลำดับของจำนวนเต็มหาผลรวมที่ใหญ่ที่สุดของลำดับ (จำนวนเต็มในตำแหน่งต่อเนื่อง) ของลำดับ การเรียงลำดับสามารถเป็นค่าว่างได้ (ในกรณีนี้ผลรวมคือ 0) อินพุตถูกอ่านจากอินพุตมาตรฐานหนึ่งจำนวนเต็มหนึ่งต่อบรรทัด ผลรวมที่ใหญ่ที่สุดจะต้องเขียนลงในเอาต์พุตมาตรฐาน ฉันเขียนเครื่องกำเนิดไฟฟ้าขนาดเล็กสำหรับคุณ: #include <stdio.h> #include <assert.h> /* From http://en.wikipedia.org/wiki/Random_number_generation */ unsigned m_w; unsigned m_z; unsigned get_random() { m_z = 36969 * (m_z & 65535) + (m_z >> 16); m_w = 18000 * (m_w & 65535) + (m_w >> 16); return (m_z << 16) …

7
เขียนโปรแกรมจำลองตัวเอง
เขียนโปรแกรมอย่างง่ายที่คัดลอกตัวเองเมื่อดำเนินการ โปรแกรมของคุณควรเป็นไฟล์เรียกทำงานบางประเภทใน Windows, Linux และอื่น ๆ ควรสร้างไฟล์ปฏิบัติการใหม่ซึ่งเหมือนกับไฟล์ปฏิบัติการดั้งเดิมของคุณโดยใช้ชื่อแบบสุ่มและออกจากโปรแกรม โปรแกรมของคุณไม่ควรเกี่ยวข้องกับการอ่านหรือคัดลอกไฟล์ อนุญาตให้เขียนไฟล์เพื่อสร้างไฟล์เรียกทำงานใหม่เท่านั้น (PS. ฉันค่อนข้างอายเมื่ออยู่ที่ Wikipedia Self-replicating programเปลี่ยนเส้นทางไปยังComputer virusบทความ ... : / ... ) ขนาดไฟล์ปฏิบัติการที่เล็กที่สุดจะชนะ คำตอบของคุณอาจเป็นรหัสการเขียนโปรแกรมที่มีระบบปฏิบัติการ & คอมไพเลอร์, รหัสการประกอบหรือการถ่ายโอนข้อมูล HEX ของไฟล์ปฏิบัติการได้
11 code-golf  quine 

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