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

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

3
ลำดับ Game-of-Life ที่ไม่ซ้ำกันนานที่สุด
รับจำนวนเต็มบวก N กำหนดรูปแบบเริ่มต้นบน N x N- กริดที่ให้ลำดับที่ไม่ซ้ำกันที่ยาวที่สุดภายใต้ Game of Life-rules และสิ้นสุดด้วยรูปแบบคงที่ (วงจรความยาว 1) เล่นบนพรู เป้าหมายไม่ใช่โปรแกรมที่สั้นที่สุด แต่เร็วที่สุด เนื่องจากโลกนี้มีขอบเขต จำกัด ในที่สุดคุณก็จะจบลงด้วยการวนซ้ำดังนั้นจึงเป็นรัฐที่เยี่ยมชมแล้วซ้ำอีก หากการวนซ้ำนี้มีระยะเวลา 1 รูปแบบเริ่มต้นจะเป็นตัวเลือกที่ถูกต้อง เอาต์พุต: รูปแบบเริ่มต้นและจำนวนรวมของสถานะที่ไม่ซ้ำกันในลำดับ (รวมถึงรูปแบบเริ่มต้น) ตอนนี้ 1x1-torus เป็นพิเศษเนื่องจากเซลล์อาจถูกพิจารณาว่าอยู่ใกล้เคียงกับตัวเองหรือไม่ แต่ในทางปฏิบัติไม่มีปัญหาเซลล์ที่มีชีวิตเดียวจะตายในกรณีใดกรณีหนึ่ง ดังนั้นอินพุต 1 ให้ผลตามลำดับความยาว 2 ลำดับเป็นหนึ่งเซลล์ที่มีชีวิตจากนั้นก็ตายไปตลอดกาล แรงจูงใจสำหรับคำถามนี้คืออนาล็อกของฟังก์ชันบีเวอร์ที่วุ่นวาย แต่มีความซับซ้อนน้อยกว่าเนื่องจากเรามีความจำที่ จำกัด นี่จะเป็นลำดับที่ดีที่จะรวมไว้ใน OEIS เช่นกัน สำหรับ N = 3 ความยาวของลำดับคือ 3 รูปแบบใด ๆ บนด้านซ้ายมือถึงพื้นที่สี่เหลี่ยมจัตุรัสสีดำสนิทขนาด 3x3 …

2
ชนะการแข่งขันฟันดาบเสมือน (เทียบกับเพื่อนแลกเปลี่ยนของคุณ)
คำเตือน: นี่เป็นปัญหาที่ค่อนข้างซับซ้อนในรูปแบบการต่อสู้แบบ king-of-the-hill พร้อมกับการสุ่มเพิ่มรหัสที่ดีที่สุดอาจไม่ชนะเสมอไป โปรดอ่านกฎทั้งหมดให้ครบถ้วนเนื่องจากค่อนข้างซับซ้อน! FLAVOR TEXT บิลและสตีฟตัดสินใจที่จะมีการดวลแบบ "เป็นมิตร" แต่การมีคนรวยและชาญฉลาดมากจึงตัดสินใจที่จะให้โปรแกรมเมอร์ที่ดีที่สุดของพวกเขาลองส่งรหัสเพื่อเอาชนะซึ่งกันและกัน คุณกำลังพูดว่าโปรแกรมเมอร์ OBJECTIVE ในการฟันดาบเป้าหมายของคุณคือทำคะแนนความนิยมมากที่สุดกับคู่ต่อสู้ของคุณ MOVES รหัสของคุณจะมีตัวเลือก "ย้าย" ดังต่อไปนี้ โจมตี Parry บล็อก Lunge และ หัวหน้า หน้าอก เท้า SCORING POINTS จู่โจมเต้น Parrying 1 แต้ม Lunging beats Blocking, 1 แต้ม Parrying Beats Lunging, 1พ้อยท์ Blocking beats จู่โจม, 1 จุด Lunging เสมอการโจมตีด้วยผู้เล่น lunging ไม่สามารถปิดกั้นหรือปัดป้องในรอบถัดไปและผู้เล่นที่โจมตีไม่สามารถ ที่จะโจมตีหรือแทงรอบต่อไป …

