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

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

17
Inscriptio Labyrinthica
ในสถานที่ฝังศพของกษัตริย์ไซโลแห่งอัสตูเรียสมีจารึกที่อ่านSILO PRINCEPS FECIT ( กษัตริย์ไซโลทำสิ่งนี้ ) ตัวอักษรตัวแรกอยู่ตรงกลางและจากนั้นมีคนอ่านโดยไปในทิศทางที่ไม่ใช่เส้นทแยงมุมแผ่ออกไปด้านนอก พบจดหมายฉบับสุดท้ายทั้งสี่มุม ในความท้าทายนี้คุณจะพูดถึงกระบวนการทั่วไปในการสร้างมัน อินพุต สตริง ( หรือเทียบเท่า ) และจำนวนเต็ม คุณอาจทำการสันนิษฐานต่อไปนี้เกี่ยวกับอินพุต: สตริงจะมีความยาวคี่ จำนวนเต็มจะเป็นเลขคี่ระหว่าง 1 ถึงหนึ่งน้อยกว่าสองเท่าของความยาวของสตริง เอาท์พุต labyrinthica inscriptioสตริงโดยใช้จำนวนเต็มสำหรับความสูงหรือความกว้าง (ดูรูปแบบตัวอย่างสูง) เอาต์พุตควรเป็นตัวอักษรแต่ละตัวโดยไม่มีช่องว่างแบ่งบรรทัดเป็นค่าเริ่มต้นสำหรับระบบ / ภาษาของคุณ กรณีทดสอบ โปรดทราบว่าอินพุต 1 หรือ (ความยาว * 2 - 1) จะส่งผลให้เป็นแนวนอนหรือแนวตั้ง Input: FOO, 3 Input: BAR, 1 Input: BAR, 3 Input: BAR, 5 Output: …
22 code-golf  string 

13
แปดเหรียญสำหรับราชาผู้ยิ่งใหญ่
นี่คือ "คู่" ของจิ๊กซอว์อีกชิ้นหนึ่งแปดเหรียญสำหรับราชาที่เป็นธรรมใน Puzzling.SE คุณสามารถอ่านปริศนาด้านบนสำหรับพื้นหลัง รายละเอียดเกี่ยวกับตัวต่อนี้มีดังนี้ มีการสร้างชุดของเหรียญ 8 ชนิดที่มีค่าแตกต่างกันกษัตริย์ต้องการให้คุณค้นหาจำนวนสูงสุด N เพื่อให้สามารถจ่ายราคาใดก็ได้ตั้งแต่ 0 ถึง N โดยมีการรวมกันไม่เกิน 8 เหรียญและไม่มีค่าใช้จ่าย ตัวอย่างเช่น (นำมาจากคำตอบของ Glorfindel) หากได้รับชุดเหรียญมูลค่า 1, 2, 5, 13, 34, 89, 233, 610 โปรแกรมของคุณควรส่งออก 1596 เพราะทุกตัวเลขระหว่าง 0 ถึง 1596 (รวม) สามารถแสดงผลได้โดยไม่รวม มากกว่า 8 หมายเลขจากรายการที่ระบุ (อาจทำซ้ำหมายเลข) ในขณะที่ 1597 ไม่สามารถแสดงด้วยวิธีดังกล่าว ในทางคณิตศาสตร์ถ้าใส่เป็นชุด S ซึ่งประกอบด้วย 8 จำนวนเต็มบวกที่ต้องการตอบสนองการส่งออกยังไม่มีที่ใดจำนวนnระหว่าง 0 …

19
ลำดับการลอยบิต
บิตลอยจากLSBไปยังMSBย้ายหนึ่งตำแหน่งในแต่ละครั้งจนกว่าจะลอยไปที่ด้านบนของคอนเทนเนอร์: 0000 0001 0010 0100 1000 เมื่อหนึ่งบิตลอยไปด้านบนอีกบิตเริ่มต้นการเดินทางและจะหยุดเมื่อพบบิตอื่น: 1001 1010 1100 สิ่งนี้จะเกิดขึ้นจนกว่าคอนเทนเนอร์จะเต็มไปด้วยบิต: 1101 1110 1111 ท้าทาย กำหนดตัวเลขจำนวนเต็มเอาท์พุท " ลำดับบิตลอย " สำหรับคอนเทนเนอร์ที่มีจำนวนบิตนั้น แต่ละคำของลำดับสามารถแยกโดยตัวคั่นที่คุณเลือก แก้ไข : ลำดับจะต้องแสดงเป็นตัวเลขทศนิยมจำนวนเต็มเริ่มต้นโดย Therm 0แรก: ขนาดคอนเทนเนอร์ควรมากกว่าศูนย์และขึ้นอยู่กับจำนวนบิตของจำนวนเต็มที่ใหญ่ที่สุดที่ถูกแทนที่ด้วยภาษาที่คุณเลือก คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นตรงกับข้อกำหนดนี้เสมอ ตัวอย่าง จำเป็นต้องมีลำดับตัวเลขเท่านั้นการแสดงไบนารีจะแสดงเป็นตัวอย่าง: สำหรับ1 :0 1 0 -> 0 1 -> 1 สำหรับ3 :0 1 2 4 5 6 7 000 -> 0 …

