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

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

18
ทำล่าม 3var!
3varเป็นตัวแปรของเดดฟิชซึ่งใช้สามตัวแปรที่เรียกว่า A, B และ R A และ B คือแอคคูมูเลเตอร์ในขณะที่ R ใช้เป็นตัวแปรผลลัพธ์ ในรหัสนี้กอล์ฟท้าทายนี้คุณต้องสร้างล่ามให้กับภาษานี้ คำสั่งที่จำเป็น: i Increments A d Decrements A s Squares A p Prints A P Prints the ASCII character of A > Sets A to R a Increments B k Decrements B m Squares B o Prints B O …

7
แฮคเกอร์เข้ารหัสโปรแกรมของคุณด้วยแหล่งที่มาของโปรแกรมอื่น ๆ
เขียนสองโปรแกรมเช่นเมื่อไบต์ของซอร์สโค้ดของพวกเขาคือ XOR-d ร่วมกันมันจะสร้างโปรแกรมที่สามที่ถูกต้องทั้งหมดในภาษาเดียวกัน ความยาวของแต่ละโปรแกรมในสามไบต์ต้องเหมือนกัน Aโปรแกรมแรกควรเอาท์พุท Bโปรแกรมที่สองควรเอาท์พุท Cโปรแกรมที่สามควรเอาท์พุท การขึ้นบรรทัดใหม่เป็นทางเลือก แต่ถ้ามีการสร้างการขึ้นบรรทัดใหม่ทั้งคู่จะต้องทำเช่นกัน หากคุณใช้การตั้งค่าสถานะบรรทัดคำสั่งใด ๆ คุณต้องเหมือนกันสำหรับแต่ละโปรแกรมนั่นคือทั้งสามโปรแกรมจะต้องดำเนินการในลักษณะเดียวกัน หากคุณใช้ภาษาเช่น PHP ที่เริ่มต้นด้วยการรวมกันของตัวอักษรเช่นเดิม<?แต่มีตัวเลือกบรรทัดคำสั่งที่ลดตัวอักษรเหล่านั้นที่คุณอาจใช้แทนเช่น PHP จะต้องเรียกใช้จากบรรทัดคำสั่งเท่านั้น ไม่อนุญาตให้ป้อนข้อมูล แต่ละโปรแกรมต้องอยู่ในตัวเอง หากโปรแกรมของคุณเขียนขึ้นใน ASCII ตารางต่อไปนี้อาจช่วยได้: Codes 0x20 - 0x3F !"#$%&'()*+,-./ 0123456789:;<=>? Codes 0x40 - 0x5F @ABCDEFGHIJKLMNO PQRSTUVWXYZ[\]^_ Codes 0x60 - 0x7E `abcdefghijklmno pqrstuvwxyz{|}~ แก้ไข อนุญาตให้ใช้ตัวอักษรที่ไม่ใช่การพิมพ์เนื่องจากฉันไม่ได้ห้ามอย่างชัดแจ้งในตอนแรก อย่างไรก็ตามหากคุณต้องการโพสต์เวอร์ชั่นที่ใช้ตัวอักษรที่พิมพ์ได้และจะดีมาก! (คะแนนใดก็ตามที่สั้นที่สุด) "ปัจจัยที่ชาญฉลาด" ของการใช้รหัสควบคุมได้หมดลงไปแล้ว ... สิ้นสุดการแก้ไข XOR-ing สองรหัสจากบล็อกเดียวกันจะสร้างรหัสน้อยกว่า …

