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

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

20
ค้นหา "ขนาดซ้ำ" ของรายการ
แรงบันดาลใจจากค้นหา“ขนาดยังไม่ได้เปิด” ของรายการ กำหนดขนาดแบบเรียกซ้ำRSของรายการที่ไม่มีรายการตามความยาว (จำนวนรายการที่มี) และขนาดแบบเรียกซ้ำของรายการที่มีรายการใด ๆ เป็นผลรวมของความยาวและขนาดแบบเรียกซ้ำของรายการเหล่านั้น ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกขนาดซ้ำของรายการที่กำหนดในไม่กี่ไบต์เท่าที่จะทำได้ อินพุตเป็นรายการและอาจมีตัวเลขสตริง (หากภาษาของคุณมี) และรายการที่คล้ายกัน ตัวอย่างเช่น: RS([]) = 0 RS([[]]) = 1 RS([4, 5, 6]) = 3 RS(["four", "five", "six"]) = 3 RS(["[[[[]]]]", "[][][][][]", "][][[[]]][]["]) = 3 RS([[4, 5, 6]]) = 4 RS([["four", "five", "six"]]) = 4 RS([["[[[[]]]]", "[][][][][]", "][][[[]]][]["]]) = 4 RS([[4], …

30
Robbers: Crack the regex - ทำงู
นี่คือเธรดของโจร ด้ายของตำรวจอยู่ที่นี่ งูเมทริกซ์เป็นเมทริกซ์จตุรัสที่ตามรูปแบบนี้: 3 คูณ 3: 1 2 3 6 5 4 7 8 9 และ 4-by-4: 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 งานของคุณคือการเขียนรหัสที่รับอินพุตnและสร้างเมทริกซ์ดังกล่าวในภาษาเดียวกับโพสต์ของตำรวจและด้วยรหัสที่ตรงกับ regex ของตำรวจ รูปแบบผลลัพธ์ของรหัสของคุณจะต้องตรงกับรูปแบบผลลัพธ์ของรหัสของตำรวจ กรุณาแสดงความคิดเห็นภายใต้โพสต์ของตำรวจเพื่อระบุว่าคุณได้ทำการแตก เกณฑ์การชนะ: ผู้ชนะจะเป็นผู้ใช้ที่ส่งผลกระทบมากที่สุด ในกรณีที่เสมอกันจะมีผู้ชนะหลายคน

12
รถคิตตี้ศิลปะ ASCII
Knight Riderซีรีย์ทีวีในยุค 80 โดดเด่นด้วยรถยนต์อัจฉริยะที่มีความใส่ใจในตัวเองเรียกว่า KITT ลักษณะที่โดดเด่นอย่างหนึ่งของรถคือแถบสแกนเนอร์ที่ติดตั้งด้านหน้าซึ่งอนุญาตให้ KITT "เห็น" (และนั่นดูคุ้นเคยกับแฟน ๆ ของทีวีซีรีส์ก่อนหน้านี้อย่างน่าสงสัย ) สแกนเนอร์มีแปดไฟตามที่เห็นในภาพนี้: ไฟ "ย้าย" ตามที่แสดงในภาพเคลื่อนไหวนี้ งานของคุณดังที่คุณได้คาดไว้ในตอนนี้มันจะสร้างแถบเครื่องสแกนขึ้นใหม่ด้วยไฟเคลื่อนที่ในรูปแบบ ASCII ความท้าทาย ให้เป็นจำนวนเต็มtเอาท์พุทสถานะของแถบสแกนเนอร์ในทันทีนั้นกำหนดดังนี้: เครื่องสแกนประกอบด้วยไฟแปดดวง ที่หนึ่งทันทีใด ๆ ของไฟคือการใช้งาน#และมีการแสดงให้เห็นว่า ไฟที่ทำงานตลอดเวลาt-1และt-2ตอนนี้หรี่แสงและแสดง+ดังนี้ เว้นแต่พวกเขาจะตรงกับที่ใช้งานอยู่ในปัจจุบัน ไฟที่เหลือปิดอยู่-และจะแสดงเป็น แสงที่ใช้งานจะเลื่อนจากซ้ายไปขวาจากนั้นเลื่อนไปทางซ้าย ผลลัพธ์ที่แน่นอนสำหรับแต่ละรายการtมีรายละเอียดด้านล่าง 0 --> #++----- % The leftmost light is active, and it just came from the right. % The two neighbouring lights …

25
หมายเลขที่เว้นช่องว่าง
ได้รับรายชื่อของจำนวนเต็มไม่เป็นลบออกตัวเลขเหล่านั้นกับแต่ละซ้ายเบาะด้วยช่องว่างกับความยาวของN N( หรือมิฉะนั้นส่งคืนรายการอักขระ / สตริง) คุณอาจคิดว่าNมากกว่าหรือเท่ากับจำนวนหลักของตัวเลขที่มากที่สุดในรายการ ช่องว่างต่อท้ายได้รับอนุญาตในการส่งออก คุณอาจใช้สตริงที่มีตัวเลขเหล่านี้ แต่Nไม่ใช่ความยาวของสตริง แต่เป็นจำนวนองค์ประกอบในรายการ ["1", "2", "3"]นอกจากนี้คุณอาจต้องใช้เวลารายการของสตริงเช่น นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ input => 'output' 0 => '0' 1 => '1' 2 3 => ' 2 3' 2 10 => ' 210' 4 5 6 => ' 4 5 6' 17 19 20 => ' 17 19 …
20 code-golf  string 

29
ค้นหาความเบี่ยงเบนสูงสุด
ปัญหานี้เกิดจาก "แรงบันดาลใจ" จากคำถามที่เคยถูกถามในQuora (ไม่ใช่สำหรับการตีกอล์ฟ) ฉันแค่อยากทำให้มันท้าทายสำหรับพวกคุณ (และการส่งปัญหาแรกของฉันที่นี่) กำหนดอาร์เรย์ขององค์ประกอบจำนวนเต็มvและจำนวนเต็มd(เราสมมติว่า d ต่ำกว่าหรือเท่ากับความยาวของอาร์เรย์) ให้พิจารณาลำดับทั้งหมดของdองค์ประกอบที่ต่อเนื่องกันในอาร์เรย์ สำหรับแต่ละลำดับคำนวณความแตกต่างระหว่างค่าสูงสุดและต่ำสุดขององค์ประกอบในลำดับนั้นและตั้งชื่อมันว่าส่วนเบี่ยงเบน งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่คำนวณค่าสูงสุดระหว่างความเบี่ยงเบนทั้งหมดของลำดับทั้งหมดที่พิจารณาข้างต้นและส่งคืนหรือส่งออกค่านั้น ตัวอย่างที่ทำงานผ่าน: v: (6,9,4,7,4,1) d: 3 The sequences of length 3 are: 6,9,4 with deviation 5 9,4,7 with deviation 5 4,7,4 with deviation 3 7,4,1 with deviation 6 Thus the maximal deviation is 6, so the output is 6. …

8
เห็นภาพการเรียงลำดับ
สมมติว่าฉันมีรายการเช่น[3, 0, 4, 2, 1]และฉันใช้การเรียงลำดับการเลือกเพื่อเรียงลำดับฉันสามารถจินตนาการได้ดังนี้: 3,0,4,2,1 |-| 0,3,4,2,1 |-----| 0,1,4,2,3 |-| 0,1,2,4,3 |-| 0,1,2,3,4 ความท้าทายนี้เกี่ยวกับการมองเห็นการจัดเรียงเช่นนี้ อินพุต ข้อมูลที่คุณป้อนจะเป็นรายการจำนวนเต็มบวกในทุกรูปแบบที่คุณต้องการ งาน การส่งของคุณควรเรียงลำดับรายการอินพุตโดยการสลับสององค์ประกอบต่อครั้งเท่านั้นและในแต่ละการสลับการส่งควรแสดงรายการและอักขระภายใต้แต่ละองค์ประกอบที่ถูกสลับ หากตัวเลขที่ถูกสลับมีมากกว่าหนึ่งหลักตัวละครสามารถอยู่ที่ใดก็ได้ที่อยู่ข้างใต้ ในตอนท้ายการส่งควรแสดงรายการเรียงลำดับ กฎอื่น ๆ การเรียงลำดับต้องใช้การสลับน้อยกว่า n 4โดยที่ n คือความยาวของรายการ การเรียงลำดับไม่จำเป็นต้องกำหนดขึ้น อักขระภายใต้การสลับสามารถเป็นอักขระใด ๆ ยกเว้นพื้นที่

6
สร้างการเรียงชิปโป๊กเกอร์ ASCII
โป๊กเกอร์มีมารยาทในการจัดเรียงชิปของคุณซึ่งมักจะบังคับใช้ในทัวร์นาเมนต์ชิปของคุณอาจไม่ถูก "ซ่อน" จากฝ่ายตรงข้ามโดยอยู่หลังผู้อื่นส่วนใหญ่จะไม่ซ่อนชิปขนาดใหญ่บางรายการ ความท้าทาย เรากำลังจะได้เล่นโป๊กเกอร์ใน ASCII ดังนั้นเราจึงจำเป็นต้องเขียนฟังก์ชั่นหรือโปรแกรมที่จะดึงดูดการจัดสแต็คชิป ASCII nของเราให้มูลค่ารวมของ อินพุต - จำนวนเต็มบวกn(สูงสุดถึง2**32-1ควรจัดการ) เอาต์พุต - การแทน ASCII ของการจัดเรียงสแต็กตามที่กำหนดไว้ด้านล่าง นี่อาจมีช่องว่างสีขาวทางด้านขวาของแต่ละบรรทัดโดยที่ไม่มีบรรทัดใดยาวเกินหนึ่งอักขระมากกว่าความยาวที่ใช้โดยอักขระที่พิมพ์ได้ในบรรทัดที่ยาวที่สุด (ด้านล่าง); สิ่งนี้อาจมีบรรทัดใหม่ต่อท้ายหนึ่งบรรทัด และ ตัวละครที่เป็นตัวแทนของชิปอาจเป็นตัวพิมพ์เล็กหากคุณต้องการ การจัดเรียงสแต็กจะ: มีชิปที่น้อยที่สุดเท่าที่จะเป็นไปได้ จะมีชิปที่มีมูลค่าเท่ากันใน "สแต็ค" (คอลัมน์) ได้รับคำสั่งให้กองที่สั้นกว่าอยู่ทางด้านขวาของกองที่สูงกว่า และ ถูกสั่งเช่นว่าสแต็คที่มีชิปขนาดใหญ่จะอยู่ทางด้านขวาของสแต็กขนาดเท่ากันของนิกายที่ต่ำกว่า ชิปจะแสดงเป็นอักขระแต่ละตัวเพื่อระบุสี: White : 1 = W Red : 5 = R Green : 25 = G Black : 100 = …


25
คำต่อท้ายที่ระเบิดได้
รับสตริง ASCII ส่งออกคำต่อท้ายที่ขยายออกมา ตัวอย่างเช่นถ้าสตริงเคยabcdeมีคำต่อท้าย 5 คำสั่งที่ยาวที่สุดถึงสั้นที่สุด: abcde bcde cde de e แต่ละคำต่อท้ายจะถูกระเบิดซึ่งหมายความว่าอักขระแต่ละตัวจะถูกคัดลอกหลายครั้งตามตำแหน่งที่จัดทำดัชนีไว้หนึ่งตัวในคำต่อท้ายนั้น ยกตัวอย่างเช่นการระเบิดของคำต่อท้ายabcde, abcde 12345 abbcccddddeeeee bcde 1234 bccdddeeee cde 123 cddeee de 12 dee e 1 e พรึบคำต่อท้ายที่ระเบิดของabcdeคือ abbcccddddeeeee bccdddeeee cddeee dee e กฎระเบียบ นี่คือโค้ดกอล์ฟเพื่อให้โค้ดที่สั้นที่สุดชนะ ข้อมูลที่ป้อนจะประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ (สิ่งนี้ไม่รวมบรรทัดใหม่ แต่มีช่องว่าง) เอาต์พุตจะมีแต่ละสตริงในบรรทัดแยกกัน อนุญาตให้ใช้ช่องว่างต่อท้ายในแต่ละบรรทัดและอาจมีการขึ้นบรรทัดใหม่พิเศษในตอนท้าย กรณีทดสอบ '' 'a' a 'bc' bcc c …
20 code-golf  string 

4
ASCII มีภาษาใดบ้างที่ดีเป็นพิเศษหรือไม่?
ฉันสงสัยว่ามีภาษาลึกลับหรือการเล่นกอล์ฟที่มีเป้าหมายข้อความเอาต์พุตและ ASCII เป็นพิเศษหรือไม่? ตัวอย่างเช่น 05AB1E เริ่มต้นอย่างน้อยโดยกำหนดเป้าหมายการแปลงพื้นฐาน มีภาษากอล์ฟใด ๆ ที่กำหนดเป้าหมายเป็นข้อความและศิลปะการแสดงผลข้อความหรือไม่? ถ้าเป็นเช่นนั้นพวกเขามีหน้าคำแนะนำที่นี่และพวกเขาใช้งานทั่วไป? หมายเหตุ: ฉันไม่ได้กำลังมองหาภาษาที่สามารถแสดงผลงานศิลปะ ASCII ได้ แต่เป็นภาษาที่ออกแบบมาโดยเจตนาเพื่อให้สามารถดำเนินการท้าทายศิลปะ ASCII ได้อย่างรวดเร็วและกระชับ

3
ปัดเศษเป็น Sig Sig รูปที่
ท้าทาย รับตัวเลขxและตัวเลขnปัดเศษตัวเลขxที่nสำคัญและผลลัพธ์ผลลัพธ์ ตัวเลขสำคัญ ตัวเลขสำคัญของตัวเลขคือตัวเลขที่มีความหมายซึ่งส่งผลต่อความละเอียดในการวัด ซึ่งรวมถึงตัวเลขทั้งหมดยกเว้นเลขศูนย์นำหน้า โปรดจำไว้ว่าการนำศูนย์เป็นศูนย์หลังจุดทศนิยมยังคงเป็นตัวเลขที่ไม่สำคัญ เมื่อปัดเศษตัวเลขคุณต้องปัดเศษออกจากศูนย์หากตัวเลขต่อไปนี้มากกว่าหรือเท่ากับห้า ศูนย์ทั้งหมดต่อท้ายหลังจุดทศนิยมจะนับเป็นสำคัญ อินพุต หมายเลขแรกจะเป็นxตัวเลขที่จะปัดเศษ ตัวเลขที่สองจะเป็นnจำนวนตัวเลขสำคัญที่คุณควรปัดเศษxให้เป็น xจะเป็นตัวเลข (รหัสของคุณควรจัดการทั้งจำนวนเต็มและคะแนนลอยตัว) ระหว่าง -1,000,000,000 ถึง 1,000, 000,000 nจะเป็นจำนวนเต็มบวกระหว่าง 1 ถึง 50 ที่ครอบคลุม nจะไม่มากกว่า nunber xของตัวเลขใน การป้อนข้อมูลจะไม่เป็น0หรือรูปแบบใด0เช่นหรือ0.000000 ตัวอย่าง Inputs: 2.6754, 2 Output: 2.7 ผลลัพธ์ของ2.7000จะไม่ถูกต้องเนื่องจากศูนย์ต่อท้ายหลังจุดทศนิยมจะนับเป็นตัวเลขที่สำคัญ Inputs: 0.00034551, 4 Output: 0.0003455 Inputs: 50237.1238, 3 Output: 50200 โปรดทราบว่าสิ่งนี้จะต้องไม่มีจุดทศนิยม Inputs: 2374905, 1 Output: 2000000 …
20 code-golf  math 

16
ค้นหาสิ่งที่แปลกออกมาตามลำดับ
ความท้าทาย: พิจารณาฟังก์ชั่นF(N) = 2^N + 1ที่เป็นจำนวนเต็มบวกน้อยกว่าN 31ลำดับที่กำหนดโดยฟังก์ชั่นนี้คือ: 3, 5, 9, 17, 33, 65, 129, 257, 513, 1025, 2049, 4097, 8193, 16385, 32769, 65537, 131073, 262145, 524289, 1048577, 2097153, 4194305, 8388609, 16777217, 33554433, 67108865, 134217729, 268435457, 536870913, 1073741825 อินพุตจะถูกสร้างขึ้นดังนี้: ใช้จำนวนเต็ม5 จำนวนต่อเนื่องกันจากลำดับด้านบน แทนที่หนึ่งในนั้นด้วยจำนวนเต็มบวกที่แตกต่างกัน (ซึ่งอาจจะใช่หรือไม่ใช่ส่วนหนึ่งของลำดับข้างต้น) เลือกจัดลำดับหมายเลขผลลัพธ์ 5 ตัวเลือก ให้รายการจำนวนเต็ม 5 จำนวนหาค่าที่เปลี่ยนและไม่ได้เป็นส่วนหนึ่งของจำนวนเต็ม 5 ต่อเนื่องดั้งเดิม …

4
ตรวจสอบพล็อตต้นกำเนิดและใบไม้
ลำต้นและใบพล็อตแสดงพวงของค่าตัวเลขในกลุ่มที่ถูกกำหนดโดยทั้งหมด แต่หลักที่ผ่านมา ตัวอย่างเช่นสมมติว่าเรามีชุดข้อมูลนี้: 0, 2, 12, 13, 13, 15, 16, 20, 29, 43, 49, 101 เราสามารถผลิตลำต้นและใบไม้นี้: 0|02 1|23356 2|09 3| 4|39 5| 6| 7| 8| 9| 10|1 ก้านของแถวแรกคือ 0 ดังนั้น "ใบไม้" - ตัวเลขหลัง|- แทนค่าระหว่าง 0 รวมถึง 10 พิเศษ ใบในแต่ละก้านจะถูกจัดเรียง ลำต้นที่ไม่มีใบไม้ (เช่น 3) ยังคงปรากฏอยู่ในเนื้อเรื่อง ค่า 101 อยู่ระหว่าง 100 ค่ารวมและแบบพิเศษ 110 ค่าดังนั้นค่าของต้นกำเนิดคือ …

18
การเรียงลำดับหลายคีย์
กำหนดรายการดัชนีและรายการเลขจำนวนเต็มศูนย์หรือมากกว่าให้เอาท์พุทรายการจำนวนเต็มเรียงตามลำดับจากน้อยไปมากโดยให้ความสำคัญกับคีย์จากอินพุตแรก ตัวอย่าง ปล่อยให้ปุ่มป้อนเข้า[1, 0, 2]และรายการจะถูกป้อน[[5, 3, 4], [6, 2, 1], [5, 2, 1]]เข้าไป รายการเหล่านั้นจะต้องเรียงลำดับตามองค์ประกอบที่สองจากนั้นองค์ประกอบแรกจากนั้นองค์ประกอบที่สามตามลำดับจากน้อยไปมาก: อันดับแรกเราจัดเรียงตามค่าที่ดัชนี1:[[6, 2, 1], [5, 2, 1], [5, 3, 4]] ต่อไปเราแยกความสัมพันธ์จากการเรียงลำดับแรกโดยใช้ค่าที่ดัชนี0:[[5, 2, 1], [6, 2, 1], [5, 3, 4]] ในที่สุดเราก็แยกความสัมพันธ์ที่เหลือกับ vlues ที่ index 2(นี่ไม่ได้เปลี่ยนแปลงอะไรเลยเพราะไม่มีความสัมพันธ์เหลืออยู่) รายละเอียด การเรียงลำดับมีความเสถียร: หากองค์ประกอบสองรายการเปรียบเทียบเท่ากันด้วยความเคารพต่อคีย์การเรียงลำดับที่กำหนดพวกเขาจะต้องอยู่ในลำดับสัมพัทธ์เดียวกันในผลลัพธ์ ตัวอย่างเช่นถ้าAและBมีความเท่าเทียมกันภายใต้คีย์การเรียงลำดับได้รับและการป้อนข้อมูลที่เป็น[..., A, ..., B, ...],Aต้องถูกวางไว้ก่อนBในการส่งออก คีย์การเรียงลำดับจะไม่อ้างอิงองค์ประกอบที่ไม่มีอยู่ในรายการอินพุตอย่างใดอย่างหนึ่ง จะไม่มีการเรียงลำดับคีย์ซ้ำ ดังนั้น,[1, 2, 1]ไม่ใช่รายการของคีย์การเรียงลำดับที่ถูกต้อง …

5
ความอยากรู้อยากเห็นฆ่าแมว
บางคนบอกว่าอยากรู้อยากเห็นฆ่าแมว อื่น ๆ บอกว่ามันเป็นกล่องและพิษ RSPCA บอกว่า Erwin Schrödingerจำเป็นต้องสูญเสียสิทธิในการเป็นเจ้าของสัตว์เลี้ยง พร้อมด้วยนักเคลื่อนไหวเพื่อสิทธิสัตว์นอกบ้านของเขา แมวฆาตกรนักวิทยาศาสตร์Schrödingerได้ในที่สุดเกิดขึ้นกับสิ่งประดิษฐ์ที่ยิ่งใหญ่ที่สุดของเขา การผสมกัมมันตภาพรังสีพิเศษของ unobtanium และ handwavium ที่สามารถมีครึ่งชีวิตได้และผลิตภัณฑ์หนึ่งกรัมสามารถฆ่าสิ่งมีชีวิตใด ๆ ได้ โชคไม่ดีที่เมื่อเขาพยายามทดสอบแมวตัวสุดท้ายของเขา: บ็อบเขาลืมไปแล้วว่าแมวมีชีวิตอยู่ 9 ชีวิตและต้องฆ่า 9 กรัม ด้วยน้ำ แต่ไม่มีอาหารบ๊อบผู้น่าสงสารจะมีชีวิตอยู่ได้ 1 สัปดาห์ (7 วัน) หากผลิตภัณฑ์ไม่ฆ่าเขาก่อน ภารกิจ: เมื่อได้รับข้อมูลจำนวนมากในหน่วยมิลลิวินาทีและครึ่งชีวิตในหน่วยมิลลิวินาที - ทั้งจำนวนเต็มที่เกิน 2 ^ 31 เขียนโปรแกรมที่แสดงว่าผลิตภัณฑ์ลึกลับสุดฆ่าแมวหรือไม่หรือเป็นเวลา 1 สัปดาห์ ขีด จำกัด หมดอายุก่อน สมมติว่าเป็นจริง / ใช่ / 1 / ทุกอย่างที่ระบุในคำตอบนั้นใช้สำหรับเมื่อเขาไม่ตายจากการขาด …
20 code-golf  math 

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