24
นับจำนวนสามเหลี่ยม
ให้รายการของจำนวนเต็มบวกหาจำนวนของสามเหลี่ยมที่เราสามารถสร้างขึ้นเพื่อให้ความยาวด้านของพวกมันถูกแสดงด้วยสามรายการที่แตกต่างของรายการอินพุต (แรงบันดาลใจมาจากCR ) รายละเอียด สามเหลี่ยมสามารถเกิดขึ้นถ้าทุกพีชคณิตในสามของความยาวด้านตอบสนองความเข้มงวดความไม่เท่าเทียมกันสามเหลี่ยม(ซึ่งหมายถึง ,และต้องถือไว้ทั้งหมด)a , b , ca,b,ca,b,c+ B > C+ B > Ca+b>c.a + b > c.a + b > ca+b>ca+b > ca + c > ba+c>ba+c>bb + c > ab+c>ab+c>a ความยาวทั้งสามด้านต้องปรากฏในตำแหน่งที่แตกต่างกันในรายการ แต่ไม่จำเป็นต้องแยกกันเป็นสองเท่าa , b , ca,b,คa,b,c ลำดับของตัวเลขสามตัวในรายการอินพุตไม่สำคัญ หากเราพิจารณารายการaและตัวเลขสามตัวa[i], a[j], a[k](ซึ่งi,j,kแตกต่างกันตามลำดับคู่) ดังนั้น(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])ทั้งหมดจะถือว่าเป็นรูปสามเหลี่ยมเดียวกัน รายการอินพุตสามารถสันนิษฐานว่ามีอย่างน้อย …

16
หมายเลขใดใหญ่กว่า
อินพุต จำนวน a1, a2, a3, b1, b2, b3 แต่ละค่าในช่วง 1 ถึง 20 เอาท์พุต True if a1^(a2^a3) > b1^(b2^b3) and False otherwise. ^ คือการยกกำลังในคำถามนี้ กฎระเบียบ นี่คือรหัสกอล์ฟ รหัสของคุณจะต้องยุติอย่างถูกต้องภายใน 10 วินาทีสำหรับการป้อนข้อมูลที่ถูกต้องบนพีซีเดสก์ทอปมาตรฐาน คุณสามารถเอาท์พุทอะไรจริงสำหรับ True และอะไรเท็จสำหรับเท็จ คุณสามารถสมมติว่าคำสั่งซื้อใด ๆ ที่คุณต้องการตราบเท่าที่มันระบุไว้ในคำตอบและเสมอเหมือนกัน สำหรับคำถามนี้รหัสของคุณควรถูกต้องเสมอ นั่นคือมันไม่ควรล้มเหลวเพราะความไม่ถูกต้องของจุดลอย เนื่องจากช่วงอินพุตที่มีอยู่อย่าง จำกัด จึงไม่ควรยากเกินกว่าจะบรรลุผล กรณีทดสอบ 3^(4^5) > 5^(4^3) 1^(2^3) < 3^(2^1) 3^(6^5) < 5^(20^3) 20^(20^20) …
22 code-golf 

15
เอาท์พุทแผนภาพภาพของภาพ
เขียนโปรแกรมที่ป้อนขนาดของภาพวาดความกว้างการปูและความกว้างของเฟรมสำหรับภาพบุคคลที่มีกรอบ โปรแกรมควรแสดงแผนภาพโดยใช้สัญลักษณ์Xสำหรับการทาสี+การปูและ#การกำหนดกรอบ สัญลักษณ์จะต้องคั่นด้วยช่องว่าง ช่องว่างต่อท้ายไม่เป็นไรตราบใดที่เอาต์พุตตรงกับเกณฑ์ 0ปัจจัยการผลิตสามารถ อินพุต: 3 2 1 2 (ความกว้าง, ความสูง, ความกว้างเคลือบ, ความกว้างของกรอบ) เอาท์พุท: ในรูปแบบข้อความ: # # # # # # # # # # # # # # # # # # # # + + + + + # # # # + X X X + …