3
คุณสามารถพับ hexomino ให้เป็นลูกบาศก์ได้หรือไม่?
หนึ่งในของเล่นที่ชื่นชอบของเด็กของฉันเป็นชุดเช่นนี้ จริงๆแล้วมันเป็นของเล่นโปรดของฉัน - ฉันเล่นกับมันมาแล้ว นี่คือหนึ่ง: เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้การวาดเส้น ASCII เป็นอินพุตและตัดสินใจว่าจะพับลงในคิวบ์หรือไม่ อินพุต ข้อมูลจะประกอบด้วย hexomino หนึ่งตัวที่สร้างขึ้นจากสี่เหลี่ยมแบบนี้: +-+ | | +-+ ตัวอย่างเช่น heximino อินพุตที่ถูกต้องคือ: +-+ | | +-+-+-+-+ | | | | | +-+-+-+-+ | | +-+ เอาท์พุต ค่าความจริงหาก hexomino สามารถพับลงในคิวบ์หรือ ค่าความผิดพลาดเป็นอย่างอื่น เพื่อช่วยเราทำงานนิดหน่อยวิกิพีเดียมีกราฟิกที่ดีของ: 35 hexominoes ทั้งหมด: Hexominoes ทั้ง 11 ตัวที่พับเป็นลูกบาศก์: หมายเหตุ อินพุต hexominoes อาจมีการหมุนหรือการสะท้อนใด ๆ …

16
มาดูการกระทำกัน!
ใครไม่รักภาพยนตร์แอ็คชั่นที่มีรถยนต์ที่มีเสียงดังโดยเฉพาะอย่างยิ่งภาพยนตร์ที่มีปัญหามากมาย ใครไม่ชอบช็อตแอ็คชั่นในศิลปะ ASCII? ฉากคือ: รถสองคันเริ่มที่ด้านตรงข้ามของถนนตรง (โดยมีช่องว่างระหว่าง 60) พวกเขาเริ่มขับต่อกันด้วยความเร็วคงที่ รถไปทางซ้ายไดรฟ์ที่ 1 ช่องว่างต่อวินาทีและหนึ่งไปทางขวาไดรฟ์ 2 ช่องว่างต่อวินาที เห็นได้ชัดว่ารถยนต์ไม่สามารถผ่านกันและกันดังนั้นสำหรับn ≥ 20ฉากจะมีรถสองคันชนกับหมวกขึ้นในตำแหน่งที่เกิดความผิดพลาด ในฐานะที่เป็นคนรักภาพยนตร์ฉันต้องการหยุดฉากชั่วคราวเพื่อเพลิดเพลินกับความงามของมัน ได้รับจำนวนเต็มn(อาร์กิวเมนต์ของฟังก์ชันหรือ STDIN) ซึ่งแทนจำนวนวินาทีจากจุดเริ่มต้นของฉากแสดงฉากในขณะนั้น นี่คือฉากเริ่มต้นโดยมี 60 ช่องว่างระหว่างล้อหน้า: __ __ _/ \_ _/ \_ o o o o นี่คือฉากหลังจาก 11 วินาที: __ __ _/ \_ _/ \_ o o o o และนี่คือสิ่งที่ดูเหมือนว่าหลังจากการแข่งขัน (โปรดทราบว่า bonnets ขึ้นหลังจากความผิดพลาด): …

26
ล้อมรอบสตริงด้วยแฮช
ฉันได้ทำสิ่งนี้ใน Python แล้ว แต่ดูเหมือนว่ามันจะสั้นลงมาก: txt = input("Type something.. ") c = "#" b = " " print(c * (len(txt) + 4)) print(c, b * len(txt), c) print(c, txt, c) print(c, b * len(txt), c) print(c * (len(txt) + 4)) ดังนั้นหากผู้ใช้พิมพ์: Hello World โปรแกรมจะพิมพ์: ############### # # # Hello World # …
24 code-golf  string 