27
สร้างคำที่ออกเสียงได้
ความท้าทายนั้นง่าย: สร้างคำ ข้อมูลจำเพาะ: คำต้องออกเสียงได้ สิ่งนี้ถูกนิยามว่าเป็น "การสลับระหว่างพยัญชนะและสระ" พยัญชนะเป็นหนึ่งในตัวอักษรต่อไปนี้: bcdfghjklmnpqrstvwxz เสียงสระเป็นหนึ่งในตัวอักษรต่อไปนี้: aeiouy Word ต้องถูกสร้างแบบสุ่ม คำต่างๆต้องมีพยัญชนะและสระทุกตัว (คุณไม่สามารถใช้bcdfสำหรับพยัญชนะและaeiสระเท่านั้น) Word ต้องมี 10 ตัวอักษร รหัสที่สั้นที่สุด (ในจำนวนตัวอักษร) ชนะ

6
Code Golf: ผสมถั่วเพื่อที่จะไม่ได้สัมผัสชนิดเดียวกัน
การป้อนข้อมูล: อินพุตคืออาร์เรย์ของถั่วแบบสุ่ม (ในภาษาของคุณ) ถั่วที่เป็นไปได้มีดังนี้ โปรแกรมของคุณต้องมีวิธีในการเป็นตัวแทนของถั่วแต่ละชนิดเช่นรหัสจำนวนเต็ม โปรแกรมจะต้องสามารถจัดการขนาดอาร์เรย์ของการกำหนดค่าของถั่วใด ๆ ถั่วที่เป็นไปได้: Kola nut Macadamia Mamoncillo Maya nut Mongongo Oak acorns Ogbono nut Paradise nut Pili nut Pistachio Walnut เอาท์พุท: เอาต์พุตจะต้องเป็นอาเรย์ที่เรียงลำดับตามแบบที่ไม่มีถั่วชนิดเดียวกัน หากเป็นไปไม่ได้ผลลัพธ์ควรเป็นอาเรย์ที่ว่างเปล่า ตัวอย่างอินพุท (ประยุกต์): ["walnut", "walnut", "pistachio"] ตัวอย่างผลลัพธ์: ["walnut", "pistachio", "walnut"] การแก้ปัญหาอาจไม่เพียงแค่สับเปลี่ยนอาเรย์จนกว่าจะมีความเป็นเอกลักษณ์โดยบังเอิญ ประเภทการจ้างงานจะต้องกำหนดขึ้น

3
ความปลอดภัยโดย Post-It
อย่างที่คุณอาจรู้ว่าแฮ็คเกอร์อยู่ทุกหนทุกแห่งและพวกเขาต้องการแฮ็คทุกสิ่ง คุณถูกถามว่าจะทำให้ความต้องการรหัสผ่านซึ่งจะหยุดแฮกเกอร์ใด ๆ ปัญหาคือหัวหน้าของคุณได้ยินว่าการจ่ายเงินให้ LOC นั้นเป็นสิ่งที่ชั่วร้ายและเขาจ่ายเงินให้คุณ $ 1800 - $ 0.03 * ตัวอักษรต่อเดือนเพื่อให้คุณเขียนสิ่งที่ง่ายที่สุดซึ่งอาจเป็นไปได้ ดังนั้นคุณต้องใช้ตัวละครจำนวนน้อย (หวังว่าตัวเล็กมาก) หรือลืมเรื่องเงิน เจ้านายของคุณไม่สนใจภาษาที่คุณจะใช้ ข้อกำหนดสำหรับรหัสผ่านที่ดีนั้นคล้ายคลึงกับในบทความที่กล่าวถึงยกเว้นข้อกำหนดของพจนานุกรมถูกลบออกเพื่อหลีกเลี่ยงการแก้ปัญหาขึ้นอยู่กับไฟล์ภายนอกคุณไม่จำเป็นต้องตรวจสอบตัวอักษรที่จัดเรียงใหม่ (ยากที่จะเข้าใจความหมายของมัน) กฎสุดท้ายจะถูกลบออก (3/4 คืออะไร) และจะไม่ตรวจสอบรหัสผ่านเก่า ข้อกำหนดที่แน่นอนหลังจากลบข้อกำหนดบางอย่างออกจากบทความที่ลิงก์คือ: มีอย่างน้อย 8 ตัวอักษร! ไม่เกิน 12 ตัวอักษร! มีตัวอักษรตัวพิมพ์ใหญ่และตัวเล็ก! มีตัวอักษรตัวพิมพ์ใหญ่ไม่เกิน 8 ตัว! มีตัวอักษรตัวพิมพ์เล็กไม่เกิน 8 ตัว! มีอย่างน้อย 2 ตัวอักษร! มีจดหมายนำหน้า! มีอย่างน้อย 1 หลัก! ไม่ใช่ชื่อผู้ใช้ของคุณ! ไม่ใช่ชื่อผู้ใช้ของคุณย้อนหลัง! ไม่มีชื่อผู้ใช้ของคุณ! ไม่มีชื่อผู้ใช้ของคุณย้อนหลัง! มีอักขระที่ซ้ำกันไม่เกิน 1 …
16 code-golf 

