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

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

16
นาฬิกาดิจิตอล
นาฬิกาดิจิตอลจำนวนมากแสดงเวลาโดยใช้ตัวเลขแบบง่ายประกอบด้วยแสงที่แตกต่างกันเจ็ดแบบเท่านั้นที่เปิดหรือปิด: เมื่อมิเรอร์ในแนวนอนตัวเลข018จะไม่เปลี่ยนเพราะมันมีความสมมาตร นอกจากนี้ตัวเลข2และ5รับแลกเปลี่ยน2กลายเป็น5และในทางกลับกัน ตัวเลขอื่น ๆ ทั้งหมดจะไม่ถูกต้องเมื่อทำมิเรอร์ ดังนั้นด้วยนาฬิกาดิจิตอลตลอด 24 ชั่วโมงจึงมีการอ่านนาฬิกาจำนวนมากเช่นนั้นภาพสะท้อนของจอแสดงผลดิจิตอลก็เป็นนาฬิกาที่ถูกต้องเช่นกัน งานของคุณคือการส่งออกการอ่านนาฬิกาดังกล่าวทั้งหมดพร้อมกับการอ่านมิร์เรอร์ ยกตัวอย่างเช่น22:21กลายเป็น15:55และจะกลายเป็น00:15 21:00บนมืออื่น ๆ , 12:34หรือ16:27จะไม่ถูกต้องเมื่อมิเรอร์ (ตัวเลข34679กลายเป็นที่ไม่ถูกต้อง) และไม่เป็น22:22หรือ18:21เพราะเป็นมีเพียง 24 ชั่วโมงในหนึ่งวันและ 60 นาทีในชั่วโมงไม่มีนาฬิกาสติจะแสดงหรือ55:5512:81 งาน เขียนโปรแกรมหรือฟังก์ชั่นที่ไม่มีอินพุตและเอาต์พุตคู่ที่ถูกต้องทั้งหมดตามลำดับจากน้อยไปมากดังแสดงด้านล่าง: 00:00 - 00:00 00:01 - 10:00 00:05 - 20:00 00:10 - 01:00 00:11 - 11:00 00:15 - 21:00 00:20 - 05:00 00:21 - 15:00 00:50 - 02:00 …

10
ฉันต้องทำลายอะไรในโลกนี้?
พลังงานที่มีผลผูกพันแรงโน้มถ่วงของดาวเคราะห์เป็นปริมาณของพลังงานที่จำเป็นในการแยกทุกชิ้นเล็ก ๆ ของมันเพื่อให้ไม่มีชิ้นจะโคจรหรือชนกับอีกชิ้นหนึ่ง วิกิพีเดียมีสูตรนี้: E= 3 G M25 RE=3GM25RE = \frac{3GM^2}{5R} โดยที่ G คือค่าคงตัวความโน้มถ่วง (6.672e-11 m 3 • kg -1 • s -2 ), M คือมวลและ R คือรัศมี ฉันสามารถสร้างความท้าทายนี้ได้เพียงแค่คำนวณสิ่งนี้ในจูล (กก. •ม. 2 • s -2 ) แต่…ที่น่าเบื่อน่าเบื่อและนอกจากนี้ทุกคนไม่เข้าใจจูล ดังนั้นให้แปลงเป็นหน่วยต่อไปนี้แทน Kilotons ของ TNT (4.184 ล้านล้านจูลชวเลข kilotons ) อาวุธนิวเคลียร์ฮิโรชิมา (62.76 ล้านล้านจูลชวเลข nukes ) …

