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

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

2
ผีและฟักทอง
นี่คือฟักทอง ASCII ที่แกะสลักไว้ใน Jack-o-Lantern มันน่ารักใช่ไหม ((^v^)) นี่คือผี ASCII ดูสิว่ามันน่ากลัวขนาดไหน! \{O.O}/ เห็นได้ชัดว่าฟักทองจะต้องอยู่บนพื้นดินมีช่องว่างระหว่างพวกเขาเพื่อให้พวกเขาไม่เน่า ผีชอบยืนบนฟักทองดังนั้นพวกมันจึงน่ากลัวกว่า อย่างไรก็ตามพวกเขาต้องยืนอยู่บนฟักทองสองลูกมิฉะนั้นน้ำหนักที่น่ากลัวของพวกเขาจะบดขยี้ฟักทองที่อยู่ข้างใต้ แต่เนื่องจากเวทมนตร์ของพวกเขาทำงานอย่างไรผีหลายตัวสามารถซ้อนและแบ่งปันฟักทองได้หากว่าผีถูกแบ่งเท่า ๆ กันบนฟักทองล่างหรือผีล่าง ในคำอื่น ๆ การสร้างรูปร่างเหมือนเป็นมนุษย์ปิรามิด โปรดทราบว่าผีไม่สามารถซ้อนทับผีได้เว้นแต่จะมีฟักทองอยู่ข้างล่าง กำหนดจำนวนเต็มสองค่าที่ไม่เป็นลบgและpแสดงจำนวนgโฮสต์และpumpkins ส่งออกรูปแบบซ้ายสุดที่กะทัดรัดที่สุดที่เป็นไปได้ตามกฎปิรามิดกองซ้อนข้างต้น ฟักทองและผีที่เหลือ (นั่นคือคนที่ไม่ได้สร้างปิรามิด) ไปที่พื้นทางด้านขวา สำหรับการชี้แจงการก่อตัวเหล่านี้จะตกลง (ขึ้นบรรทัดใหม่ว่างเปล่า) และทำหน้าที่เป็นตัวอย่าง I / O: 0p 1g \{O.O}/ 1p 0g ((^v^)) 1p 1g ((^v^)) \{O.O}/ 2p 1g \{O.O}/ ((^v^)) ((^v^)) 2p 2g \{O.O}/ ((^v^)) …

15
Palindrome polyglot
งานของคุณคือการเขียนโปรแกรมที่ทำงานในสองภาษาที่ต่างกันและทำสิ่งต่อไปนี้: ในหนึ่งภาษามันจะทำให้เป็นสตริงที่กำหนด รับสาย abcde ย้อนกลับสตริง edcba ลบอักขระตัวแรก dcba กาวลงบนสตริงเดิม abcdedcba ในภาษาอื่นมันจะลดความแปรปรวนของสตริงที่กำหนด ใช้สตริง palidromized โดยวิธีการดังกล่าว abcdedcba รับตัวละครตั้งแต่ต้นจนกลาง abcde โปรดจำไว้ว่านี่คือรหัสกอล์ฟดังนั้นโค้ดที่มีอักขระน้อยที่สุด(ไม่ใช่ไบต์) จะชนะ ลีดเดอร์ นี่คือตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้: # Language 1/Language 2, N bytes ที่Nมีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในบรรทัดแรกโดยการตีพวกเขาผ่าน ตัวอย่างเช่น # Ruby/Python, <s>104</s> <s>101</s> 96 bytes หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของสองไฟล์หรือคุณต้องการแสดงรายการการลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว: # Perl/C, 43 + 2 (-p flag) = …

7
การแทรกขั้นต่ำเพื่อสร้าง palindrome
วันนี้คุณจะได้ทำสิ่งท้าทาย palindrome อื่น! ดังนั้นวันนี้งานของคุณคือการใช้สายอักขระและกำหนดจำนวนตัวอักษรขั้นต่ำที่ต้องใช้ในการแทรกเพื่อเปลี่ยนให้เป็นแบบ palindrome fishesตัวอย่างเช่นลองสตริง ในกรณีนี้วิธีที่ดีที่สุดคือการเพิ่มh ifดังนั้นผลลัพธ์จะเป็น 3 fishe s h if --------- fishehsif codegolfตอนนี้ขอลองกับ เนื่องจากมีการทำซ้ำoเราจึงสามารถทำ: codeg o lf fl ed c ------------- flcodegedoclf เพื่อรับผลลัพธ์ 5 กรณีทดสอบ ppcg -> 2 codegolf -> 5 palindrome -> 9 stackexchange -> 8 programmingpuzzlesandcodegolf -> 20