20
มันเป็นงานประจำปีใช่มั้ย
ให้หมายเลข1≤n≤365ส่งออกวันที่ n ของปีในรูปแบบ "วันเดือนปีที่" ตัวอย่างเช่นที่ได้รับ 1 คุณควรส่งออก "วันที่ 1 มกราคม" โดยไม่มี "ของ" ปฏิทินเกรโกเรียนจะถูกนำมาใช้และโปรแกรมไม่ควรคิดเป็นปีอธิกสุรทินดังนั้นโปรแกรมของคุณไม่ควรส่งออก "29 กุมภาพันธ์" ในทุกกรณี สามารถใช้วิธีการใดก็ได้ตราบใดที่เป็นไปตามรูปแบบ "วันเดือนปีที่" ระบุไว้ก่อนหน้า โปรแกรมของคุณควรส่งออกอันดับที่ถูกต้องซึ่งหมายความว่ามันควรจะออก 1, 2, 3, ควร 1, 2 หรือ 3 ตามลำดับเป็นตัวเลขวันสำหรับการป้อนข้อมูลใด ๆ อนุญาตให้เว้นวรรคนำหน้าหรือเยื้องอื่น ๆ นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดโดยตัวละครจะชนะ กรณีทดสอบ: 1 gives 1st January 2 gives 2nd January 3 gives 3rd January 365 gives 31st December …
22 code-golf  date 

18
เล่น Zip, Zap, Zop
มีเกมอุ่นเครื่องอิมโพรฟเล็ก ๆ น้อย ๆ ที่คุณจัดเรียงตัวเองเป็นวงกลมและส่งรหัสไปรษณีย์, zaps และ zops ไปรอบ ๆ โดยชี้ไปที่บุคคลและพูดคำต่อไปในลำดับจากนั้นพวกเขาทำเช่นเดียวกันจนกว่าคุณจะอบอุ่นขึ้นหรือ อะไรก็ตาม งานของคุณคือการสร้างโปรแกรมที่ให้คำถัดไปตามลำดับที่ได้รับการป้อนคำ (Zip -> Zap -> Zop -> Zip) เนื่องจากมีหลายวิธีในการพูดสามคำและ flair ที่สามารถเพิ่มลงในคำเหล่านี้ได้โปรแกรมของคุณควรเลียนแบบตัวพิมพ์และตัวอักษร ในการทำอย่างละเอียดข้อมูลของคุณจะเป็นหนึ่งหรือมากกว่าZนั้นแล้วอย่างน้อยหนึ่งIs, As หรือOs (ตัวอักษรเดียวกันทั้งหมด) จากนั้นหนึ่งหรือมากกว่าPs (ตัวอักษรทั้งหมดถึงจุดนี้อาจจะเป็นกรณีผสม) ตามด้วย บางคำต่อท้ายโดยพลการ (ซึ่งอาจว่างเปล่า) คุณควรออกจากการวิ่งของZs และPs รวมถึงคำต่อท้ายตรงตามที่ได้รับ แต่จากนั้นเปลี่ยนIs เป็นAs, As เป็นOs หรือOs เป็นIs, รักษากรณีในแต่ละขั้นตอน ตัวอย่างกรณีทดสอบ zip ==> zap zAp ==> zOp ZOP …
22 code-golf  string 

23
การเพิ่มพีระมิด Upside-Down ... ย้อนกลับ!
การเพิ่มพีระมิด Upside-Down เป็นกระบวนการของการบันทึกรายการของตัวเลขและเพิ่มเข้าด้วยกันติดต่อกันจนกว่าคุณจะไปถึงหมายเลขหนึ่ง เมื่อกำหนดหมายเลข2, 1, 1แล้วจะเกิดกระบวนการต่อไปนี้: 2 1 1 3 2 5 5ปลายนี้ในจำนวน งานของคุณ ให้ด้านขวาของพีระมิด Upside-Down (เรียงจากน้อยไปมาก) เขียนโปรแกรมหรือฟังก์ชั่นที่จะส่งคืนรายการเดิม New Extra Challenge : ลองทำสิ่งนี้ในเวลาน้อยกว่า O (n ^ 2) ตัวอย่าง f([5, 2, 1]) => [2, 1, 1] f([84,42,21,10,2]) => [4,7,3,8,2] หมายเหตุ: ปิรามิด Upside-Down จะไม่ว่างเปล่าและจะประกอบด้วยจำนวนเต็มบวกเท่านั้น