14
ไบนารีเพรียบพร้อม
เรากำลังค้นหาลำดับ ใช้ตัวเลขธรรมชาติ 1,2,3,4,5,6,7,8,9,10,11,12,13,14... แปลงเป็นฐาน -2 1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110... Concatenateตัวเลขดังกล่าวข้างต้น 110111001011101111000100110101011110011011110... แบ่งหมายเลขนี้ในPrime-Chunks (chunks ที่มีจำนวนเฉพาะจำนวนหลัก) Primes จะถูกดำเนินการตามลำดับ2,3,5,7,11,13,17... [11][011][10010][1110111][10001001101][0101111001101][1110...] และหาผลรวมของตัวเลขของแต่ละอัน Primes 2 3 5 7 11 13 17 Chunks [11][011][10010][1110111][10001001101][0101111001101][1110...] SumOfDigits 2 2 2 6 5 8 The Sequence 2, 2, 2, 6, 5, 8, 9, 10, 14, 22, 11, 18, 25, 27, 32, 21, …

7
จำนวนขององค์ประกอบที่ไม่ว่างที่แตกต่างกันของการขยายฐานสอง
การเรียงลำดับคือลำดับใด ๆ ที่คุณสามารถหาได้จากอีกอันด้วยการลบจำนวนอักขระใด ๆ subsequences ไม่ว่างเปล่าที่แตกต่างของ100มี0, 1, 00, ,10 100subsequences ไม่ว่างเปล่าที่แตกต่างของ1010มี0, 1, 00, 01, 10, 11,010 , 100, 101, ,1101010 เขียนโปรแกรมหรือฟังก์ชั่นที่ให้จำนวนเต็มบวก nส่งกลับจำนวนของ subsequences ไม่ว่างเปล่าที่แตกต่างกันของการขยายตัวไบนารีของn ตัวอย่าง: ตั้งแต่4เป็น100ในไบนารีและเราเห็นว่ามันมีห้า subsequences f(4) = 5ไม่ว่างเปล่าที่แตกต่างกันข้างต้นดังนั้น เริ่มต้นจากn = 1ลำดับเริ่มต้น: 1, 3, 2, 5, 6, 5, 3, 7, 10, 11, 9, 8, 9, 7, 4, 9, 14, …

6
Kolakoski เหมือนลำดับการอ้างอิงตนเอง
นี่คือวิธีการกำหนดลำดับ Kolakoski (OEIS A000002 ): ลำดับ Kolakoski เป็นลำดับที่มี 1และ2และnองค์ประกอบที่สามของลำดับคือความยาวของnกลุ่ม th ขององค์ประกอบที่เท่าเทียมกัน (เรียกใช้) ในลำดับนั้น 20 คำแรกของลำดับและความยาวตามลำดับคือ: 1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 - --- --- - - --- - --- --- - --- --- - 1 2 …

6
ฉันไม่ชอบการเปลี่ยนแปลง!
การป้อนข้อมูล: สองสายที่ไม่มีบรรทัดใหม่หรือช่องว่าง เอาท์พุท: ทั้งสองสายการป้อนข้อมูลบนเส้นที่แยกต่างหากที่มีช่องว่างในกรณีที่จำเป็น†หนึ่งในสองสาย และสายที่สามกับตัวละครA, R, Mและคิดเป็นเพิ่ม , ลบออก , การแก้ไขและเปลี่ยนแปลง †เราเพิ่มช่องว่างให้กับสตริงป้อนข้อมูลด้านบนหรือด้านล่าง (ถ้าต้องการ) เป้าหมายของการท้าทายนี้คือการส่งออกมีจำนวนน้อยที่สุดของการเปลี่ยนแปลง ( ARM) เป็นไปได้ยังเป็นที่รู้จักLevenshtein ระยะทาง ตัวอย่าง: สมมติว่าสตริงอินพุตเป็นABCDEFและAFBECDจากนั้นผลลัพธ์จะเป็น: A B CDEF AFBECD A A RR ต่อไปนี้เป็นตัวอย่างเอาต์พุตที่ไม่ถูกต้องอื่น ๆ ที่เป็นไปได้ (และมีอีกมาก): ABCDEF AFBECD MMMMM A BCDEF AFBECD A MMMR AB CDEF AFBECD MAMMMR ABC DEF AFBECD MMAMMR ABC DEF AFBECD …
19 code-golf  string 

