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

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

6
แปลงเวลาเป็นสตริง
ปัญหา วันหนึ่งเจ้านายของคุณก็เดินมาหาคุณและบอกคุณว่าเขาต้องรู้เวลา เขายังคงยืนยันหลังจากที่คุณชี้ไปที่นาฬิกาเหนือศีรษะของคุณโดยตรงและข่มขวัญเขามีคดีร้ายแรงที่ทำให้เกิดภาวะซึมเศร้าซึ่งทำให้เขาไม่สามารถเห็นตัวเลขบนนาฬิกาได้ ในขณะที่คุณยังสงสัยว่ามีใครบางคนที่ไม่สามารถมองเห็นตัวเลขสามารถบริหาร บริษัท ได้อย่างไรเขาบอกให้คุณ "ทำอะไรสักอย่างกับเรื่องนี้" ไม่ว่าจะเป็นอะไร ตอนนี้งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่กำหนดเวลาอินพุตด้วยชั่วโมงและนาที (ไม่บังคับว่าเป็นวินาที) (ชั่วโมงเป็นแบบ 24 ชั่วโมง) จะส่งประโยคภาษาอังกฤษที่อ่านได้ซึ่งไม่มีตัวเลข ไม่จำเป็นต้องใช้เวลาสักครู่ ตัวอย่างเช่น08:45:15ควรส่งออกquarter to nine o'clock AM กรณีทดสอบ 00:00:00 > twelve night 12:00:00 > twelve noon 06:00:00 > six o'clock AM 18:00:00 > six o'clock PM 06:15:00 > quarter past six o'clock AM 18:45:00 > quarter to …

6
แปลโปรแกรม Glypho
เมื่อได้รับอินพุตของโปรแกรมGlyphoใด ๆ ที่ถูกต้องให้ส่งออกคู่ของ "มนุษย์ที่อ่านได้" Glypho เป็นแนวคิด esolang ที่น่าสนใจ: การอ้างอิงการเรียนการสอนให้ที่นี่ สำหรับแต่ละคำสั่งตัวอักษร abcd แสดงถึงสัญลักษณ์ที่ประกอบไปด้วยแต่ละคำสั่ง a หมายถึงสัญลักษณ์เฉพาะอันแรก b หมายถึงสัญลักษณ์เฉพาะอันที่สองเป็นต้น aaaa ..... n NOP - no operation; do nothing aaab ..... i Input - push input onto top of stack aaba ..... > Rot - pops top stack element and pushes to bottom of …

8
ลำดับการเรียงสับเปลี่ยนเกลียว
เราสามารถสะสมจำนวนธรรมชาติในเกลียวเป็นรูปสี่เหลี่ยมผืนผ้า: 17--16--15--14--13 | | 18 5---4---3 12 | | | | 19 6 1---2 11 | | | 20 7---8---9--10 | 21--22--23--24--25 แต่ตอนนี้เรามีพวกมันอยู่บนตะแกรงสี่เหลี่ยมเราสามารถคลายเกลียวในลำดับที่แตกต่างกันเช่นไปตามเข็มนาฬิกาเริ่มทิศเหนือ: 17 16--15--14--13 | | | 18 5 4---3 12 | | | | | 19 6 1 2 11 | | | | 20 7---8---9 10 | …

8
ใครจะชนะเกมฟุตบอล?
การแข่งขันชิงแชมป์อเมริกันฟุตบอลSuper Bowl 50กำลังเกิดขึ้นวันนี้เวลา 23:30 น. UTC (และคุณสามารถรับชมการถ่ายทอดสดออนไลน์ได้ ) ความท้าทายนี้ถูกสร้างขึ้นเพื่อเฉลิมฉลอง ในเกมอเมริกันฟุตบอลสองทีมแข่งขันกันเพื่อให้ได้คะแนนมากที่สุดและมีหกวิธีในการทำคะแนนเหล่านี้ เราจะให้คำย่อแต่ละคำ: สนามฟุตบอล - FG: 3 คะแนน ทัชดาวน์ - TD: 6 คะแนน Extra point - XP: 1 point - สามารถทำคะแนนได้โดยตรงหลังจากดาว์น การแปลงสองจุด - XD(เช่นจุดพิเศษ แต่มีความสุขมากขึ้น): 2 คะแนน - สามารถทำคะแนนได้โดยตรงหลังจากดาว์น ความปลอดภัย - S: 2 คะแนน Fair catch kick - FCK: 3 points (เล่นยากมาก) …