4
ล้อมรอบ 1009 พิกเซล
เอาท์พุทเป็นรูปร่างที่ล้อมรอบ 1009 พิกเซล รูปร่างต้องอยู่ในรูปแบบของวงรอบเดียวที่ปิดและไม่ตัดกัน ข้อมูลเข้าเป็นจำนวนเต็มบวกที่ไม่เป็นศูนย์ แต่ละอินพุตจะต้องให้ผลลัพธ์ที่ไม่ซ้ำกันนั่นคือแต่ละเอาต์พุตต้องไม่ซ้ำกันจากที่สร้างขึ้นโดยใช้อินพุตที่ต่ำกว่า ชัยชนะถูกตัดสินโดยขีด จำกัด อินพุตที่ใหญ่ที่สุด: ขีด จำกัด การป้อนข้อมูลของการส่งของคุณถือเป็น 1 น้อยกว่าการป้อนข้อมูลต่ำสุดที่ให้ผลลัพธ์ที่ไม่ซ้ำกันหรือไม่ถูกต้อง ตัวอย่างเช่นหากมีการสร้างเอาต์พุตที่ถูกต้องและไม่ซ้ำกันสำหรับอินพุต 1, 2 หรือ 3 แต่ไม่ใช่ 4 ขีด จำกัด อินพุตของคุณคือ 3 มีขีด จำกัด 1009 ไบต์บนซอร์สโค้ด หากมีการจับสลากรายการที่มีจำนวนไบต์น้อยที่สุดชนะ ข้อ จำกัด และการชี้แจง: ขนาดสูงสุดของรูปร่างคือ 109 คูณ 109 พิกเซล ขนาดรวมถึงเส้นที่ใช้ในการวาดรูปร่าง บรรทัดมีความกว้างคงที่ พื้นที่ที่ถูกล้อมรอบจะต้องล้อมรอบด้วยเส้นทั้งหมด - คุณไม่สามารถใช้ขอบเขตของไฟล์ภาพได้ ล้อมรอบ 1009 พิกเซลหมายถึงพื้นที่ที่ล้อมรอบเท่านั้น มันไม่รวมถึงสาย เอาท์พุทเป็นภาพ ไม่มีข้อ จำกัด …

10
เครื่องกำเนิดปิด Palindromic แบบสองทาง
บทนำ การปิด palindromic ของสตริงอินพุตคือ palindrome ที่สั้นที่สุดที่สามารถสร้างขึ้นจากสตริงอินพุตที่ palindrome สุดท้ายเริ่มต้นด้วยสตริงอินพุต สำหรับความท้าทายนี้เราจะพิจารณาการปิด palindromic แบบสองทางเช่นนั้น การปิด Palindromic ด้านซ้ายของสตริงอินพุตคือ palindrome ที่สั้นที่สุดที่เป็นไปได้ที่เริ่มต้นด้วยสตริงอินพุต การปิด Palindromic ที่ถูกต้องของสตริงอินพุตคือ palindrome ที่สั้นที่สุดที่เป็นไปได้ซึ่งลงท้ายด้วยสตริงอินพุต การปิด Palindromic แบบสองทางของสตริงอินพุตนั้นสั้นกว่าของการปิด Palindromic ซ้ายหรือขวาของสตริงอินพุต งาน งานของคุณง่าย รับสตริง (ประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น, บรรทัดใหม่และช่องว่างสีขาว), ส่งออกการปิด palindromic แบบสองทางของสตริงนั้น ในกรณีที่มีการเสมอกันการปิด Palindromic ด้านซ้ายหรือขวานั้นเป็นผลลัพธ์ที่ถูกต้อง คุณสามารถเขียนโปรแกรมหรือฟังก์ชันรับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ฟังก์ชันและพิมพ์ผลลัพธ์ไปที่ STDOUT (หรือทางเลือกใกล้เคียงที่สุด) หรือส่งคืนเป็นสตริง คุณสามารถสันนิษฐานได้ว่าอินพุตจะไม่เป็นสตริงว่าง ตัวอย่างไม่กี่: <Input> -> …