15
เกมชื่อเมือง
หากคุณต้องการเขียนโปรแกรมที่เรียงลำดับเมืองตามกฎของเกมชื่อเมือง ชื่อเมืองแต่ละเมืองควรเริ่มจากอักษรตัวสุดท้ายในชื่อเมืองก่อนหน้า เช่นLviv -> v -> Viden -> n -> Neapolis -> s -> Sidney -> y -> Yokogama -> a -> Amsterdam -> m -> Madrid -> d -> Denwer ในรายการเรียงลำดับอักษรตัวแรกของเมืองแรกและตัวอักษรสุดท้ายของสุดท้ายไม่ควรตรงกับสิ่งใดไม่จำเป็นต้องเป็นตัวอักษรเดียวกัน คุณสามารถสมมติว่าชื่อเมืองมีตัวอักษรเท่านั้น ผลลัพธ์ของโปรแกรมควรมีตัวพิมพ์ใหญ่เหมือนกับอินพุต ตัวอย่าง: % ./script Neapolis Yokogama Sidney Amsterdam Madrid Lviv Viden Denwer ["Lviv", "Viden", "Neapolis", "Sidney", "Yokogama", …

13
สร้างนาฬิกาอะนาล็อก [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เขียนโปรแกรมที่แสดงเวลาปัจจุบันของระบบเป็นนาฬิกาอะนาล็อกโดยใช้กราฟิก ASCII นาฬิกาจะต้องแสดงตัวชี้อย่างน้อยหนึ่งชั่วโมงและนาทีและต้องมีความละเอียดอย่างน้อย 5 นาที จอแสดงผลอาจมีขนาดเล็กและน่าเกลียดตามที่คุณต้องการ แต่เวลาที่แสดงควรเป็นที่จดจำได้ง่าย โปรแกรมจะต้องทำงานอย่างต่อเนื่องและอัพเดทสถานะ หากระบบของคุณสามารถล้างหน้าจอให้ใช้งานไม่เช่นนั้นจะเพียงพอที่จะทาสีนาฬิกาใหม่เมื่อสถานะเปลี่ยนไป คุณจะได้รับโบนัส -20% จากจำนวนตัวละครหากนาฬิกามีความละเอียดอย่างน้อย 1 นาที

3
โค้ดกอล์ฟ: แก้ปัญหาตรรกะของ Knights and Knaves โดยการแยกวิเคราะห์ภาษาอังกฤษ
พื้นหลัง มีสองคนคือบิลและจอห์น หนึ่งในนั้นคืออัศวินที่มักพูดความจริงเสมอและอีกคนหนึ่งเป็นอัศวินซึ่งมักพูดโกหก คุณไม่รู้ว่าใครเป็นอัศวินและใครเป็นอัศวิน จากนั้นแต่ละคนก็พูดหลายประโยคว่าใครเป็นคนอัศวินและใครเป็นอัศวิน การใช้ข้อมูลนี้คุณจะต้องสรุปว่าใครเป็นอัศวินและผู้ที่เป็นอัศวิน อัศวินและคนพาลปัญหาตรรกะจะขึ้นอยู่กับ Booleen พีชคณิต คำที่คนพูดว่าก่อให้เกิดปัญหาความพึงพอใจ Booleen แถลงการณ์ของผู้พิพากษาต้องเป็นเท็จเสมอและข้อความของอัศวินอื่น ๆ จะต้องเป็นจริงเสมอ จอห์นบอกว่า "ทั้งฉันเป็นคนคุกเข่าและบิลก็เป็นคนคุกเข่า" หากจอห์นเป็นอัศวินแล้วคำพูดนี้จะเป็นเท็จดังนั้นเขาจึงไม่สามารถเป็นอัศวิน หากเขาเป็นผู้คุกและ Bill เป็นอัศวินแถลงการณ์นี้จะยังคงเป็นเท็จแม้แต่คิดว่าส่วนแรกเป็นจริง ดังนั้นจอห์นเป็นคนคุกเข่า ความท้าทาย ความท้าทายของคุณคือการเขียนโปรแกรมที่สั้นที่สุดเท่าที่จะเป็นไปได้ซึ่งจะเขียนรายการคำแถลงของแต่ละคนและจะคิดออกว่าใครคือผู้เป็นอัศวินและใครเป็นอัศวิน มีรายละเอียดมากมายที่จะครอบคลุมดังนั้นปัญหานี้ได้อธิบายไว้ในสามส่วน อินพุต อินพุตจะเป็นสองบรรทัดตามด้วยขึ้นบรรทัดใหม่ แต่ละบรรทัดจะให้ชื่อของตัวละครหนึ่งตัวตามด้วยเครื่องหมายจุดคู่ตามด้วยประโยคหลายประโยคที่บุคคลนั้นพูด ถ้าคนคนหนึ่งเป็นอัศวินแล้วประโยคทั้งหมดของเขาจะเป็นจริงและประโยคทั้งหมดของอัศวินจะเป็นเท็จ อักษรตัวแรกของประโยคจะเป็นตัวพิมพ์ใหญ่เสมอและทุกประโยคจะลงท้ายด้วยจุด นี่คือตัวอย่าง: Joe: Both I am a knight and neither Steve is a knave nor I am a knave. Steve: Joe is …

10
ผลรวมของ (สูงสุด) 5 ครั้ง
Terence Tao ได้พิสูจน์รูปแบบการคาดเดาที่อ่อนแอของ Goldbach! ลองใช้ประโยชน์จากมัน! รับจำนวนเต็มคี่n > 1เขียนnเป็นผลรวมได้สูงสุด 5 ครั้ง ใช้อินพุตตามที่คุณต้องการและให้เอาต์พุตตามที่คุณต้องการ ตัวอย่างเช่น, def g(o): for l in prime_range(o+1): if l == o: return l, for d in prime_range(l+1): for b in prime_range(d+1): if l+d+b == o: return l,d,b for c in prime_range(b+1): for h in prime_range(c+1): if l+d+b+c+h == o: …
16 code-golf  math  primes 

4
เกณฑ์การให้คะแนนที่ดีที่สุดเกรงกลัว
ฉันสนใจที่จะเห็นคำตอบของคำถาม(ตอนนี้หมดอายุ)แต่ก็ไม่เคยได้รับการแก้ไข / ปรับปรุง เมื่อได้รับชุดลูกเต๋าเกยตื้น 6 ด้าน(การกำหนดค่าที่ถูกขโมยไปจากคำถามนี้ ) ให้กำหนดเวลาในการประมวลผลสองนาทีซึ่งการกำหนดค่าบอร์ดจะช่วยให้ได้คะแนนสูงสุดที่เป็นไปได้ (เช่นลูกเต๋าในตำแหน่งใดที่อนุญาตให้มีกลุ่มคำที่ใหญ่ที่สุดได้) วัตถุประสงค์ รหัสของคุณควรทำงานไม่เกิน 2 นาที (120 วินาที) ในเวลานั้นควรหยุดทำงานโดยอัตโนมัติและพิมพ์ผลลัพธ์ คะแนนความท้าทายสุดท้ายจะเป็นคะแนน Boggle เฉลี่ย 5 โปรแกรม ในกรณีที่เสมอกันผู้ชนะจะต้องพบว่าอัลกอริทึมใดมีคำมากกว่านี้ ในกรณีที่ยังคงมีคะแนนเสียงเท่ากันให้ผู้ชนะเลิศจะได้รับแล้วแต่ราคาใดขั้นตอนวิธีการที่พบมากขึ้น ยาว (8+)คำ กฎ / ข้อ จำกัด นี่คือความท้าทายรหัส; ความยาวรหัสไม่เกี่ยวข้อง โปรดอ้างอิงลิงค์นี้สำหรับรายการคำ ( ISPELL "english.0"รายการใช้งาน- รายการ SCOWL ไม่มีคำทั่วไปที่น่าสนใจ) รายชื่อนี้อาจถูกอ้างถึง / นำเข้า / อ่านในรหัสของคุณในแบบที่คุณต้องการ เฉพาะคำที่ตรงกับ regex ^([a-pr-z]|qu){3,16}$เท่านั้นที่จะถูกนับ (ต้องใช้ตัวอักษรพิมพ์เล็ก, 3-16 ตัวอักษร, qu …

6
สร้างบอร์ดเกรงกลัวสุ่ม
สร้างตาราง / 4x12 ตัวอักษร / ช่องว่าง: แต่ละตายควรปรากฏอย่างแม่นยำหนึ่งครั้งเลือกตำแหน่งสุ่ม สถานที่ควรใกล้เคียงกับการสับเปลี่ยนแบบสุ่มของลูกเต๋า แสดงใบหน้าแบบสุ่ม (อีกครั้งโดยประมาณโดยประมาณ) ของแต่ละตาย จัดหน้าให้ชิดซ้ายในหน้าต่าง 3 ตัวอักษร ตัวอย่างเช่น, A E A A E C D E D A Qu E E A H D เป็นบอร์ดแบบไม่สุ่มในรูปแบบที่ฉันต้องการ อนุญาตให้ใช้พื้นที่ต่อท้าย ลูกเต๋า: A A E E G N E L R T T Y A O O T …
16 code-golf  boggle 

4
เครื่องกำเนิดไฟฟ้า Markov Chain Beatbox
แค่ความคิดที่ฉันมีเมื่อวันก่อน: การทำจังหวะตามเสียงมาร์คอฟเชนที่กำหนดไว้ล่วงหน้า ฉันจำได้ว่ามีคนทำ beatbox กับ Google Translate และภาษาเยอรมัน (ตามลิงค์แล้วกดฟัง) ดังนั้นความท้าทายคือการสร้างการป้อนข้อความไปยัง Google แปลภาษาจากเครือข่ายที่กำหนด หรือคุณสามารถใช้โน้ตดนตรีและเล่นด้วยตัวเอง :) คุณสามารถทำให้โปรแกรมอ่านบรรทัดที่มีจำนวนการเต้นอีกรายการด้วยชื่อและการแสดงเมทริกซ์ของความน่าจะเป็น (คุณสามารถเลือกการแทน) คุณอาจสร้างฟังก์ชันด้วยอาร์กิวเมนต์สามตัว เช่น [การป้อนข้อมูล] 20 pv zk bschk kkkk [[.1, .4, .5, 0.], [.3, .2, .3, .2], [0., .3, .2, .5], [.1, .8, .1, 0.]] [ผลลัพธ์] บางอย่างเช่น: pv zk bschk zk pv bschk zk pv …

8
คำนวณตาราง CRC32 ในเวลารวบรวม [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ดำเนินการอ้างอิงของ CRC32คำนวณตารางการค้นหาที่รันไทม์: /* Table of CRCs of all 8-bit messages. */ unsigned long crc_table[256]; /* Flag: has the table been computed? Initially false. */ int crc_table_computed = 0; /* Make the table for a fast CRC. */ void make_crc_table(void) …

3
เรียบเรียงเสียงเรียกร้อง! [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา เป้าหมาย: สร้างและบันทึกไฟล์ใน Vim ที่มีอักขระ ASCII อย่างน้อย 25 ตัว การกดแป้นที่แน่นอนที่ใช้ในระหว่างการสร้างและบันทึกไฟล์นี้จะต้องสร้างเนื้อหาที่เหมือนกันใน Windows Notepad (โดยไม่ต้องบันทึกใน Notepad) กฎ: สำหรับวัตถุประสงค์ของการท้าทายนี้ Vim เริ่มเปิดในโหมดคำสั่ง ไม่อนุญาตให้ใช้เม้าส์ Shift จะได้รับอนุญาต Ctrl,altหรือกุญแจอื่น ๆไม่ได้รับอนุญาต โซลูชันของคุณต้องทำงานกับ"เทอร์มินัล" เริ่มต้น (ไม่ใช่ GUI) ที่จัดส่งมาพร้อมกับ Ubuntu 11.04 หรือ OS X 10.6.7 (หนึ่งในสอง) สมมติว่านี้เป็นกลุ่มของ.vimrcมีเพียงset nocompatible(โดยไม่มีการแบ่งบรรทัดหลังจากที่มัน) ~/.vimrcซึ่งเป็นตัวเองตั้งอยู่ที่ แกล้งทำเป็นว่าระบบปฏิบัติการของคุณเพิ่งติดตั้งก่อนที่จะเปิดเป็นกลุ่ม คุณต้องไม่เปิดใด …
16 quine  vim 

30
ตัวเลขที่ไม่ถูกต้อง
undulantจำนวนเป็นจำนวนที่สลับตัวเลขระหว่างขึ้นและลงเช่นจำนวนต่อไปนี้: 461902 หรือ 708143 หรือแม้กระทั่ง 1010101 แต่ไม่ 123 เพราะ 2 <3 เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งกลับค่าความจริงหากจำนวนนั้นไม่ถูกต้องและเป็นค่าเท็จ รหัสที่สั้นที่สุดชนะ หมายเหตุ : ตัวเลขหลักเดียวเป็นอินพุตที่ถูกต้อง แต่ไม่ถือว่าเป็นudulantดังนั้นisUndulantจะส่งคืน false สำหรับ n <10

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