15
ค้นหารายการอย่างละเอียด
สำหรับความท้าทายนี้รายการจะถือว่าถูกต้องหากว่าประกอบด้วยจำนวนเต็มและรายการที่ถูกต้องทั้งหมด (นิยามแบบเรียกซ้ำ \ o /) สำหรับความท้าทายนี้ให้รายการที่ถูกต้องและจำนวนเต็มกลับรายการของความลึกทั้งหมดที่สามารถพบจำนวนเต็ม ตัวอย่าง ลองพิจารณารายชื่อและจำนวนเต็ม[1, [2, [3, [1, 2, 3], 4], 1], 1] 1จากนั้นเราสามารถดึงรายการเช่นนี้: Depth 0 1 2 3 Num 1 2 3 1 2 3 4 1 1 คุณจะพบว่าการแสดงขึ้นที่ระดับความลึก1 0, 1, 3ดังนั้นผลลัพธ์ของคุณควรอยู่0, 1, 3ในรูปแบบที่สมเหตุสมผล (ลำดับไม่สำคัญ) ความลึกอาจเป็นดัชนี 0- หรือ 1 แต่โปรดระบุในสิ่งที่คุณส่ง กรณีทดสอบ (ดัชนี 0) สำหรับรายการ[1,[2,[3,4],5,[6,7],1],[[[[5,2],4,[5,2]]],6],3]: 1 -> …

21
มันสั่นไหวเป็นระยะหรือไม่?
ท้าทาย กำหนดรายการให้ตรวจสอบว่าการจัดกลุ่มรายการในการเพิ่มและลดองค์ประกอบจะส่งผลให้รายการของรายการขนาดเท่ากันหรือไม่ กล่าวอีกนัยหนึ่ง "จุดเปลี่ยน" ของรายการนั้นเว้นระยะเท่ากัน ตัวอย่าง นี่คือตัวอย่าง: 0, 3, 7, 5, 2, 3, 6 0, 3, 7เพิ่มขึ้น7, 5, 2ลดลงและ2, 3, 6เพิ่มขึ้น ดังนั้นนี่คือความจริง ตัวอย่างอื่น: 1, 4, 6, 8, 5, 3, 5, 7, 9 1, 4, 6, 8เพิ่มขึ้น8, 5, 3ลดลงและ3, 5, 7, 9เพิ่มขึ้น ดังนั้นนี่เป็นเท็จ กฎและข้อมูลจำเพาะ องค์ประกอบที่อยู่ติดกันจะไม่เท่ากัน ตัวเลขทั้งหมดสามารถสันนิษฐานได้ว่าอยู่ในช่วงหมายเลขที่เหมาะสมของภาษาของคุณ คุณอาจคิดว่าตัวเลขทั้งหมดเป็นจำนวนเต็มถ้ามันช่วยให้คุณส่งข้อมูลได้ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดชนะ ป้อนข้อมูลเป็นรายการในการแสดงและเอาท์พุทที่สมเหตุสมผลเช่นค่าความจริง / เท็จ …