30
คำนวณอักขระเฉลี่ยของสตริง
งาน งานของคุณคือการผลิตสตริงที่มีอักขระเฉลี่ยของสตริง อักขระตัวแรกของผลลัพธ์จะเป็นอักขระเฉลี่ยของอักขระตัวแรก (ซึ่งเป็นอักขระตัวแรก) และอักขระตัวที่สองเฉลี่ยของอักขระสองตัวแรกเป็นต้น อักขระเฉลี่ยคืออะไร สตริงเป็นอาร์เรย์ของไบต์ สามารถหาอักขระเฉลี่ยของสตริงได้โดยการคำนวณค่าเฉลี่ยของค่า ASCII ของอักขระในสตริงและใช้อักขระ ASCII ที่สอดคล้องกัน ยกตัวอย่างเช่นสตริงสามารถเขียนเป็นลำดับไบต์"Hello!" 72 101 108 108 111 33ค่าเฉลี่ยของค่า ASCII คือ 533/6 = 88.833 ... และเมื่อมันถูกปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุดเราจะได้ 89 ซึ่งเป็นรหัส ASCII สำหรับตัวอักษรตัวYใหญ่ กฎระเบียบ คุณสามารถสมมติว่าอินพุตมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น อินพุตสามารถอ่านได้จาก stdin หรือเป็นอาร์กิวเมนต์บรรทัดคำสั่งหรือเป็นอาร์กิวเมนต์ของฟังก์ชัน เอาต์พุตต้องเป็น stdout หากโปรแกรมของคุณใช้งานได้คุณสามารถคืนค่าสตริงที่คุณต้องการพิมพ์ได้ ต้องเป็นทั้งโปรแกรมหรือฟังก์ชั่นไม่ใช่ตัวอย่าง ช่องโหว่มาตรฐานใช้ จำนวนเต็มถูกปัดเศษตามฟังก์ชันfloor(x+0.5)หรือฟังก์ชันที่คล้ายกัน ฉันจะชนะได้อย่างไร นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) เป็นผู้ชนะ ตัวอย่าง Hello! → …
24 code-golf  string 

14
พิมพ์รหัสประเทศทั้งหมด
ISO 3166-1เป็นมาตรฐานที่กำหนดรหัสประเทศทั้งหมด รหัสตัวอักษรสองตัวที่รู้จักกันดี (US, GB, JP และอื่น ๆ ) เรียกว่ารหัส Alpha-2 ด้วยตัวอักษรสองตัวมีเพียง 26 2 = 676 รหัสที่เป็นไปได้ซึ่งสามารถจัดเรียงอย่างเป็นตาราง ตารางนี้มีประโยชน์เป็นภาพรวมเพื่อดูว่ามีการใช้รหัสใดถูกสงวนไว้ ฯลฯ ความท้าทายนี้ง่ายมาก: คุณจะพิมพ์รหัสที่กำหนดทั้งหมดของกริดนี้ไปยัง STDOUT โดยใช้ ASCII ธรรมดาดังที่แสดงด้านล่าง: AA AC AD AE AF AG AI AL AM AN AO AP AQ AR AS AT AU AW AX AZ BA BB BD BE BF …

13
ถึงเวลาของสเปนแล้ว!
ฉันมีงานง่าย ๆ ที่ควรใช้งานได้ง่ายโดยใช้รหัส เป้าหมายของคุณคือการเขียนโปรแกรมที่จะส่งออกเวลาที่เขียนในภาษาสเปนให้เวลาในรูปแบบ HH: MM หลายคนคงไม่รู้ว่าจะทำอย่างไรดังนั้นฉันจะทำอย่างละเอียด เวลาในสเปนค่อนข้างสมเหตุสมผล มันมักจะตามรูปแบบของ "Es la / Son las (ชั่วโมง) y (นาที)" ชั่วโมงอยู่ในรูปแบบ 12 ชั่วโมงและ "Es la" จะใช้เฉพาะในกรณีที่ชั่วโมงคือ 1 (เช่นหนึ่งนาฬิกา) นาทีเป็นเรื่องราวที่แตกต่าง หากนาทีน้อยกว่า 30 แสดงว่าเป็นนาทีดังที่แสดงไว้ด้านบน อย่างไรก็ตามถ้านาทีมากกว่า 30 แสดงว่าชั่วโมงนั้นถูกปัดขึ้นและนาทีจะถูกลบออก ตัวอย่างเช่น 7:35 แปลเป็น "8 ชั่วโมงลบ 25 นาที" ตัวอย่างเพิ่มเติมจะได้รับด้านล่าง รายการหมายเลขสเปนที่มีความจำเป็นที่สามารถพบได้ที่นี่ มีสำเนียงอยู่บ้าง แต่ก็ไม่จำเป็น หมายเหตุ:แหล่งข้อมูลบอกว่า "uno" แต่เพื่อให้ถูกต้องตามหลักไวยากรณ์ควรเป็น "una" สิ่งนี้จะไม่ส่งผลกระทบต่อคำตอบใด ๆ หมายเหตุ …