13
เสื้อหลายสี
ท้าทาย ได้รับรายชื่อของที่ไม่ซ้ำกันชื่อสีเป็น input จัดเรียงพวกเขาเพื่อที่พวกเขาปรากฏตัวครั้งแรกในโจเซฟที่น่าตื่นตาตื่นใจเท็ค Dreamcoat ตัวอย่าง Input: green, blue, red, brown Output: red, green, brown, blue รายการสีทั้งหมดตามลำดับคือ: 1. red 2. yellow 3. green 4. brown 5. scarlet 6. black 7. ochre 8. peach 9. ruby 10. olive 11. violet 12. fawn 13. lilac 14. gold 15. chocolate 16. mauve 17. …

22
การทับบล็อคสตริง
ท้าทาย: รับรายการสตริงหลายบรรทัดซ้อนทับกัน (ในมุมบนซ้าย) และแสดงผลลัพธ์ ตัวอย่าง: อินพุต: ["aaaa\naaaa\naaaa\naaaa","bb\nbb\nbb","c"] เอาต์พุต: cbaa bbaa bbaa aaaa กฏท้าทาย: รูปแบบอินพุตมีความยืดหยุ่น คุณได้รับอนุญาตให้รับอินพุตเป็นรายการบรรทัด 2 มิติ (เช่น[["aaaa","aaaa","aaaa","aaaa"],["bb","bb","bb"],["c"]]) หรือรายการอักขระ 3 มิติ (เช่น[[["a","a","a","a"],["a","a","a","a"],["a","a","a","a"],["a","a","a","a"]],[["b","b"],["b","b"],["b","b"]],[["c"]]]) คุณได้รับอนุญาตให้รับอินพุตทั้งหมดทีละตัวผ่าน STDIN เป็นต้น รูปแบบผลลัพธ์เข้มงวด คุณสามารถเลือกที่จะพิมพ์หรือส่งคืนสตริงหลายบรรทัด (หากภาษาของคุณไม่มีสตริงใด ๆ การอนุญาตให้แสดงผลเป็นรายการตัวอักษร 2D เป็นทางเลือก แต่หากภาษาของคุณไม่มีสตริงเลย) ลำดับของรายการอินพุตมีความสำคัญแน่นอน (แต่คุณได้รับอนุญาตให้ป้อนข้อมูลย้อนกลับหากคุณเลือก) อินพุตจะมีเฉพาะ ASCII ที่พิมพ์ได้ในช่วง Unicode ( )[33,126][33,126][33,126]!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ อินพุตจะเป็นรูปสี่เหลี่ยมผืนผ้าเท่านั้น (ดังนั้นจึงไม่มีรูปทรงแปลก ๆ ) ถึงแม้ว่าเอาต์พุตไม่จำเป็นต้องใช้รูปสี่เหลี่ยมผืนผ้า ช่องว่างต่อท้ายและขึ้นบรรทัดใหม่ต่อท้ายได้รับอนุญาต ช่องว่างนำหน้าและ / หรือบรรทัดใหม่ไม่ …