5
นี่เป็นตารางที่แพ้หรือเปล่า?
มีเกมชื่อGet Homeที่เล่นบนกระดานหมากรุก ในเกมนี้มีชิ้นส่วนเดียวที่ผู้เล่นทั้งคู่หันกัน มีกฎบางอย่างที่สามารถเคลื่อนย้ายชิ้นส่วนได้ ที่เปิดให้ผู้เล่นจะต้องทำอย่างใดอย่างหนึ่งของการเคลื่อนไหวต่อไปนี้สำหรับบวกn ไม่มีที่ว่างขึ้น ไม่มีช่องว่างทางด้านซ้าย ช่องว่างnขึ้นและไปทางซ้าย (เส้นทแยงมุม) ผู้เล่นที่ย้ายชิ้นส่วนไปที่มุมซ้ายบนของกระดานชนะเกม ตอนนี้เราจะกำหนดแนวคิดของสี่เหลี่ยมจัตุรัสที่แพ้ ในวิดีโอนี้ (จากจุดที่ฉันมีความคิด) สี่เหลี่ยมจัตุรัสที่แพ้ถูกกำหนดให้เป็นสี่เหลี่ยมจัตุรัสซึ่งผู้เล่นที่เริ่มต้นเทิร์นของพวกเขาจะถูกบังคับให้ย้ายเพื่อให้คู่ต่อสู้บังคับให้ชนะ ตัวอย่างที่ง่ายที่สุดของสี่เหลี่ยมจัตุรัสที่แพ้คือสี่เหลี่ยมที่ (1,2) ชิ้นส่วนที่ (1,2) สามารถย้ายไปยังสถานที่ต่อไปนี้ ทั้งหมดนี้มีเส้นทางตรงสู่ชัยชนะสำหรับผู้เล่นคนต่อไป นอกจากนี้ยังตามด้วยช่องสี่เหลี่ยมใด ๆ ที่มีเส้นทางการเคลื่อนที่หนึ่งเส้นทางไปยังจตุรัสที่แพ้จะอนุญาตให้ผู้เล่นเริ่มต้นบนสี่เหลี่ยมนั้นเพื่อบังคับให้ชนะ ซึ่งหมายความว่าสี่เหลี่ยมจัตุรัสใด ๆ ที่ไม่ได้เคลื่อนย้ายออกไปจากจตุรัสที่แพ้ก็เป็นสี่เหลี่ยมจัตุรัสที่แพ้ด้วย นี่นำเรามาสู่นิยามที่ค่อนข้างเรียบร้อยของสี่เหลี่ยมจัตุรัสที่แพ้: สี่เหลี่ยมจัตุรัสที่สูญเสียเป็นสี่เหลี่ยมจัตุรัสซึ่งไม่มีการเคลื่อนที่ใดจะมาถึงสี่เหลี่ยมจัตุรัสอีกอันหนึ่งได้และ (0,0) เป็นสี่เหลี่ยมจัตุรัสที่แพ้ งาน เมื่อพิจารณาพิกัดของสี่เหลี่ยมจัตุรัสบนกระดานหมากรุกขนาดที่ไม่มีกฎเกณฑ์จะตัดสินว่ามันเป็นสี่เหลี่ยมจัตุรัสที่สูญหายหรือไม่ เอาท์พุทสองค่าหนึ่งสำหรับการสูญเสียสี่เหลี่ยมและหนึ่งสำหรับคนอื่น ๆ นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น กรณีทดสอบ นี่คือสี่เหลี่ยมที่หายไปทั้งหมดบนกระดานหมากรุก 8 คูณ 8 ตัว (ทำเครื่องหมายด้วย 0) 0 1 1 1 1 1 1 …

14
หมายเลข Lynch-Bell มีกี่หมายเลข
ท้าทาย ได้รับจำนวนเต็มnเป็น input ที่การส่งออกจำนวนตัวเลขที่ลินช์เบลล์ที่มีอยู่ในฐาน36 >= n >= 2n เอาต์พุตจะต้องอยู่ในฐาน 10 หมายเลข Lynch-Bell ตัวเลขคือหมายเลข Lynch-Bell หาก: ตัวเลขทั้งหมดไม่ซ้ำกัน (ไม่มีการซ้ำซ้อนของตัวเลข) ตัวเลขหารด้วยตัวเลขแต่ละหลัก มันไม่ได้มีศูนย์เป็นหนึ่งในหลัก เนื่องจากตัวเลขทั้งหมดจะต้องไม่ซ้ำกันและคุณมีชุดของตัวเลขหลักเดียวในแต่ละฐานมีจำนวน จำกัด ของหมายเลข Lynch-Bell ตัวอย่างเช่นในฐาน 2 มีหมายเลข Lynch-Bell เพียงหมายเลขเดียวเท่านั้น1เนื่องจากตัวเลขอื่น ๆ ทั้งหมดเป็นตัวเลขซ้ำหรือมี 0 ตัวอย่าง Input > Output 2 > 1 3 > 2 4 > 6 5 > 10 6 > 10 …