6
เตรียมตัวให้พร้อมสำหรับวันฮาโลวีน
ฉันไม่รู้เกี่ยวกับคุณทั้งหมด แต่ฉันไม่ได้เตรียมสำหรับวันฮัลโลวีน - - ไม่เคยทำ - - แต่เพื่อนบ้านของฉันคือดังนั้นเราจะช่วยเธอ เธอต้องการความช่วยเหลือในการหาแบรนด์ขนมที่เธอมี แต่เธอมีขนมมากมายที่เธอไม่สามารถทำก่อนวันฮัลโลวีนได้ เธอมี: Snickers คิทแคท ดาวกระจาย เยลลี่หมี Twix อินพุต สตริงหลายบรรทัด (หรือรูปแบบที่เหมาะสมอื่น ๆ ) ที่มีตัวอักษรและช่องว่างเท่านั้น เอาท์พุต ค่า falsy ถ้าไม่ใช่ลูกอมที่ถูกต้องหรือลูกอมใดเป็นลูกอม วิธีการตัดสินใจลูกอมมันคืออะไร ขนมที่ถูกต้องถ้ามันบอกว่าหนึ่งในแบรนด์ดังกล่าวข้างต้น อย่างไรก็ตามมันไม่ง่ายอย่างนั้นเพราะนี่เป็นขนมที่ถูกต้อง: K i t K a t ขนมที่ถูกต้องคือที่ที่: ตัวอักษรอยู่ในลำดับจากซ้ายไปขวา ตัวอักษรเป็นตัวพิมพ์ใหญ่อย่างถูกต้อง ตัวอักษรไปจากซ้ายไปขวาไม่ได้ทั้งปีนลงไป ตัวอักษรที่มีช่องว่างออกเป็นหนึ่งในแบรนด์ดังกล่าว นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในไบต์ชนะ! ตัวอย่าง Truthys: 1. kers c i n …
15 code-golf  string 

2
การหมุน Chebyshev จริง
นี่คือความท้าทายแรงบันดาลใจจากเซฟหมุน ฉันขอแนะนำให้ดูคำตอบที่นั่นเพื่อรับแรงบันดาลใจสำหรับความท้าทายนี้ เมื่อกำหนดจุดบนระนาบจะมีจตุรัสที่ไม่ซ้ำใคร (สี่เหลี่ยมผืนผ้าที่มีด้านเท่ากัน) ที่มีศูนย์กลางอยู่ที่จุดกำเนิดและจุดตัด ( การสาธิตเชิงโต้ตอบ ): กำหนดจุดPและระยะdกลับมาจุดที่ได้รับโดยการย้ายระยะdจากP , ทวนเข็มนาฬิกา (ตามเข็มนาฬิกาและเชิงลบ d ) พร้อมปริมณฑลของตารางที่มีศูนย์กลางอยู่ที่จุดเริ่มต้นที่ตัดพี คำตอบของคุณจะต้องแม่นยำอย่างน้อย 4 หลักทศนิยม Testcases: (0, 0), 100 -> (0, 0) (1, 1), 81.42 -> (-0.4200, 1.0000) (42.234, 234.12), 2303.34 -> (-234.1200, 80.0940) (-23, -39.234), -234.3 -> (39.2340, -21.8960) กรณีทดสอบต่อไปนี้มาจากความท้าทายเริ่มต้นโดย Martin Ender และทุกอย่างอยู่ที่d = 1 : …