18
ค้นหาผลรวมไขว้ที่ n
กำหนดอินพุตของจำนวนเต็มบวกเดียวให้เอาต์พุต "ผลรวมข้ามทางเลือก" ที่สอดคล้องกับจำนวนเต็มนั้น n=5นำตัวอย่างของการป้อนข้อมูล หากต้องการหาผลรวมแบบข้ามทางเลือกอันดับแรกให้สร้างตารางสี่เหลี่ยมที่มีความกว้างและความสูงnซึ่งเริ่มจากซ้ายไปขวาและบนลงล่างเริ่มต้นที่1และเพิ่มขึ้นทีละตำแหน่ง: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 จากนั้นนำผลรวมจากกริดที่เป็น "กากบาท" (นั่นคือทั้งเส้นทแยงมุมรวมกัน): 1 5 7 9 13 17 19 21 25 1 5 7 9 13 17 19 21 …

4
ระเบิดแมว!
ท้าทาย คุณจะสร้างโปรแกรม / ฟังก์ชั่นที่รับความยาวของสตริงnและ: ทำให้ถ่านที่เป็นศูนย์กลางของพื้นที่ที่kth k = (n+1)/2นี่จะเป็นที่ตั้งของศูนย์พื้นของคุณ วางส่วนที่เหลือของตัวอักษรที่ไม่ใช่ช่องว่างจัดเรียงแบบสุ่มรอบศูนย์พื้น nระยะห่างจากถ่านพีทาโกรัสต้องไม่เกิน ส่งออกผลลัพธ์ หากคุณต้องการคำชี้แจงดูตัวอย่างด้านล่าง กฎระเบียบ ช่องโหว่มาตรฐานใช้! I / O ต้องอยู่ในรูปของสตริง การป้อนข้อมูลจะเป็นเลขคี่เสมอเพื่อให้แน่ใจว่าคุณมีถ่านส่วนกลางที่จะนำไปที่ศูนย์ดิน ผลลัพธ์ที่ถูกต้องควรเกิดขึ้นกับความน่าจะเป็นที่ไม่ใช่ศูนย์ นี่คือรหัสกอล์ฟ ; รหัสที่สั้นที่สุดเป็นไบต์ชนะ! ตัวอย่าง การป้อนข้อมูล: qwert ขอบเขตของการระเบิดเล็ดลอดออกมาจากพื้นดินเป็นศูนย์ (เครื่องหมายของสถานที่ที่ถูกต้อง x สำหรับส่วนที่เหลือของตัวอักษรที่จะ): x xxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxexxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxx x ตัวอย่างผลลัพธ์: t r q e w

4
ภาษาคืออะไร
เมื่อเร็ว ๆ นี้การออกแบบ PPCGลีดเดอร์ได้รับมีปัญหาบางอย่างแยกคำตอบhtml ที่ส่วนหัว ในการท้าทายนี้คุณจะต้องทำการยิงของตัวเองในการแยกส่วนหัวคำตอบ ตัวอย่างกรณีทดสอบ อินพุตตัวอย่างเหล่านี้( ไม่ใช่กรณีทดสอบจริง) ดังนั้นคุณจึงสามารถทราบได้ว่าอินพุทอาจเป็นอย่างไร Input: <h1>Python 3, 32 bytes</h1> Desired Output: Python 3 Input: <h1>JavaScript, 13 chars / 32 bytes</h1> Desired Output: JavaScript Input: <b>VeryBadlyFormattedHeader v3 : (32 bytes)</b> สเป็ค โปรแกรมของคุณควรมีขนาด 150 ไบต์หรือต่ำกว่า คุณจะได้รับบรรทัด html ของส่วนหัวคำตอบคุณจะต้องพยายามทำอย่างดีที่สุดเพื่อแยกภาษาออกมาเป็นผลสำเร็จ ข้อมูลที่ป้อนอาจมีอักขระ Unicode กรณีการส่งออกมีความสำคัญ การทดสอบ Github สรุปสาระสำคัญกับกรณีทดสอบ มีหนึ่งกรณีทดสอบต่อบรรทัด รูปแบบคือ: …