27
ค้นหาโพลีทองของฉัน!
สำหรับจุดประสงค์ของการท้าทายนี้polyphthongถูกกำหนดให้เป็นส่วนต่อเนื่องของ String ที่ประกอบด้วยสระและมีความยาวอย่างน้อย 2 ให้สตริงที่ไม่ว่างเปล่าเป็นอินพุตงานของคุณคือส่งออก polyphthongs ทั้งหมดที่มี . ตัวอย่างเช่น"abeoic"มีชิ้นส่วนที่ต่อเนื่องกัน (คั่นด้วยช่องว่าง) ต่อไปนี้: a b e o i c ab be eo oi ic abe beo eoi oic abeo beoi eoic abeoi beoic abeoic การลบสิ่งที่มีสิ่งอื่นที่ไม่ใช่เสียงสระหรือมีความยาวน้อยกว่า 2 เราจะได้โพลีทองที่เราต้องการ: eo oi eoi การส่งของคุณจะต้องปฏิบัติตามกฎต่อไปนี้: คุณสามารถเลือกตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่สำหรับ I / O แต่ตัวพิมพ์ออกจะต้องตรงกับตัวพิมพ์เล็ก เสียงสระคือaeiou(สำหรับตัวพิมพ์เล็ก) และAEIOU(สำหรับตัวพิมพ์ใหญ่) y/ Yไม่ถือว่าเป็นเสียงสระ อินพุตจะมีเฉพาะ ASCII …
19 code-golf  string 

27
คำนวณพื้นที่ของรูปหลายเหลี่ยมปกติ
รับจำนวนเต็มnที่ไหน3 <= n < 2^32คำนวณพื้นที่ของปกติn-gon กับ apothem ของ 1; n * tan(π / n)สูตรสำหรับซึ่งเป็น สำหรับผู้ที่ไม่ทราบว่า apothem คืออะไร: Apothem ของรูปหลายเหลี่ยมปกติคือส่วนของเส้นตรงจากจุดกึ่งกลางไปยังจุดกึ่งกลางของด้านใดด้านหนึ่ง เอาต์พุตพื้นที่ของn-gon เป็นจุดลอยตัวที่มีทศนิยมไม่ต่ำกว่า 8 ตำแหน่ง กรณีทดสอบ 3 5.1961524227 6 3.4641016151 10 3.2491969623 20 3.1676888065 99 3.1426476062 1697 3.1415962425 15000 3.1415926995 หมายเหตุ: กรณีทดสอบด้านบนมีตัวเลข 2 หลักมากกว่าที่คุณต้องการเพื่อส่งออก

30
สุ่มเลือกจากอาร์เรย์
ความท้าทายนี้ค่อนข้างง่าย: คุณจะได้รับอาร์เรย์จำนวนเต็มบวก (ไม่รวม 0) และต้องเลือกองค์ประกอบแบบสุ่มจากอาร์เรย์นี้ แต่นี่คือความบิดเบี้ยว: ความน่าจะเป็นของการเลือกองค์ประกอบขึ้นอยู่กับค่าของจำนวนเต็มซึ่งหมายความว่าเมื่อจำนวนเต็มที่โตขึ้นความน่าจะเป็นของการเลือกองค์ประกอบก็เป็นเช่นกัน! ตัวอย่าง [4, 1, 5]คุณจะได้รับอาร์เรย์ ความน่าจะเป็นของการเลือก 4 เท่ากับ4 หารด้วยผลรวมขององค์ประกอบทั้งหมดในอาร์เรย์ในกรณี4 / ( 4 + 1 + 5 ) = 4 / 10 =40%นี้ ความน่าจะเป็นของการเลือก 1 หรือ1 / 1010% อินพุต อาร์เรย์ของจำนวนเต็มบวก เอาท์พุต stdoutกลับจำนวนเต็มเลือกถ้าใช้วิธีการหรือโดยตรงพิมพ์ไป กฎระเบียบ นี่คือโค้ดกอล์ฟที่สั้นที่สุดในหน่วยไบต์ในภาษาใด ๆ ที่ชนะ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม

8
เส้นทางที่เหมาะสมผ่านเมทริกซ์
รับเมทริกซ์ที่ประกอบด้วยจำนวนเต็มบวกเอาท์พุทพา ธ ด้วยผลรวมต่ำสุดเมื่อเคลื่อนที่จากองค์ประกอบบนซ้ายไปขวาล่าง คุณสามารถเคลื่อนที่ในแนวตั้งแนวนอนและแนวทแยงมุม โปรดทราบว่าเป็นไปได้ที่จะเลื่อนขึ้น / ลง, ขวา / ซ้ายและแนวทแยงมุมไปทุกด้าน ตัวอย่าง: 1* 9 7 3 10 2 2 10 4* 1* 1* 1* 7 8 3 6 3 8 9 5* 7 8 10 2 5 2 1* 4 5 1 1 3 6 7 9* เส้นทางให้ผลรวมต่ำสุดจะมีเครื่องหมายดอกจันและผลในผลรวมต่อไปนี้: 1 + 4 …

12
การแปลงฐานจริง
เรามีความท้าทายเล็กน้อยสำหรับการแปลงฐาน แต่สิ่งเหล่านี้ดูเหมือนจะนำไปใช้กับค่าจำนวนเต็ม มาทำกับตัวเลขจริง! ความท้าทาย ปัจจัยการผลิต: จำนวน จริงบวกxแสดงในฐาน 10 ซึ่งสามารถนำมาเป็นทศนิยมความแม่นยำสองเท่าหรือเป็นสตริง เพื่อหลีกเลี่ยงปัญหาความแม่นยำจำนวนที่สามารถสันนิษฐานว่าจะเป็นมากกว่า 10 -6และน้อยกว่า 10 15 ฐานเป้าหมาย ข นี่จะเป็นจำนวนเต็มตั้งแต่ 2 ถึง 36 จำนวนเศษส่วนตัวเลข n นี่จะเป็นจำนวนเต็มตั้งแต่ 1 ถึง 20 เอาท์พุท: การเป็นตัวแทนของxในฐานขกับตัวเลขเศษส่วนn เมื่อคำนวณนิพจน์ผลลัพธ์ตัวเลขที่เกินn- th ควรถูกปัดเศษ (ไม่ปัดเศษ) ตัวอย่างเช่นx = 3.141592653589793ในฐานb = 3คือ10.0102110122...ดังนั้นสำหรับn = 3ผลลัพธ์จะเป็น10.010(ตัด) ไม่ใช่10.011(ปัดเศษ) สำหรับxและbที่สร้างจำนวน จำกัด ของตัวเลขในส่วนที่เป็นเศษส่วนอนุญาตให้ใช้การแทนค่าอนันต์ที่เทียบเท่ากัน (ตัดให้เหลือnหลัก) ยกตัวอย่างเช่นในทศนิยมนอกจากนี้ยังสามารถแสดงเป็น4.54.49999... ไม่ต้องกังวลเกี่ยวกับข้อผิดพลาดจุดลอย รูปแบบอินพุตและเอาต์พุต xจะได้รับโดยไม่มีศูนย์นำหน้า หากxเกิดขึ้นเป็นจำนวนเต็มคุณสามารถสันนิษฐานได้ว่าจะได้รับส่วนทศนิยมศูนย์ ( …

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