6
โครงสร้างอิฐมีความเสถียรหรือไม่?
ให้เป็นตัวแทนของอิฐก่ออิฐมาตรฐานเป็น[__](และไม่สนใจความจริงที่ว่าด้านบนเปิด) เมื่อก้อนอิฐเหล่านี้ถูกซ้อนทับกันชั้นอื่น ๆ จะถูกชดเชยครึ่งอิฐเหมือนปกติในการก่อสร้างอิฐ: [__][__][__][__] [__][__][__][__] [__][__][__][__] [__][__][__][__] ดังนั้นอิฐแต่ละก้อนมีเพื่อนบ้านได้มากที่สุดหกคนและเป็นไปไม่ได้ที่อิฐสองก้อนจะเรียงตัวในแนวตั้งได้โดยตรง จุดสำคัญคือการจัดเรียงของอิฐเหล่านี้ไม่ได้ถูกทำให้ตายแต่มีเพียงแรงโน้มถ่วง ดังนั้นสิ่งสำคัญคืออิฐแต่ละก้อนในโครงสร้างมีความเสถียรไม่เช่นนั้นโครงสร้างทั้งหมดจะไม่เสถียร อิฐมีความเป็นไปได้สามทาง: อิฐใด ๆ บนพื้นดิน (บรรทัดที่ต่ำที่สุดของอิฐ) มีความเสถียร อิฐใด ๆ ที่มีสองก้อนด้านล่างโดยตรงจะมีเสถียรภาพ: [__] <- this brick is stable [__][__] <- because these bricks hold it up อิฐใด ๆ ที่มีอิฐทั้งด้านบนและด้านล่างบนด้านเดียวกันนั้นจะคงที่: [__] [__] [__] [__] <- these middle bricks are stable [__] [__] because …