2
เอาท์พุทตัวเลขฐาน quater- จินตภาพในไบนารี
เขียนฟังก์ชั่นหรือโปรแกรมที่แสดงผลฐาน Quater-จินตภาพที่แสดงเป็นเลขฐานสอง จำนวนฐานคือ 2 iโดยที่iคือรากที่สองของ -1 ดูจำนวนคอมเพล็กซ์สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับฉัน ตำแหน่งหลักแต่ละตำแหน่งสามารถไปได้ตั้งแต่ 0 ถึง 3 (ควอเทอร์นารี) เนื่องจากแต่ละส่วนจริงและจินตภาพจะมีขนาดใหญ่กว่าเดิมจริงและจินตภาพ -4 เท่า ตัวเลขสี่ในไบนารีมีดังนี้0: 00, 1: 01, และ2: 103: 11 รายละเอียดของตำแหน่งหลัก: re im 16 -8i -4 2i 1 -0.5i, etc. 4 0 1 0 3 0 0 (quaternary representation) 01 00 11 00 00 (binary representation) จำนวน100110000คือ 1x16 …

1
การหาพื้นที่พิเศษในสี่แยกวง
นี่คือปริศนาเรขาคณิตที่ท้าทายสำหรับคุณ! ป.ร. ให้ไว้เป็นวงกลมAและnวงการอื่น ๆB[n]พบว่าพื้นที่ทั้งหมดที่มีอยู่ภายในAนั่นคือไม่ได้Bอยู่ภายในวงกลมของใด ๆ รหัสของคุณควรสั้นที่สุด อินพุต ข้อมูลที่คุณป้อนควรมีข้อมูลต่อไปนี้: Aจำนวนจุดลอยตัวเพื่อเป็นตัวแทนของรัศมีของวงกลม รายการหมายเลขลอยจุด A Bไปแทนรัศมีของวงการใน Bรายชื่อศูนย์ของวงการใน โปรแกรมของคุณอาจคาดหวังว่าศูนย์ในพิกัดเชิงขั้วหรือคาร์ทีเซียน คุณอาจได้รับจำนวนnวงกลมใน B หรือไม่จำเป็นต้องป้อนข้อมูลนี้ก็ได้ มันจะได้รับการสันนิษฐานว่าศูนย์กลางของวงกลมเป็นที่มาที่เป็นจุดA(0, 0) มีการรับประกันว่าจะไม่มีวงกลมสองวงBเหมือนกัน แต่ไม่รับประกันว่า: วงกลมทั้งหมดของBจุดตัดA, ศูนย์กลางทั้งหมดBอยู่ด้านนอกAหรือไม่มีวงกลมสองวงที่อยู่Bตรงข้ามกัน ตรวจสอบให้แน่ใจว่าโซลูชันของคุณสามารถจัดการกับเคสแบบขอบต่างๆ คุณอาจได้รับการป้อนข้อมูลในลำดับใด ๆ และในรูปแบบของการป้อนข้อความ (ผ่าน stdin หรือเทียบเท่าภาษาของคุณ) พารามิเตอร์ฟังก์ชั่นหรืออาร์กิวเมนต์บรรทัดคำสั่ง หากคุณเลือกที่จะรับข้อความควรมีตัวคั่น ASCII หนึ่งหรือสองตัวอักษรที่พิมพ์ได้ระหว่างส่วนของอินพุต เอาท์พุต โปรแกรมหรือฟังก์ชั่นการส่งออกควรเป็นจำนวนจุดลอยตัวเดียวที่เป็นตัวแทนของพื้นที่ทั้งหมดของคุณไม่ได้อยู่ในแวดวงของA Bคำตอบของคุณควรแม่นยำถึงตัวเลขที่มีนัยสำคัญอย่างน้อยสามตัวสำหรับกรณีทดสอบทั้งหมด มีการใช้กฎเกณฑ์ทั่วไปเกี่ยวกับกอล์ฟ โซลูชันของคุณไม่ควรใช้จุดสุ่มตัวอย่างภายในวงกลมเพื่อกำหนดพื้นที่ บิวด์อินที่ค้นหาตำแหน่งทางแยกของวงกลมโดยอัตโนมัติค้นหาพื้นที่ภายในจุดตัดของวงกลมหรือแก้ไขปัญหานี้ทันทีไม่ได้รับอนุญาต กรณีทดสอบ ในแต่ละภาพวงกลมAจะมีเส้นขอบสีน้ำเงินโดยมีวงกลมที่ล้อมรอบด้วยBสีเขียวและดำ พื้นที่ที่ควรส่งคืนจะถูกเติมสีแดง (ขอขอบคุณRainer P. เป็นพิเศษสำหรับการตรวจสอบวิธีแก้ไขปัญหาของฉัน) กรณีทดสอบ 1: A = …

