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

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

11
ผลรวมสะสมแบบแบ่งพาร์ติชัน 2D
ท้าทาย รับเมทริกซ์Mพร้อมแถวrและคอลัมน์cและ Boolean สองรายการแสดงรายการVของความยาวrและHของความยาวcให้คำนวณผลรวมแนวตั้งและแนวนอนที่แบ่งพาร์ติชันแล้ว กฎระเบียบ rและcมากกว่าหรือเท่ากับหนึ่ง HและVเริ่มต้นด้วยมูลค่าที่แท้จริง ค่าในMอยู่ภายในโดเมนตัวเลขที่สมเหตุสมผลของภาษาของคุณ การแบ่งพาร์ติชันและการสรุปเริ่มต้นที่มุมซ้ายบน เดินผ่าน ให้M : ┌──────────────┐ │ 1 2 3 4 5│ │ 6 7 8 9 10│ │11 12 13 14 15│ │16 17 18 19 20│ └──────────────┘ H :1 0 1 0 0 V :1 1 0 1 แยกMเป็นกลุ่มของคอลัมน์เริ่มต้นกลุ่มใหม่ในทุกมูลค่าที่แท้จริงของH ┌─────┬────────┐ │ …

7
มีพาร์ติชั่นกี่ตัวที่มีสี่เหลี่ยมสมบูรณ์แบบเท่านั้น?
กำหนดจำนวนเต็มไม่เป็นลบหรือรายการของตัวเลขกำหนดจำนวนตัวเลขที่สามารถเกิดขึ้นได้โดยการเชื่อมต่อจำนวนตารางซึ่งอาจมีเลขศูนย์นำหน้า ตัวอย่าง input -> output # explanation 164 -> 2 # [16, 4], [1, 64] 101 -> 2 # [1, 01], [1, 0, 1] 100 -> 3 # [100], [1, 00], [1, 0, 0] 1 -> 1 # [1] 0 -> 1 # [0] 164900 -> 9 # [1, 64, …