14
ตัวเลขเหล่านี้คืออะไร?
ในขณะที่ฉันกำลังเขียนตัวเลขฉันสังเกตเห็นหลังจากที่ในขณะที่แป้นพิมพ์ของฉันมีShiftคีย์กดและบล็อกและทั้งหมดที่ฉันเขียนเป็น$%&อักขระเหมือน และยิ่งแย่ไปกว่านั้นฉันได้ทำการสลับระหว่างรูปแบบแป้นพิมพ์ภาษาอังกฤษและสเปนดังนั้นฉันจึงไม่ทราบว่าฉันใช้รูปแบบใดในแต่ละหมายเลข ท้าทาย ระบุสตริงที่มีอักขระสัญลักษณ์พยายามเดาหมายเลขที่ฉันเขียน แป้นพิมพ์ของฉันผลิตอักขระต่อไปนี้สำหรับตัวเลขเมื่อShiftกด: 1234567890 ---------- !"·$%&/()= Spanish layout !@#$%^&*() English layout อินพุตจะเป็นสตริงที่ไม่เป็น null และไม่ว่างซึ่งประกอบด้วยสัญลักษณ์ด้านบน ผลลัพธ์จะเป็นตัวเลขเดี่ยวหากรูปแบบแป้นพิมพ์สามารถอนุมานได้จากสตริง (เช่นถ้าสตริงมี@รูปแบบภาษาอังกฤษถูกนำมาใช้และหากสตริงมี"รูปแบบภาษาสเปนถูกนำมาใช้) หรือถ้าตัวเลขนั้นเหมือนกันสำหรับ เลย์เอาต์ทั้งสอง (เช่นอินพุท!$ซึ่งแปลว่า14ทั้งสองเลย์เอาต์); มิฉะนั้นเอาต์พุตจะเป็นตัวเลขสองตัวเลขที่เป็นไปได้สำหรับทั้งสองเลย์เอาต์หากไม่สามารถอนุมานได้และตัวเลขที่ได้จะแตกต่างกัน สตริงอินพุตจะถูกเขียนในเลย์เอาต์เดียวเสมอ ดังนั้นคุณไม่จำเป็นต้องคาดหวังว่าจะ"@เป็นอินพุต ตัวอย่าง Input --> Output ------------------ /() 789 (Spanish layout detected by the use of /) $%& 456,457 (Layout cannot be inferred) !@# 123 (English layout detected …

30
การหมุนสตริง - สตริงเอาต์พุตย้ายอักขระตัวแรกไปยังจุดสิ้นสุดซ้ำ ๆ
ความท้าทายที่นี่คือการใช้สายอักขระและเอาท์พุทการหมุนทั้งหมดของมันโดยการย้ายตัวละครตัวแรกไปยังจุดสิ้นสุดซ้ำ ๆ หนึ่งครั้งต่อตัวละครในสตริงที่ลงท้ายด้วยสตริงเดิม: john -> ohnj, hnjo, njoh, john นอกจากนี้คุณยังสามารถวนไปในทิศทางอื่น ๆ ย้ายตัวละครจากท้ายที่สุด: john -> njoh, hnjo, ohnj, john คุณควรส่งออกหนึ่งรอบการหมุนต่อตัวอักษรแม้ว่าจะถึงคำดั้งเดิมก่อนหน้านั้น: heehee -> eeheeh, eheehe, heehee, eeheeh, eheehe, heehee อนุญาตให้ใช้อาร์เรย์อักขระได้ตราบใดที่ผลลัพธ์ดังที่แสดงด้านบน คำตอบที่สั้นที่สุดชนะ!
22 code-golf  string 

23
รูปแปดเหลี่ยมศิลปะ ASCII
รับค่าอินพุทจำนวนเต็มn > 1ส่งออกรูปแปดเหลี่ยม ASCII-art ที่มีความยาวด้านข้างประกอบด้วยnอักขระ ดูตัวอย่างด้านล่าง: n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

28
ทำเสื้อคลุมคำง่ายๆ
(หมายเหตุ: นี่คือคำถามรหัสกอล์ฟครั้งแรกของฉัน แต่เท่าที่ฉันสามารถบอกได้ไม่มีใครทำอย่างนี้ดังนั้นฉันควรจะดี) งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ใช้ในสตริงsและจำนวนเต็มnและส่งคืนหรือส่งออกข้อความที่ห่อเป็นหลายบรรทัด แต่ละคำต้องอยู่ในบรรทัดทั้งหมด กล่าวคือไม่มีคำแยกกลาง แต่ละบรรทัดต้องมีความยาวไม่เกินnอักขระและคุณต้องใส่คำให้มากที่สุดเท่าที่จะทำได้ในแต่ละบรรทัด ตัวอย่าง: s = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eget erat lectus. Morbi mi mi, fringilla sed suscipit ullamcorper, tristique at mauris. Morbi non commodo nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed …
22 code-golf  string  code-golf  string  parsing  apl  math  primes  integer  fastest-code  code-golf  math  primes  integer  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  array-manipulation  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  code-golf  date  conversion  code-golf  geometry  combinatorics  grid  code-golf  string  code-golf  counting  java  code-golf  chess  code-golf  path-finding  conversion  atomic-code-golf  logic-gates  code-golf  fibonacci  code-golf  ascii-art  fractal  code-golf  quine  code-golf  string  code-golf  array-manipulation  decision-problem  code-golf  quine  code-golf  code-challenge  array-manipulation  code-challenge  word-search  code-golf  binary  conversion  code-golf  code-golf  restricted-source  code-golf  kolmogorov-complexity  restricted-source  code-golf  kolmogorov-complexity  random  animation 

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