5
ขุดในปี 2559 ใน Bitcoins! PCG.SE ปริศนาปีใหม่ 2559
ในโปรโตคอล Bitcoin 2016เป็นจำนวนที่พิเศษมาก "ความยาก" ในการค้นหาแฮชเพื่อสร้างบล็อกใหม่จะถูกปรับทุก ๆ 2,016 บล็อกเพื่อการเปลี่ยนแปลงโดยประมาณทุกๆสองสัปดาห์ หมายเลขนี้ถูกเลือกเนื่องจากความยากลำบากในการปรับตัวเองเพื่อให้ทุกบล็อกใช้เวลาประมาณ 10 นาทีและในอีกสองสัปดาห์จะมี 2 × 7 × 24 × 6 = 2,016 ระยะเวลาสิบนาที เพื่อเป็นการระลึกถึงความบังเอิญเชิงตัวเลขปัญหาปีใหม่ในปีนี้เป็นเรื่องของ Bitcoin โดยเฉพาะอัลกอริทึมคร่ำเครียดที่ใช้เพื่อลงนามบล็อค SHA-256 งานของคุณคือการสร้างโปรแกรมที่จะรับไบต์ (อย่างน้อย ASCII) และส่งออกเป็น nonce ในไบต์ (ในรูปแบบที่คุณเลือก) ที่จะผลิตกัญชา SHA-256 ที่มี2016อยู่ในการเป็นตัวแทนbase64เมื่อผนวกเข้ากับต้นฉบับ อินพุตไบต์ ต่อไปนี้เป็นตัวอย่างของโซลูชันที่ถูกต้องความสุภาพของเครื่องยนต์ที่ผู้คนสร้างไว้แล้ว > foo Nonce: 196870 SHA256 hash: OCUdDDtQ42wUlKz2016x+NROo8P2lbJf8F4yCKedTLE= > bar Nonce: 48230 SHA256 hash: …

8
เรียงลำดับการตัดแบ่ง
พิจารณาลำดับที่อยู่บนพื้นฐานของความสัมพันธ์ที่เกิดขึ้นอีก, เริ่มต้นด้วยf(n) = f(n-1)+f(n-2) f(1) = x1, f(2) = x2สำหรับx1 = 2, x2 = 1ลำดับเริ่มต้นดังนี้: 2 1 3 4 7 11 18 29 47 76 123 199 322 521 843 การต่อสิ่งนี้เข้ากับสตริงจะทำให้: 213471118294776123199322521843 y(n) > y(n-1)ตอนนี้แบ่งรายการนี้ลงในตัวเลขที่เป็นไปได้น้อยที่สุดที่จะช่วยให้ เริ่มต้นด้วยหมายเลขแรกจากนั้นตัวเลขที่สองเป็นต้นหมายเลขผลลัพธ์แรกควรเป็นตัวเลขหลักเดียวเสมอ ปัดตัวเลขสุดท้ายด้วยเลขศูนย์ที่ต้องการ 2 13 47 111 829 4776 12319 93225 218430 คุณจะได้ตัวเลขสองตัว(x1, x2)เป็นอินพุตในรูปแบบที่สะดวกและความท้าทายคือการส่งออกรายการที่เรียงลำดับ กฎ: ฟังก์ชั่นและโปรแกรมก็โอเค …

14
สร้างส่วนโค้ง ASCII
ฉันชอบศิลปะ ascii และฉันเบื่อมากดังนั้นฉันจึงพบตัวละคร ASCII บางตัวและเริ่มทำสิ่งต่าง ๆ ปราสาทมาริโอ 8 บิตเขาวงกตและโค้ง ฉันพบว่าส่วนโค้งสามารถวางซ้อนกันได้อย่างง่ายดาย ╔═══════╗ ║╔═════╗║ ║║╔═══╗║║ ║║║╔═╗║║║ ╨╨╨╨─╨╨╨╨ ท้าทาย สร้างโปรแกรมฟังก์ชั่นหรือรูปแบบมาตรฐานอื่น ๆ ที่รับจำนวนเต็มมากกว่าหรือเท่ากับ 0 (เว้นแต่ว่าคุณกำลังทำโบนัส) และเอาท์พุท ASCII art ตามจำนวนซุ้มประตูที่ระบุ กรณีทดสอบ การป้อนข้อมูล: 7 เอาท์พุท: ╔═════════════╗ ║╔═══════════╗║ ║║╔═════════╗║║ ║║║╔═══════╗║║║ ║║║║╔═════╗║║║║ ║║║║║╔═══╗║║║║║ ║║║║║║╔═╗║║║║║║ ╨╨╨╨╨╨╨─╨╨╨╨╨╨╨ สำรอง: +-------------+ |+-----------+| ||+---------+|| |||+-------+||| ||||+-----+|||| |||||+---+||||| ||||||+-+|||||| ||||||| ||||||| --------------- การป้อนข้อมูล: 1 …