1
แผนที่นั้นอายุเท่าไหร่
การอ้างอิงxkcd 1688 : งานของคุณคือลดอายุของแผนที่โดยถามคำถามผู้ใช้ คำถามเหล่านี้จะต้องเหมือนกันกับใน xkcd guide ยกเว้นจากการใช้อักษรตัวใหญ่และขึ้นบรรทัดใหม่ นอกจากนี้คุณควรให้ผู้ใช้มีตัวเลือกให้เลือกซึ่งไม่จำเป็นต้องเรียงตามลำดับในภาพ xkcd หากอินพุตไม่ตรงกับคำตอบที่คาดหวังโปรแกรม / ฟังก์ชันของคุณอาจทำงานในลักษณะที่ไม่ได้กำหนดไว้ ในตอนท้ายคุณควรส่งออกปี / ครั้งที่แผนที่ถูกสร้างขึ้น ตัวอย่าง ( >หมายถึงอินพุต แต่คุณอาจเลือกอย่างอื่น): ตัวอย่างที่ 1: ISTANBUL OR CONSTANTINOPLE? (CONSTANTINOPLE, NEITHER, ISTANBUL) >ISTANBUL DOES THE SOVIET UNION EXISTS? (YES, NO) >NO ZAIRE? OR: 'HONG KONG (UK)' (YES, NO) >NO SERBIA / MONTENEGRO ARE? (ONE …

4
จับคู่ URL การแลกเปลี่ยนสแต็ก
อารัมภบท หลังจากติดตั้งส่วนขยายเบราว์เซอร์ anti-XSS แล้ว Stack Snippets ก็หยุดทำงานในเครือข่าย Stack Exchange ทั้งหมด ฉันไม่สามารถเรียนรู้จากStack Overflowได้อีกต่อไปดูการสาธิตการทำงานบนประสบการณ์ผู้ใช้และที่แย่ที่สุดคือไม่สามารถทดสอบคำตอบ JavaScript เกี่ยวกับProgramming Puzzles และ Code Golf ได้ ! ฉันค้นหาวิธีแก้ไขอย่างถี่ถ้วนและพบกล่องอินพุตขนาดเล็กในการตั้งค่าซึ่งสามารถวาง regex เดียวได้ ฉันไม่พอดีกับไซต์ Stack Exchange ทั้งหมดในกล่องเล็ก ๆ นี้ดังนั้นฉันจึงขอความช่วยเหลือ นี่คือคำถามนั้น งาน งานของคุณคือการสร้างนิพจน์ทั่วไปที่ตรงกับ URL ของเว็บไซต์ Exchange Stack ทั้งหมดโดยไม่ต้องจับคู่โดเมนใด ๆ ที่ไม่ได้เป็นเจ้าของโดย Stack Overflow Inc. นิพจน์ทั่วไปของคุณต้องตรงกับ URL ทั้งหมดด้วยส่วนต่อไปนี้: protocolนี่อาจจะเป็นหรือhttp://https:// domain: นี่จะเป็นรายการจากรายการนี้: stackoverflow.com www.stackoverflow.com …

4
HexaGolf: Rotatagons
ดูเพิ่มเติม: Wordagons ท้าทาย กำหนดรูปหกเหลี่ยมและในจำนวนที่nเป็น input เอาท์พุทหกเหลี่ยมเดียวกันหมุนnครั้ง หกเหลี่ยม รูปหกเหลี่ยมจะเป็นสตริงดังนี้: a b c d d e e f f o g g h h i i j k l รูปหกเหลี่ยมจะเป็นปกติเสมอและจะมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ การหมุน ในการค้นหาว่าจะหมุนรูปหกเหลี่ยมให้คูณnด้วย 60 องศาเพื่อให้ได้มุมการหมุน ตัวอย่างเช่นการใช้รูปหกเหลี่ยมด้านบนถ้าnเป็น 2 เราจะคูณมันด้วย 60 เพื่อให้ได้ 120 องศา จากนั้นเราหมุนรูปหกเหลี่ยม 120 องศา: j h f k h …

12
ทำให้ฉันเป็นนิเมชั่นจางหายไป…ได้โปรด
งานของคุณคือทำตามคำแนะนำอย่างรอบคอบทำให้แอนิเมชั่นจางหายไปของคำเดียวเปลี่ยนเป็นคำที่สองสำหรับคุณอย่างแท้จริง ว่าอะไรคือเรื่องนี้ "แอนิเมชั่จาง" คุณอาจถาม? ในการสร้างอนิเมชันจางหายไปคุณต้องใช้สองสายซึ่งจะมีเฉพาะอักขระ ASCII ที่พิมพ์ได้ คุณเริ่มต้นด้วยการพิมพ์สตริงเริ่มต้นของคุณ (หนึ่งในสอง) จากนั้นคุณสุ่มเลือกอักขระในคำต้นฉบับและเปลี่ยนเป็นอักขระที่สอดคล้องกันในคำที่คุณต้องการทำให้เคลื่อนไหว เมื่อคำมีความยาวไม่เท่ากันคุณจะต้องใส่คำด้วยช่องว่าง คุณเก็บไว้ในการทำเช่นนี้จนครบทุกตัวละครที่ได้รับการเปลี่ยนแปลง แต่คุณจะไม่เปลี่ยนลักษณะที่ดัชนีบางอย่างมากกว่าหนึ่งครั้ง นี่คือตัวอย่าง i / o: Hey -> Peeps Hey # original string Hey s # replace char at index 4 Hey s # replace char at index 1 Pey s # replace char at index 0 Pee s …
15 code-golf  string 

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

22
การหารของตัวเลขไม่น้อย
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในจำนวนเต็มบวกa, bและc, และพิมพ์หรือผลตอบแทนa/bเพื่อcตำแหน่งทศนิยมโดยใช้การดำเนินงาน + - * /% [บวกลบคูณหารปรับ] ในจำนวนเต็มบวก: คุณสามารถใช้ทุกสิ่งที่ ภาษาของคุณอนุญาต แต่ไม่สามารถใช้กับเลขทศนิยมได้ ช่วง a, b, c จะเป็นช่วงที่อนุญาตสำหรับจำนวนเต็มที่ไม่ได้ลงนามในภาษาของคุณ ผลลัพธ์หมายเลขจะถูกปัดเศษเป็นหลักสุดท้ายเพื่อพิมพ์ (ไม่ใช่round) ซึ่งหมายความว่าหากภาษาของคุณไม่มีประเภทจำนวนเต็ม (ลอยเท่านั้น) คุณสามารถเข้าร่วมโดยใช้หมายเลขทศนิยมเหล่านี้เป็นจำนวนเต็มบวกเท่านั้น ปมของการออกกำลังกายนี้มันจะเป็นการเขียนฟังก์ชั่นที่ค้นหาตัวเลขในส่วนจุดลอยโดยใช้เพียงการดำเนินงาน + - * /% ในจำนวนเต็ม [ไม่ได้ลงนาม] ตัวอย่าง print(1,2,1) จะพิมพ์ 0.5 print(1,2,2) จะพิมพ์ 0.50 print(13,7,27) จะพิมพ์ 1.857142857142857142857142857 print(2,3,1) จะพิมพ์ 0.6 print(4,5,7) จะพิมพ์ 0.8000000 print(4,5,1) จะพิมพ์ 0.8 print(9999,23,1) จะพิมพ์ …

8
ตัวเลขแบ่งกลุ่ม
ลำดับของตัวเลขที่แบ่งกลุ่มหรือตัวเลขที่สำคัญของการวัด ( OEIS A002048 ) เป็นลำดับของตัวเลขดังกล่าวว่าสมาชิกแต่ละคนเป็นที่เล็กที่สุดในเชิงบวก (มากกว่าศูนย์) a(0) = 1จำนวนที่ไม่สามารถทำจากผลรวมของตัวเลขติดต่อกันก่อนหน้านี้ด้วย ตัวอย่าง ในการคำนวณเราคำนวณครั้งแรกa(7) a(0->6) = [1, 2, 4, 5, 8, 10, 14]จากนั้นเราจะเริ่มจากศูนย์และผ่านตัวเลขจนกว่าเราจะพบหมายเลขที่ไม่ใช่ผลรวมของหนึ่งหมายเลขหรือมากกว่านั้นตามลำดับ 1 = 1 2 = 2 3 = 1 + 2 4 = 4 5 = 5 6 = 2 + 4 7 = 1 + 2 + 4 …

15
หมายเลขสุดท้าย
ท้าทาย เขียนโปรแกรมที่ใช้อาร์เรย์จำนวนเต็ม 4 ตัว ( ซึ่งหมายถึงลำดับของตัวเลขที่สร้างโดยอัลกอริธึมที่แน่นอน ) และส่งคืนจำนวนเต็มถัดไปที่จะตามมา เราจะใช้อัลกอริธึมการบวกการลบการคูณและการหารอย่างง่าย ๆ ด้วยรูปแบบคงที่เท่านั้น (เช่นไม่มีตัวแปร) สำหรับการหารเราจะใช้floorค่าจำนวนเต็ม: 133/4 = 33และ33/4 = 8 คุณสามารถสมมติว่าจะมีค่าส่งคืนที่ถูกต้องหนึ่งค่าเสมอ กรณีทดสอบ [14,24,34,44] ควรกลับ 54 (อัลกอริธึมเพิ่มเติม) [105,45,-15,-75] ควรกลับมา -135 (อัลกอริทึมการลบ) [5,25,125,625] ควรกลับ 3125 (อัลกอริทึมแบบ multiplicative) [256,64,16,4] ควรกลับ 1 (อัลกอริทึมการหาร) กฎทั่วไป นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
15 code-golf  number 

3
Java Asterisk สี่เหลี่ยมผืนผ้า [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา สำหรับชั้นเรียน CS ของฉันผู้สอนของฉันให้เรามอบหมายงานสร้างสี่เหลี่ยมผืนผ้าที่มีเครื่องหมายดอกจันที่มีเส้นทแยงมุมลากผ่านมันใน Java เขายังบอกให้เราเขียนเป็นไบต์น้อยที่สุด ฉันได้รับมันถึง 190 ไบต์ แต่ฉันต้องการค้นหาบางอย่างเพื่อทำให้รหัสนี้ง่ายขึ้นเพื่อลดจำนวนไบต์ มีใครช่วยฉันได้บ้าง รหัสนี้ใช้งานได้: interface d{static void main(String[]a){for(int z=0,w=new Byte(a[0]),h=new Byte(a[1]);z<h*w;){int y=z/w,x=z++%w;System.out.print((x>w-2)?"*\n":(y%(h-1)*x*((y-x)%3)==0)?"*":" ");}}} 10 10การป้อนข้อมูลเป็น เอาท์พุท: ********** ** * * * * * * ** * * * * ** * * * * * * …
15 tips  java 

1
การแปลงหมากรุก
มีงานมากมายที่ทำในโลกของหมากรุก ตัวอย่างเช่นมีรูปแบบไฟล์มาตรฐาน.pgnที่อธิบายถึงเกมหมากรุกรวมถึงรายการการเคลื่อนไหว นอกจากนี้ยังมีรูปแบบไฟล์อื่น.fenที่อธิบายตำแหน่งกระดาน ความท้าทายในวันนี้คือการแปลงรายการหมากรุก ( ในรูปพีชคณิต ) เป็นตำแหน่งกระดาน คำนิยาม ตำแหน่ง[a-h][1-8]: กำหนดโดยการผนวกแถว (ไฟล์) และคอลัมน์ (อันดับ) กำหนดหนึ่งใน 64 ตำแหน่งที่เป็นไปได้บนกระดาน ชิ้น[KQRBNP]?: แทนK ing, Q ueen, R ook, B ishop, K N ight, P awn ในสัญลักษณ์เกี่ยวกับพีชคณิตPไม่ได้ใช้ เมื่อใช้บนกระดานตัวอักษรจะเป็นตัวพิมพ์ใหญ่หากเป็นสีขาวมิฉะนั้นจะเป็นตัวพิมพ์เล็ก ย้าย[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O): ชิ้นส่วนตามด้วยตำแหน่งที่กำลังเคลื่อนที่ไป หากชิ้นส่วนไม่ชัดเจนให้กำหนดแถวหรือคอลัมน์หรือทั้งสองอย่าง หากชิ้นส่วนถูกจับชิ้นส่วนxจะถูกวางระหว่างชิ้นส่วนและตำแหน่ง หากการย้ายเป็นขุนแล้วจะได้รับสำหรับพระมหากษัตริย์ด้านมิฉะนั้นO-OO-O-O หากจำนำได้รับการส่งเสริมการเคลื่อนไหวจะถูกผนวกเข้ากับ=ตามด้วยชิ้นส่วนที่จะได้รับการเลื่อนตำแหน่ง +หากมีการย้ายทำให้พระมหากษัตริย์ในการตรวจสอบก็ถูกผนวกเข้ากับ หากมีการย้ายทำให้กษัตริย์ในรุกฆาต, #ผนวกกับ สีของชิ้นส่วนถูกกำหนดโดยหมายเลขเทิร์น (เปลี่ยนสีขาวและสีดำเริ่มต้นด้วยสีดำ) คณะกรรมการ(([1-8]|[KQRBNPkqrbnp])*\/){8}: แถวจะได้รับจากการแสดงรายการในลำดับแถว หากมีสี่เหลี่ยมที่ว่างเปล่าการวิ่งของสี่เหลี่ยมจัตุรัสที่ว่างเปล่าแต่ละครั้งจะถูกกำหนดโดยใช้ความยาวของการวิ่ง แถวถูกคั่นด้วยการใช้/ ตำแหน่งเริ่มต้นของคณะกรรมการคือrnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNRซึ่งหมายถึง: rnbqkbnr …
15 code-golf  chess 

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