4
แสดงเส้นทางตัวชี้เมาส์ ... ของอนาคต!
แรงบันดาลใจจากตัวอย่างของการใช้d3jsนี้ฉันขอท้าให้คุณสร้าง Canvas (หรือเทียบเท่าภาษาที่คุณเลือก) ซึ่งตัวชี้เมาส์จะปรากฏขึ้นโดยมีการบิดดังต่อไปนี้: The Twist คุณไม่ควรแสดงเส้นทางที่ตัวชี้เมาส์อยู่แต่ "เส้นทาง" ที่จะ (อาจ) เป็นอนาคต คุณสามารถทำได้โดยใช้: เครื่องย้อนเวลาหรือ การประมาณความน่าจะเป็นขึ้นอยู่กับการเคลื่อนไหวของเมาส์ก่อนหน้า สมมติฐาน ในกรณีที่คุณไม่ได้เลือกการนำไทม์แมชชีนไปใช้เมื่อเมาส์ไม่เคลื่อนที่เกินขีด จำกัดมิลลิวินาทีคุณจะไม่สามารถแสดงเส้นทางได้ ( ค่าเกณฑ์ขึ้นอยู่กับคุณที่จะเลือก) ภาพเคอร์เซอร์ขึ้นอยู่กับคุณและไม่จำเป็นต้องเหมือนกับเคอร์เซอร์ของระบบปฏิบัติการ (คุณสามารถวาดวงกลมหรือจุดเล็ก ๆ ได้) จะไม่มีการทดสอบอินพุตที่ชั่วร้าย: คุณสามารถสันนิษฐานได้ว่าการเคลื่อนไหวนั้นราบรื่น นิยาม 'ราบรื่น' สำหรับกรณีนี้คือ: หากการเคลื่อนไหวของเมาส์เป็นฟังก์ชันเหนือแกน x และ y ของผืนผ้าใบ - มันจะเป็นฟังก์ชั่นต่อเนื่อง การชนะ คำตอบที่ถูกต้องพร้อมด้วยตัวอักษรน้อยที่สุดในรหัสจะเป็นผู้ชนะ ในกรณีที่เสมอกัน - คนที่ถูกโพสต์ก่อนจะเป็นผู้ชนะ แก้ไข:คำตอบที่ถูกต้องกับupvotes ที่สุดจะเป็นผู้ชนะ ในกรณีที่เสมอกัน - คนที่ถูกโพสต์ก่อนจะเป็นผู้ชนะ คุณสามารถสร้างสรรค์ในการใช้งานหรือแม่นยำกับการทำนาย ฉันไม่ใช่ผู้ตัดสินอีกต่อไปเราทุกคนเป็น :) คำตอบที่ถูกต้องจะต้องมีวิธีที่ฉันจะเล่นด้วย (ทดสอบ! …

30
นับจำนวนคนในจำนวนเต็ม 16 บิตที่ไม่ได้ลงนาม
เขียนคำสั่งที่จะนับจำนวนของคำในจำนวนเต็มสิบหกบิตที่ไม่ได้ลงนาม ตัวอย่างเช่นหากอินพุตคือ1337ผลลัพธ์จะเป็น6เพราะ1337เลขฐานสิบหกบิตเท่ากับ0000010100111001ซึ่งประกอบด้วยหกรายการ

1
พิมพ์เนื้อเพลงเป็น“ Twinkle Twinkle Little Star”
เป้าหมายของคุณคือการพิมพ์เนื้อเพลงลงในเพลง "Twinkle Twinkle Little Star" ในขณะที่เล่นโน้ตแต่ละอัน ไมโครโฟนของคอมพิวเตอร์จะได้ยินเสียงบันทึก หากระดับเสียง (แต่ไม่จำเป็นต้องมีความยาว) ของโน้ตนั้นถูกต้องให้พิมพ์พยางค์ที่เหมาะสม มิฉะนั้นไม่ทำอะไรเลย แต่ละโน้ตจะมีความยาวอย่างน้อยครึ่งวินาทีและจะมีการพักอย่างน้อยหนึ่งในสี่ของวินาทีระหว่างโน้ต ใช้โน้ตดนตรีที่ให้ไว้ที่นี่และเนื้อเพลงต่อไปนี้: (เส้นแนวตั้งแสดงถึงการแบ่งพยางค์) คู่ | kle, twin | kle, lit | tle star, ฉันจะชนะ | der สิ่งที่คุณเป็น ตั้งค่า a | bove โลกสูงมาก เหมือน dia | mond บนท้องฟ้า คู่ | kle, twin | kle, lit | tle star, ฉันจะชนะ | …
24 code-golf  music  audio 

5
นิพจน์ที่สั้นที่สุดสำหรับ {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}
{0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}รายการที่กำหนดของจำนวนเต็ม สำหรับผู้ที่สนใจตัวเลขเหล่านี้จะใช้ในการคำนวณวันทำงาน Weekday = (m[n] + d + y + y>>2 + y/400 - y/100) % 7;ที่m[n]- การแสดงออกของฉันค้นหาd- วันเดือน, -yyear - (month <= 2) สร้างการแสดงออกซึ่งประกอบด้วยตัวดำเนินการทางคณิตศาสตร์ตรรกะและตัวดำเนินการบิตซึ่งจะส่งออกสำหรับจำนวนเต็มบวกnจำนวนเต็มmดังนั้นที่m % 7เท่ากับจำนวนที่ n ในรายการ ไม่อนุญาตให้ใช้สาขาผู้ประกอบการที่เกี่ยวข้องกับการค้นหาตารางและพอยน์เตอร์ คะแนน: 1 - สำหรับ| & ^ ~ >> <<ผู้ประกอบการ …

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