3
คำสั่ง Abelian
พื้นหลังบางส่วน ในวิชาคณิตศาสตร์เป็นกลุ่มเป็น tuple ( G , •) ที่Gเป็นชุดและ•อยู่ในการดำเนินการเกี่ยวกับGดังกล่าวว่าสำหรับการใด ๆ สององค์ประกอบxและy ที่ในG , x • ปียังอยู่ในG สำหรับx , y , zในG , สัจพจน์พื้นฐานของกลุ่มมีดังนี้: Gถูกปิดภายใต้•, คือx • yในG การดำเนินการ•มีความสัมพันธ์เช่นx • ( y • z ) = ( x • y ) • z Gมีองค์ประกอบตัวตนนั่นคือมีeในGเช่นx • e = xสำหรับทุกx การดำเนินการ•เป็นinvertableคือมีอยู่, ขในGดังกล่าวว่า• x = …

16
ส่งออกผลิตภัณฑ์บางส่วน
ในการคูณยาวหลังจากคูณตัวเลขคุณจะเหลือผลิตภัณฑ์บางส่วนในการท้าทายนี้คุณจะส่งออกผลิตภัณฑ์บางส่วนเหล่านั้น เนื่องจากการคูณแบบยาวนั้นมีความยาวการชดเชยรหัสของคุณจะต้องสั้นที่สุดเท่าที่จะทำได้ ตัวอย่าง 34, 53 102, 1700 48, 38 384, 1440 361, 674 1444, 25270, 216600 0, 0 0 1, 8 8 ข้อมูลจำเพาะ อินพุต / เอาท์พุตอาจอยู่ในรูปแบบที่เหมาะสมเช่นอาร์เรย์สตริงที่คั่นด้วยเครื่องหมายจุลภาค (หรือตัวคั่นอื่น ๆ ที่ไม่ใช่ตัวเลข) รายการอาร์กิวเมนต์ของฟังก์ชัน ฯลฯ ผลิตภัณฑ์บางส่วนจะต้องอยู่ในลำดับที่เพิ่มขึ้น หากผลิตภัณฑ์บางส่วนเป็น0คุณสามารถเลือกได้ว่าต้องการส่งออกหรือไม่ นี่คือโค้ดกอล์ฟที่สั้นที่สุดในหน่วยไบต์!

2
เล่นบิลเลียด
ในสนามกอล์ฟรหัสนี้คุณจะต้องมีการกำหนดทิศทางของการยิงที่สั้นที่สุดที่นิยมตรงnเบาะรองนั่งก่อนที่จะตกไปอยู่ในกระเป๋า โต๊ะบิลเลียดเป็นโต๊ะพูล 6 พ็อตที่มีคุณสมบัติดังต่อไปนี้: ขนาดเป็นตัวแปร ( a x b ) ไม่มีแรงเสียดทาน: ลูกบอลจะกลิ้งอย่างถาวรจนกว่ามันจะตกลงไปในกระเป๋า ขนาดกระเป๋าและลูกบอลเกือบเป็นศูนย์ ซึ่งหมายความว่าลูกจะตกอยู่ในกระเป๋าเฉพาะในกรณีที่พวกเขามีตำแหน่งเดียวกัน ลูกบอลถูกวางไว้ที่รูซ้ายล่างที่จุดเริ่มต้น (แต่ไม่ตกอยู่ในนั้น) สร้างโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่ใช้มิติ ( , ข ) ของตารางและจำนวนของหมอนอิงที่จะตีnเป็น input และผลตอบแทนในมุมองศาของเส้นทางที่สั้นที่สุดกดปุ่มตรงnเบาะรองนั่งก่อนที่จะตกไปอยู่ในกระเป๋า a > 0 b > 0 0 <= n <10,000000 0 < alpha <90 (เป็นองศา) ความแม่นยำ: อย่างน้อย 10 ^ -6 ตัวอย่าง : ด้วยa = 2, b …

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