20
ค้นหา Serialized Integer
งาน เขียนโปรแกรมที่จะใช้ (เป็นอินพุต) จำนวนเต็มบวก จากนั้นจะนับจากการ0ผนวกแต่ละจำนวนเต็มกับ a Stringต่อเมื่อความยาวของStringน้อยกว่าค่าของอินพุต เนื่องStringจำนวนเต็มถูกกำหนดให้เป็นจำนวนเต็มเต็มรูปแบบที่มีมูลค่าสูงสุดเป็นของ โดย "เต็มรูปแบบ" จำนวนเต็มไม่ควรมีตัวเลขที่หายไป (ซึ่งจะเกิดขึ้นหากข้อจำกัดความยาวของข้อมูลStringตรงกัน) เอาต์พุตของโปรแกรมควรเป็นจำนวนเต็มต่อเนื่องสำหรับอินพุตที่เป็นบวกของมัน กฎระเบียบ มันคือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ! อินพุตจะเป็นค่าบวกเสมอ เอาต์พุตจะต้องเป็นจำนวนเต็มใน base-10 (ฐานสิบ) โปรแกรมจะต้องจัดทำดัชนี 0 ตัวอย่างอินพุต | เอาท์พุต 5 | 4 (0 1 2 3 4 - Length of 5) 11 | 9 (0 1 2 3 4 5 6 7 8 …

4
การพิชิตโลกที่เก่าแก่
ความท้าทายนี้จะตามออกHelka Hombaคำถามของการเขียนโปรแกรมที่เก่าแก่โลก จากคำถามนั้นคำจำกัดความของโปรแกรมที่เก่าแก่คือ: ลองกำหนดโปรแกรมที่เก่าแก่เป็นโปรแกรมที่ไม่มีข้อผิดพลาดใด ๆ แต่จะเกิดข้อผิดพลาดหากคุณแก้ไขโดยการลบสตริงย่อยที่ต่อเนื่องกันของอักขระ N ตัวใดตัว1 <= N < program lengthหนึ่ง ตัวอย่างเช่นโปรแกรมสามตัวอักษร Python 2 `8` เป็นโปรแกรมที่เก่าแก่( ขอบคุณ, Sp )เพราะโปรแกรมทั้งหมดที่เกิดจากการลบสตริงย่อยของความยาว 1 ทำให้เกิดข้อผิดพลาด (ข้อผิดพลาดทางไวยากรณ์ในความเป็นจริง แต่ข้อผิดพลาดประเภทใดจะทำ): 8` `` `8 และโปรแกรมทั้งหมดที่เป็นผลมาจากการลบสตริงย่อยของความยาว 2 ทำให้เกิดข้อผิดพลาด: ` ` ตัวอย่างเช่นหาก`8เป็นโปรแกรมที่`8`ไม่มีข้อผิดพลาดก็จะไม่ได้รับความบริสุทธิ์เนื่องจากผลลัพธ์ทั้งหมดของการลบสตริงย่อยจะต้องเกิดข้อผิดพลาด หมายเหตุ: คำเตือนของคอมไพเลอร์จะไม่นับเป็นข้อผิดพลาด โปรแกรมย่อยที่มีข้อผิดพลาดสามารถรับอินพุตหรือให้เอาต์พุตหรือทำสิ่งอื่นตราบใดที่ข้อผิดพลาดไม่ว่าอะไรจะเกิดขึ้นในที่สุด งานของคุณคือการสร้างโปรแกรมที่มีความยาวไม่เป็นศูนย์ซึ่งจะพิมพ์ซอร์สโค้ดของตัวเองอย่างแน่นอนปฏิบัติตามกฎสำหรับควินินที่เหมาะสมและมีความเก่าแก่ คำตอบสั้น ๆ เป็นไบต์สำหรับแต่ละภาษาที่ชนะ

2
เอาต์พุตองค์ประกอบดั้งเดิมสำหรับแต่ละขนาดฟิลด์
องค์ประกอบดั้งเดิมของฟิลด์ จำกัด เป็นเครื่องกำเนิดไฟฟ้าของกลุ่มคูณของสนาม ในคำอื่น ๆalphaในF(q)ที่เรียกว่าองค์ประกอบดั้งเดิมถ้ามันเป็นแบบดั้งเดิมq−1ราก TH F(q)ของความสามัคคีใน ซึ่งหมายความว่าองค์ประกอบที่ไม่ใช่ศูนย์ทั้งหมดของF(q)สามารถเขียนเป็นalpha^iบาง (บวก) iจำนวนเต็ม องค์ประกอบทั้งหมดของสนามF_{2^k}สามารถเขียนเป็นพหุนามของระดับที่มากที่สุดk-1มีค่าสัมประสิทธิ์ที่มีทั้งหรือ1 0เพื่อที่จะทำให้เสร็จสมบูรณ์รหัสของคุณยังจำเป็นต้องมีพหุนามลดระดับkซึ่งกำหนดเขตข้อมูลที่คุณใช้ งานคือการเขียนรหัสที่แสดงองค์ประกอบดั้งเดิมของF_{2^k}การเลือกของคุณตามk = 1 .. 32ลำดับ ผลลัพธ์ของคุณจะต้องแสดงรายการkค่าสัมประสิทธิ์ขององค์ประกอบดั้งเดิมในรูปแบบใด ๆ ที่คุณต้องการแล้วแยกk+1องค์ประกอบของพหุนามลดขนาดลงในบรรทัดแยกต่างหาก กรุณาแยกเอาท์พุทสำหรับแต่ละค่าkถ้าเป็นไปได้ รหัสของคุณอาจใช้เวลานานเท่าที่คุณต้องการ แต่คุณต้องเรียกใช้ให้เสร็จก่อนที่จะส่งคำตอบ คุณไม่สามารถใช้ฟังก์ชัน builtin หรือ library ที่ส่งคืนองค์ประกอบดั้งเดิมของฟิลด์ จำกัด หรือทดสอบว่าองค์ประกอบนั้นเป็นแบบดั้งเดิมหรือไม่ ตัวอย่าง สำหรับองค์ประกอบเพียงดั้งเดิมคือk = 11 สำหรับการที่เรามีk = 2 F_44 องค์ประกอบ{0, 1, x, x + 1}จึงมีสององค์ประกอบดั้งเดิมและx x + 1ดังนั้นรหัสสามารถส่งออก 1 1 1 …

2
แสดงดอกไม้ไฟให้ฉันดู!
ให้ในทางใดทางหนึ่งและคำสั่งซื้อ ขนาด (ตามลำดับที่คุณต้องการ) ความน่าจะเป็น (ในรูปแบบที่คุณต้องการ) จำนวนการวนซ้ำ (คุณสามารถเลือกว่าจะนับสถานะเริ่มต้นหรือไม่) ทำอย่างใดอย่างหนึ่งต่อไปนี้: เคลื่อนไหวหรือ เอาต์พุตแต่ละขั้นตอนของหรือ ส่งคืนรายการสถานะของ ท้องฟ้าที่เต็มไปด้วยอวกาศของมิติเหล่านั้น สำหรับการทำซ้ำแต่ละครั้ง: อักขระบนท้องฟ้าทุกตัวมีความน่าจะเป็นที่จะได้รับ * อักขระแปดตัวที่ล้อมรอบ*จะกลายเป็นสิ่งใด ๆ \ | / - - / | \ถ้าพวกเขาไม่ได้กลายเป็นดาวอย่างไร หากตัวละครอยู่ในช่วงสอง*s ให้ทำให้เป็นX ตัวอย่าง ท้องฟ้า 7 × 22 (เฟรมเพื่อความชัดเจนเท่านั้น - อย่าส่งออกเฟรม) ┌──────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ …

3
กล่องเครื่องมือที่สองของ MacGyver
ในคำถามนี้แต่ละคำตอบจะได้รับ "กล่องเครื่องมือ" ที่สามารถใช้ในการสร้างโปรแกรม / ฟังก์ชั่น กล่องเครื่องมือจะประกอบด้วยสองสิ่ง: รายการภาษาโปรแกรม รายการของอักขระที่ถูกต้อง คุณต้องเขียนโปรแกรม / ฟังก์ชั่นที่ถูกต้องในภาษาใดภาษาหนึ่งที่จัดให้โดยใช้เฉพาะอักขระในกล่องเครื่องมือ โปรแกรม / ฟังก์ชั่นของคุณควรแสดงจำนวนคำตอบที่มีอยู่แล้วในคำถามนี้ เมื่อคุณเขียนและโพสต์คำตอบภาษาและตัวละครที่คุณใช้จะถูกลบออกจากกล่องเครื่องมือและ 1 ภาษาใหม่และ 8 อักขระใหม่จะถูกเพิ่มแบบสุ่มเพื่อใช้เป็นกล่องเครื่องมือสำหรับคำตอบต่อไป กฎระเบียบ แต่ละคำตอบจะ: ส่งออกจำนวนคำตอบที่ถูกต้องมาก่อน มีชุดย่อยของอักขระที่ให้ไว้ในกล่องเครื่องมือสำหรับคำตอบนั้น (อนุญาตให้ทำซ้ำได้) เป็นหนึ่งในภาษาจากกล่องเครื่องมือที่มีให้ กล่องเครื่องมือต่อไปจะกำหนดโดยการนี้โปรแกรมหลาม หากต้องการสร้างกล่องเครื่องมือถัดไปให้ใส่ภาษาและอักขระที่เหลือพร้อมกับรหัสโพสต์ของคำตอบสุดท้าย รายการภาษาที่นี่คือภาษาทั้งหมดที่มีให้ลองออนไลน์ในเวลาที่โพสต์นี้ ตัวละครมีรหัสถ่าน 0-127 คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่นเป็นคำตอบของคุณ เนื่องจาก REPLs เป็นภาษาต่าง ๆ พวกเขาจึงไม่ได้รับอนุญาต (ใช้รุ่น TIO ของทุกภาษา) หากภาษาใช้การเข้ารหัสพิเศษอักขระควรถูกตีความเป็นไบต์ (ถอดรหัสจาก ASCII และเพิ่มด้วยศูนย์) กล่องเครื่องมือเริ่มต้นจะถูกสุ่มจากรหัสโพสต์คำถามนี้ ( 128464 ) มี 7 ภาษาที่จะเริ่มและฉันจะเพิ่มตัวอักษรechoprint0และ …

11
สร้าง US License Plate
รับหนึ่งในสิ่งต่อไปนี้เป็นอินพุต: AK,AR,AS,AZ,CA,CT,DC,FL,GA,IL,IN,IA,KS,KY,LA,MD,MI,MN,MS,NV,NH,NJ,NM,NY,NC,ND,MP,OH,OK,OR,PA,PR,RI,SC,TN,TX,UT,VT,VA,WA,WI (พร้อมคำพูด) "AK","AR","AS","AZ","CA","CT","DC","FL","GA","IL","IN","IA","KS","KY","LA","MD","MI","MN","MS","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PA","PR","RI","SC","TN","TX","UT","VT","VA","WA","WI" สร้างและส่งออกป้ายทะเบียนแบบสุ่ม (สม่ำเสมอ) ของรูปแบบที่ตรงกับอินพุต หากมีหลายรูปแบบ (คั่นด้วยเครื่องหมายจุลภาค) ให้ใช้รูปแบบสุ่ม (สม่ำเสมอ): AK, IA, MS, MP, VT: AAA 000 AS: 0000 AZ, GA, WA: AAA0000 AR, KS, KY, LA, ND, OR: 000 AAA CA: 0AAA000 CT: AA-00000 DC: AA-0000 FL: AAA A00 IL: AA 00000 IN: 000A,000AA,000AAA,AAA000 MD: 0AA0000 MI: AAA …

10
หมุนเครื่องคิดเลข
บทนำ: ลองมาดูเครื่องคิดเลขมาตรฐานใน Windows: สำหรับความท้าทายนี้เราจะดูที่ปุ่มต่อไปนี้เท่านั้นและไม่สนใจสิ่งอื่น: 7 8 9 / 4 5 6 * 1 2 3 - 0 0 . + ท้าทาย: อินพุต: คุณจะได้รับสองอินพุต: หนึ่งคือสิ่งที่บ่งบอกถึงการหมุนเพิ่มทีละ 90 องศา อีกรายการหนึ่งคือรายการพิกัดที่แสดงถึงปุ่มที่กดบนเครื่องคิดเลขแบบหมุน ขึ้นอยู่กับอินพุตแรกเราหมุนเค้าโครงดังกล่าวข้างต้นตามเข็มนาฬิกาโดยเพิ่มทีละ 90 องศา ดังนั้นถ้าอินพุต0 degreesมันยังคงเป็นอยู่ แต่ถ้าอินพุต270 degreesนั้นจะหมุนตามเข็มนาฬิกาสามครั้ง (หรือทวนเข็มนาฬิกาหนึ่งครั้ง) นี่คือการจัดวางที่เป็นไปได้สี่อย่าง: Default / 0 degrees: 7 8 9 / 4 5 6 * 1 2 …

30
อวยพรผู้ใช้
สร้างโปรแกรมที่เรียกใช้เมื่อแสดงข้อความด้านล่าง: )-*-*-*^_^*-*-*-( | Welcome User! | )-*-*-*^_^*-*-*-( ใช้ฟังก์ชั่นหรือภาษาใด ๆ เพื่อตอบคำถามนี้สนุก รหัสที่สั้นที่สุดชนะ

23
นี่คือหมายเลข Harshad-Ramanujan-Number-ish ของ Hardy-Ramanujan หรือไม่
พื้นหลัง หมายเลข 1729 คือหมายเลข Hardy-Ramanujan คุณสมบัติที่น่าทึ่งของมันถูกค้นพบโดย S. Ramanujan (ผู้ซึ่งได้รับการยอมรับอย่างกว้างขวางว่าเป็นนักคณิตศาสตร์อินเดียที่ยิ่งใหญ่ที่สุด1 ) เมื่อ GH Hardy ได้ไปเยี่ยมเขาที่โรงพยาบาล ในคำพูดของฮาร์ดี: ฉันจำได้ว่าเคยไปพบเขาเมื่อเขาป่วยที่ Putney ฉันขี่รถแท็กซี่หมายเลข 1729 และตั้งข้อสังเกตว่าหมายเลขนั้นดูเหมือนจะค่อนข้างน่าเบื่อและฉันหวังว่ามันจะไม่ใช่ลางร้าย "ไม่" เขาตอบ "มันเป็นตัวเลขที่น่าสนใจมากมันเป็นจำนวนที่เล็กที่สุดที่สามารถแสดงออกได้ว่าเป็นผลรวมของสองลูกบาศก์ในสองวิธีที่ต่างกัน" นอกจากนั้นยังมีคุณสมบัติที่น่าอัศจรรย์อื่น ๆ อีกมากมาย หนึ่งในคุณสมบัติดังกล่าวคือมันเป็นหมายเลข Harshad นั่นคือผลรวมของตัวเลข (1 + 7 + 2 + 9 = 19) เป็นปัจจัยของมัน นั่นก็พิเศษเช่นกัน ดังที่ Masahiko Fujiwara แสดงให้เห็นว่า 1729 เป็นจำนวนเต็มบวกซึ่งเมื่อรวมตัวเลขเข้าด้วยกันจะสร้างผลรวมซึ่งเมื่อคูณด้วยการกลับรายการจะได้จำนวนเดิม: 1 + 7 + …

2
จับแกะเหล่านั้น!
คุณเป็นเกษตรกรและฝูงแกะของคุณได้หลบหนีไป! ไม่นะ! ล้อมรอบแกะเหล่านั้นด้วยการสร้างรั้วเพื่อเก็บไว้ ในฐานะเกษตรกรที่มีงบประมาณ จำกัด คุณต้องการใช้รั้วน้อยที่สุดเท่าที่จะเป็นไปได้ โชคดีสำหรับคุณพวกเขาไม่ใช่แกะที่ฉลาดที่สุดในโลกและไม่ต้องกังวลกับการเคลื่อนไหวหลังจากหนีรอดมาได้ งาน รับรายการพิกัดส่งเอาต์พุตจำนวนเซ็กเมนต์รั้วน้อยที่สุดที่จำเป็นเพื่อให้มีแกะ กฎระเบียบ มีแกะอยู่หากไม่สามารถเดินได้ (ไม่มีรูในรั้ว) คุณไม่จำเป็นต้องมีแกะทั้งหมดในรั้วหนึ่งบล็อก - อาจมีหลายพื้นที่ที่ไม่พอใจไม่เป็นอิสระจากกัน ส่วนของรั้วนั้นเน้นไปในทิศทางที่สำคัญ tuple พิกัดแต่ละอันแสดงถึงแกะตัวเดียว ข้อมูลที่ป้อนจะต้องเป็นจำนวนเต็มบวกx>0และy>0สามารถจัดรูปแบบอย่างเหมาะสมสำหรับภาษาของคุณ เช่น: {{1,1},{2,1},{3,7}, .. }หรือ[1,2],[2,1],[3,7], .. ช่องว่างภายในพื้นที่ไม่พอใจไม่เป็นไร คุณไม่สามารถสันนิษฐานได้ว่าพิกัดป้อนเข้าในลำดับเฉพาะใด ๆ ตัวอย่างเช่นแกะเดียวต้องมี4ส่วนรั้วที่จะถูกบรรจุอย่างเต็มที่ กรณีทดสอบ [1,1] 4 [1,1],[1,2],[2,2] 8 [2,1],[3,1],[2,3],[1,1],[1,3],[3,2],[1,2],[3,3] 12 [1,1],[1,2],[2,2],[3,7],[4,9],[4,10],[4,11],[5,10] 22 [1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9] 36 [1,1],[2,2],[3,3],[4,4],[6,6],[7,7],[8,8],[9,9] 32 [2,1],[8,3],[8,4] 10 หมายเหตุ คุณสามารถสมมติว่าพิกัดอินพุตนั้นถูกต้อง อัลกอริทึมของคุณควรทำงานในเชิงตรรกะสำหรับจำนวนเต็มขนาดใหญ่ที่สมเหตุสมผล (ขึ้นอยู่กับค่าสูงสุดของภาษาที่รองรับ) คำตอบโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบไม่เป็นไร นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!
16 code-golf 

17
Mayweather vs McGregor: เตรียมรางวัลเงินสด
บทนำ ในวันที่ 26 สิงหาคม 2017 Floyd Mayweather จูเนียร์จะเผชิญหน้ากับConor McGregorในการแข่งขันชกมวย ผู้เข้าร่วมทั้งสองจะได้รับปรากฎการณ์ 100 ล้านดอลลาร์! น่าเสียดายที่เรายังไม่มีเงิน แต่เราสามารถเตรียมกระเป๋าเอกสารใบใหญ่ที่จะบรรจุธนบัตรทั้งหมดได้ _________________________ | | |=======================================| | $ $$$$$ $$$$$ $ $ | | $ $ $ $ $ $ $$$ $$$ | | $ $ $ $ $ $ $$$ $ | | $ $$$$$ $$$$$ $ …

16
ค้นหา Anagrams ทั้งหมด!
แม้จะมีคำถาม 17 ข้อที่ติดแท็กแอนนาแกรมแต่เราก็ยังไม่มีคำถามนี้ดังนั้นจึงเป็นเช่นนี้ งานของคุณ คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่เมื่อได้รับสตริงให้พิมพ์แอนนาแกรมที่เป็นไปได้ทั้งหมด สำหรับวัตถุประสงค์ของคำถามนี้แอนนาแกรมคือสตริงที่มีอักขระเหมือนกันกับสตริงดั้งเดิม แต่ไม่ใช่สำเนาที่แน่นอนของสตริงดั้งเดิม แอนนาแกรมไม่จำเป็นต้องเป็นหรือมีคำที่แท้จริง อินพุต คุณอาจยอมรับสตริงซึ่งอาจมีความยาวใด ๆ > 0 โดยวิธีการอินพุตมาตรฐาน มันอาจมีอักขระ ASCII ใด ๆ เอาท์พุต คุณสามารถส่งออกแอนนาแกรมที่เป็นไปได้ทั้งหมดของสตริงที่ป้อนเข้าด้วยวิธีมาตรฐาน คุณต้องไม่ส่งออกสตริงเดียวกันสองครั้งหรือส่งออกสตริงเท่ากับอินพุต กฎอื่น ๆ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต เกณฑ์การให้คะแนน นี่คือโค้ดกอล์ฟอย่างน้อยไบต์ชนะ

12
การนับจำนวนเต็มการคูณจำนวนเต็ม N-bit
ป.ร. ให้ไว้เป็นจำนวนเต็มบวกNการส่งออกจำนวนคู่ของจำนวนเต็มดังกล่าวว่า0 <= a <= b < 2**Na*b >= 2**N กฎระเบียบ คุณอาจคิดว่าNน้อยกว่าหรือเท่ากับความกว้างบิตสูงสุดสำหรับจำนวนเต็มในภาษาของคุณ (เช่นสำหรับ C Nจะไม่เกิน32หรือ64ขึ้นอยู่กับสถาปัตยกรรมของเครื่อง) Nถ้าภาษาของคุณจะสามารถจัดการจำนวนเต็มพลกว้างแล้วมีขอบเขตไม่มีตอนบน กรณีทดสอบ 1 0 2 3 3 19 4 96 5 437 6 1876 7 7804 8 31904 9 129170 10 520135 11 2088143 12 8369175 13 33512744 14 134128704 15 536681553 16 2147082274

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