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

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

28
ค้นหาว่าตัวเลขมีความสุขหรือไม่?
จำนวนแฮปปี้ถูกกำหนดโดยกระบวนการต่อไปนี้ เริ่มต้นด้วยจำนวนเต็มบวกใด ๆ แทนที่ตัวเลขด้วยผลรวมของกำลังสองของตัวเลขและทำซ้ำกระบวนการจนกว่าจำนวนเท่ากับ 1 (ที่มันจะอยู่) หรือมันวนซ้ำในรอบที่ไม่รวม 1 ตัวเลขเหล่านั้น ซึ่งกระบวนการนี้สิ้นสุดลงใน 1 เป็นตัวเลขที่มีความสุขในขณะที่กระบวนการที่ไม่ได้ลงท้ายด้วย 1 คือตัวเลขที่ไม่มีความสุข (หรือตัวเลขที่น่าเศร้า) รับพิมพ์ตัวเลขไม่ว่าจะเป็นความสุขหรือไม่มีความสุข Sample Inputs 7 4 13 Sample Outputs Happy Unhappy Happy หมายเหตุ: โปรแกรมของคุณไม่ควรใช้เวลาเกิน 10 วินาทีสำหรับหมายเลขใด ๆ ที่ต่ำกว่า 1,000,000,000

30
ฉันจะแยกสตริงได้อย่างไร ??? ช่วยด้วย (รหัสหลอก) [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ การบ้านของฉันรับสายและแบ่งเป็นชิ้น ๆ ในทุกบรรทัดใหม่ ฉันไม่รู้จะทำยังไง! กรุณาช่วย! หมายเหตุ: นี่เป็นคำถามการหมุนรหัส กรุณาอย่าใช้คำถามและ / หรือคำตอบอย่างจริงจัง ข้อมูลเพิ่มเติมที่นี่

30
กรรไกรกระดาษหิน
ใช้กรรไกรกระดาษร็อคคลาสสิค เงื่อนไข: ผู้ใช้จะป้อน 'r', 'p' หรือ 's' โปรแกรมจะแสดงผลลัพธ์ 'r', 'p' หรือ 's' และผลลัพธ์ ตัวเลือกโปรแกรม ('r', 'p' หรือ 's') จะต้องมีการสุ่มหลอก ( ฉันกำลังมองหาคุณโฮเวิร์ด ) ผลลัพธ์สามารถแสดงด้วยอักขระที่พิมพ์ได้ใด ๆ ควรมีผลลัพธ์ที่เป็นไปได้สามแบบเสมอสำหรับสิ่งที่ผู้ใช้มีอินพุต (ผู้ใช้ชนะแพ้หรือเสมอ) จะเกิดอะไรขึ้นหากผู้ใช้ไม่ป้อนข้อมูลใด ๆ หรือสิ่งที่แตกต่างที่ 'r', 'p' หรือ 's' ไม่ควรสำคัญ คุณต้อง: ระบุรหัส golfed รหัส ungolfed คุณเรียกใช้โปรแกรมอย่างไร ตัวอย่างการเรียกใช้ ฉันจะเลือกคำตอบที่มีตัวละครน้อยถ้าเลือกเน็คไทคำตอบที่โหวตมากที่สุดจะถูกเลือก การเล่นกอล์ฟที่ดีและอาจเป็นโชคในความโปรดปรานของคุณ ฉันจะโพสต์คำตอบด้วยตนเองใน Java สำหรับคนที่อาศัยอยู่ในภูเขาใต้ก้อนหิน: r = ร็อค p …
21 code-golf  game 

2
สร้างคำไขว้ที่ไม่ซ้ำกันที่แก้ไขได้ ... โดยไม่ต้องมีเงื่อนงำ
คุณลองนึกภาพการไขปริศนาอักษรไขว้ New York Times โดยไม่มีเบาะแสใด ๆ อาจจะไม่ได้กับความคิดสร้างสรรค์และคำและวลีใหม่ทั้งหมดที่ปรากฏในปริศนาอักษรไขว้ที่ทันสมัย ​​แต่มีรายการคำคงที่มีความหวังบางอย่าง ในความท้าทายนี้คุณสร้างตารางตัวต่อไขว้ซึ่งเป็นไปได้ในทางทฤษฎี ความท้าทาย เพิ่มจำนวนสี่เหลี่ยมสีขาวให้ใหญ่ที่สุดในตารางตัวต่อปริศนาไขว้ขนาด 15x15 สีขาวและสีดำเพื่อให้สี่เหลี่ยมสีขาวนั้นเต็มไปด้วยตัวอักษรที่ไม่ซ้ำกัน ชี้แจงการก่อสร้างตาราง ในหนังสือพิมพ์ของสหรัฐอเมริกากริดไขว้มักจะถูกสร้างขึ้นเพื่อให้ตัวอักษรทุกตัวมีการ "ตรวจสอบ" ซึ่งหมายความว่ามันเป็นส่วนหนึ่งของทั้งคำ "ข้าม" และคำ "ลง" ในสหราชอาณาจักรและที่อื่น ๆ (โดยเฉพาะในปริศนาอักษรไขว้ที่คลุมเครือ ) กรณีนี้ไม่จำเป็นว่า: หากคำว่า "ข้าม" หรือ "ลง" จะเป็นตัวอักษรเพียงตัวเดียวก็ไม่จำเป็นต้องเป็นคำที่แท้จริง (เช่น "A" หรือ "ฉัน" ") สำหรับความท้าทายนี้ให้ปฏิบัติตามกฎที่ผ่อนคลายมากขึ้น: คำตัวอักษรเดียวไม่จำเป็นต้องปรากฏในรายการคำ มีประเพณีอื่น ๆ อีกมากมาย (ในสหรัฐอเมริกาและที่อื่น ๆ ) ซึ่งไม่จำเป็นต้องปฏิบัติตามในการท้าทายนี้ ตัวอย่างเช่นคำอาจมีความยาวเพียงสองตัวอักษรคำได้รับอนุญาตให้ทำซ้ำและตารางไม่จำเป็นต้องมีความสมมาตร (การหมุน) เป็นไปได้ไหม ใช่ หนึ่งสามารถเขียนสคริปต์สั้น ๆ …

24
Fizz-Buzzify สตริง
คุณจะได้รับสตริงที่มีตัวอักษรภาษาอังกฤษเท่านั้นทั้งตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (ASCII 65-90 และ 97-122) งานของคุณคือการส่งออกสตริงรุ่น Fizz-Buzzified Fizz-Buzzify สตริงได้อย่างไร ตัวอักษรแต่ละตัวที่มีดัชนีสม่ำเสมอในตัวอักษรภาษาอังกฤษ (ตัวอักษรต้องเป็นดัชนี 1:) a->1,b->2,...,z->26จะถูกเปลี่ยนเป็นfizzหากเป็นตัวพิมพ์เล็กและFIZZเป็นตัวพิมพ์ใหญ่ ( f -> fizz, F -> FIZZ) ตัวอักษรแต่ละตัวที่มีดัชนีคี่ในตัวอักษรภาษาอังกฤษจะกลายเป็นbuzzถ้ามันเป็นตัวพิมพ์เล็กและBUZZถ้ามันเป็นตัวพิมพ์ใหญ่ ( e -> buzz, E -> BUZZ) ลองตัวอย่างเพื่อแสดงอัลกอริทึมโดยใช้สตริงCodeGolf(ช่องว่างที่เพิ่มเข้ามาเพื่อความชัดเจน): "C o d e G o l f" -> "BUZZ buzz fizz buzz BUZZ buzz fizz fizz" ^ ^ ^ ^ …
21 code-golf  string 

26
An หรือ An An?
ในภาษาอังกฤษมีความสนุกสนานและความแตกต่างอย่างง่ายระหว่างanและa: คุณใช้anเมื่อก่อนหน้าคำที่ขึ้นต้นด้วยเสียงสระและaเมื่อคำนั้นเริ่มต้นด้วยเสียงพยัญชนะ เพื่อความเรียบง่ายในการท้าทายนี้ให้anนำหน้าคำที่ขึ้นต้นด้วยสระ ( aeiou) และaนำหน้าคำที่ขึ้นต้นด้วยพยัญชนะ อินพุต สตริงประกอบด้วยอักขระ ASCII เพียงพิมพ์ที่มี[?]ปรากฏอยู่ในสถานที่ที่คุณต้องเลือกที่จะใส่หรือan จะปรากฏต่อหน้าคำเสมอ คุณสามารถสันนิษฐานได้ว่าประโยคนั้นจะถูกต้องตามหลักไวยากรณ์และจัดรูปแบบเหมือนปกติa[?] เอาท์พุต สตริงอินพุตที่[?]ถูกแทนที่ด้วยคำที่เหมาะสม ( anหรือa) คุณต้องกังวลเกี่ยวกับตัวพิมพ์ใหญ่! เมื่อใดที่จะลงทุน ใช้อักษรตัวพิมพ์ใหญ่คำถ้าไม่มีตัวอักษรนำหน้า (เป็นคำแรกในอินพุต) หรือหากเป็นตัวอักษรตัวใดตัวหนึ่ง.?!ตามด้วยช่องว่าง ตัวอย่าง Input: Hello, this is [?] world! Output: Hello, this is a world! Input: How about we build [?] big building. It will have [?] orange banana hanging out …

6
รูปหกเหลี่ยมที่เชื่อมต่อกับ ASCII
ภาพรวม ให้รูปหกเหลี่ยมจำนวนหนึ่งจัดเรียงไว้ในรูปร่างที่เชื่อมต่อภายในขอบเขตของภาพศิลปะ 50 x 50 ASCII รูปร่างที่คุณเลือกนั้นสามารถเลือกได้ตามใจชอบไม่ว่าคุณจะชอบอะไรในการเล่นกอล์ฟตราบใดที่มันเชื่อมต่อกัน มันอาจจะมีรูหากพวกมันมีขนาดใหญ่กว่าหกเหลี่ยมหนึ่ง (มิฉะนั้นจำนวนของรูปหกเหลี่ยมจะไม่ชัดเจน) แบบ รูปหกเหลี่ยมทั้งหมดต้องอยู่ในรูปแบบต่อไปนี้ (ขนาดและการวางแนวนี้เท่านั้นที่ถูกต้อง): __ / \ \__/ Note there are 2 underscores per horizontal edge. รูปหกเหลี่ยมสองจุดเชื่อมต่อกันโดยตรงหากพวกเขาแบ่งปันขอบ: __ __ / \__ / \ \__/ \ \__/ \__/ or / \ \__/ รูปหกเหลี่ยมสองอันไม่ได้เชื่อมต่อหากแบ่งปันเพียงจุดยอด: __ __ / \/ \ \__/\__/ การแบ่งปันครึ่งหนึ่งของขอบยังไม่นับรวมเป็นสิ่งที่เชื่อมต่อ: __ / \ …

20
ค้นหาวันอาทิตย์สุดท้ายของทุกเดือนของปีที่กำหนด
วิธีแก้ปัญหา F # ที่รู้จักกันใน 140 ตัวอักษรและนี่คือปัญหารหัส Rosetta ผลลัพธ์ที่ต้องการใน stdout หรือตัวแปรสตริงสำหรับปีอินพุต2014: 2014-01-26 2014-02-23 2014-03-30 2014-04-27 2014-05-25 2014-06-29 2014-07-27 2014-08-31 2014-09-28 2014-10-26 2014-11-30 2014-12-28 ตามที่ได้รับการร้องขอสำหรับ 1900: 1900-01-28 1900-02-25 1900-03-25 1900-04-29 1900-05-27 1900-06-24 1900-07-29 1900-08-26 1900-09-30 1900-10-28 1900-11-25 1900-12-30 และ 2,000: 2000-01-30 2000-02-27 2000-03-26 2000-04-30 2000-05-28 2000-06-25 2000-07-30 2000-08-27 2000-09-24 2000-10-29 2000-11-26 2000-12-31 …
21 code-golf  date 

8
รหัสที่สั้นที่สุดเพื่อโยน IllegalArgumentException ใน Java
ตกลงเราทุกคนรู้วิธีปกติในการโยน IllegalArgumentException ใน Java: throw new IllegalArgumentException(); // 37 characters แต่จะต้องมีวิธีที่สั้นกว่า (ดังในตัวอักษรน้อยกว่า) เราจะสร้าง java.lang.IllegalArgumentException ด้วยรหัสที่น้อยลงได้อย่างไร แฟรกเมนต์โค้ดต้องคอมไพล์และรันใน java 7 ไม่มีการนำเข้า / แพ็คเกจภายนอก (เช่นไม่ได้ใช้java.util.Arrays.toString()) ข้อยกเว้นเท่านั้น: java.lang เนื่องจากมีการนำเข้าโดยอัตโนมัติ คุณสามารถเพิ่มวิธีการ / ชั้นเรียนของตัวเอง มันจะต้องโยน java.lang.IllegalArgumentException แก้ไข:เอาต์พุตข้อผิดพลาด (stacktrace) ต้องตั้งชื่อมัน java.lang.IllegalArgumentException ดังนั้นจึงไม่มีคลาสย่อยของมัน มีฐานที่จะเริ่มต้นจาก: class Titled { public static void main(String[] args) { throw new IllegalArgumentException(); } }
21 code-golf  java 

14
ค้นหา Semordnilaps
Semordnilaps (ยังเป็นที่รู้จักกันในนาม heteropalindromes, กึ่ง palindromes, ครึ่ง palindromes, reversgrams, mynoretehs, anagrams ย้อนกลับได้คำพลิกผันคำหรือ anadromes) เป็นคำที่สะกดเมื่อย้อนกลับ ตัวอย่างบางส่วนคือ: วอร์ด <=> วาด ขุด <=> เดนิม อะไหล่ <=> สาย รับจำนวนเต็มบวก N (ผ่านฟังก์ชั่นอาร์กิวเมนต์หรือ STDIN) ส่งคืน / ส่งออกรายการ semordnilaps จากรายการคำศัพท์ภาษาอังกฤษนี้ที่มีตัวอักษร N ทั้งหมด w.txtรายชื่อของคำที่สามารถบันทึกไว้ในเครื่องคอมพิวเตอร์ของคุณเป็นไฟล์ข้อความที่เรียกว่า: นอกจากนี้คุณยังสามารถรับรายการจาก url แต่จะรวมอยู่ในจำนวนไบต์ กฎ: Palindromesไม่ใช่ semordnilaps! ดังนั้นคำว่า "เที่ยง", "โรเตอร์" และ "เรดาห์" ไม่ควรรวมอยู่ในรายการ ควรมีเพียงหนึ่งคำ (ในคู่ semordnilap) …
21 code-golf 

25
รหัส - กอล์ฟ: การเรียงสับเปลี่ยน
เขียนฟังก์ชั่นที่ใช้เป็นชุดของจำนวนเต็ม (สามารถเป็นรายการอาร์เรย์หรือคอนเทนเนอร์อื่น ๆ ที่มีตัวเลขต่างกัน) และส่งออกรายการการเปลี่ยนลำดับทั้งหมด Python (95 ตัวอักษร) : p=lambda s:s and sum(map(lambda e:map(lambda p:[e]+p,p(filter(lambda x:x!=e,s))),s),[]) or [[]] มันคงจะดีถ้าถูกทุบในภาษาเดียวกัน แต่การใช้งานในภาษาอื่นนั้นยินดีต้อนรับ!

23
สร้างชื่อคอลัมน์ excel จากดัชนี
อันนี้มาจากปัญหาชีวิตจริง แน่นอนว่าเราแก้ไขมันได้ แต่มันทำให้รู้สึกเหมือนว่าทำได้ดีกว่านั่นคือวิธีแก้ปัญหาที่มีความยาวและอ้อมเกินไป อย่างไรก็ตามเพื่อนร่วมงานของฉันไม่สามารถนึกถึงวิธีการเขียนที่กระชับยิ่งขึ้น ดังนั้นฉันนำเสนอมันเป็นรหัสกอล์ฟ เป้าหมายคือการแปลงจำนวนเต็มที่ไม่ใช่ค่าลบเป็นสตริงเช่นเดียวกับที่ Excel แสดงส่วนหัวของคอลัมน์ ดังนั้น: 0 -> A 1 -> B ... 25 -> Z 26 -> AA 27 -> AB ... 51 -> AZ 52 -> BA ... 16,383 -> XFD ต้องทำงานอย่างน้อยมากถึง 16,383 แต่เกินกว่าจะยอมรับได้เช่นกัน (ไม่มีคะแนนโบนัส) ฉันรอคอยมากที่สุดในการแก้ปัญหา C # แต่ตามประเพณีของรหัสกอล์ฟภาษาการเขียนโปรแกรมจริงใด ๆ ยินดีต้อนรับ

8
ตัวแก้ซูโดกุที่เร็วที่สุด
พบผู้ชนะ ดูเหมือนกับว่าเรามีผู้ชนะ! หากไม่มีใครวางแผนที่จะแข่งขันกับนักแก้ปัญหา Sudoku ที่เร็วที่สุดในโลกผู้ใช้ 53x15 จะชนะด้วย Tdoku ตัวแก้ที่รวดเร็วอย่างไม่น่าเชื่อ สำหรับทุกคนที่ยังคงทำงานกับนักแก้ปัญหาของฉันฉันจะยังคงเป็นมาตรฐานในการส่งผลงานใหม่เมื่อฉันมีเวลา ความท้าทาย เป้าหมายของเกมของ Sudoku คือการเติมกระดานด้วยตัวเลข 1-9 ซึ่งเป็นหนึ่งในแต่ละเซลล์ในลักษณะที่แต่ละแถวคอลัมน์และกล่องจะมีตัวเลขเพียงหนึ่งครั้งเท่านั้น สิ่งที่สำคัญมากของตัวต่อ Sudoku คือควรมีวิธีแก้ปัญหาที่ถูกต้องเพียงข้อเดียว เป้าหมายของการท้าทายนี้ง่ายมากคุณควรแก้ปริศนา Sudoku ให้เร็วที่สุดเท่าที่จะทำได้ อย่างไรก็ตามคุณจะไม่แก้ปัญหา Sudoku ตัวเก่า ๆ คุณจะต้องไขปริศนา Sudoku ที่ยากที่สุดที่มีอยู่นั่นคือ 17-clue Sudokus นี่คือตัวอย่าง: กฎระเบียบ ภาษา คุณสามารถใช้ภาษาใดก็ได้ ถ้าฉันไม่ได้มีคอมไพเลอร์ที่ติดตั้งสำหรับภาษาของคุณคุณควรจะสามารถที่จะให้ชุดของคำสั่งบรรทัดคำสั่งที่จำเป็นในการติดตั้งสภาพแวดล้อมที่สคริปต์ของคุณสามารถทำงานบนลินุกซ์อีกด้วย เครื่องเกณฑ์มาตรฐาน มาตรฐานจะทำงานบน Dell XPS 9560, 2.8GHz Intel Core i7-7700HQ (เพิ่มความเร็ว 3.8GHz) 4 คอร์, 8 …

30
การประมาณของ e
เราทุกคนรู้ว่าหมายเลขของออยเลอร์แทนด้วย e ถึงกำลังของตัวแปรบางตัว x สามารถประมาณได้โดยใช้ส่วนขยายของMaclaurin Series : โดยการให้ x เท่ากับ 1 เราได้ ท้าทาย เขียนโปรแกรมในภาษาใดก็ได้ที่ใกล้เคียงกับจำนวนของออยเลอร์โดยรับอินพุต N และคำนวณอนุกรมเป็นคำศัพท์ N-th โปรดทราบว่าเทอมแรกมีตัวส่วน 0 !, ไม่ใช่ 1!, เช่น N = 1 ตรงกับ 1/0! เกณฑ์การให้คะแนน โปรแกรมที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ

24
คะแนนโบว์ลิ่งสิบพิน - รุ่นโบว์ลิ่งโลก
คะแนนโบว์ลิ่งโลก หลายคนไปที่ศูนย์โบว์ลิ่งในพื้นที่เพื่อเล่นโบว์ลิ่งไม่กี่เกมและหลายคนยังคงดิ้นรนเพื่อคำนวณคะแนนของพวกเขา World Bowling ได้แนะนำระบบการให้คะแนนที่ง่ายขึ้นเพื่อดึงดูดผู้คนให้เข้าร่วมการแข่งขันมากขึ้น ระบบการให้คะแนนนี้ใช้ในเกมระหว่างประเทศ ระบบการให้คะแนนทำงานเช่นนี้ (จากWikipedia ): ระบบการให้คะแนนโบว์ลิ่งของโลก - อธิบายว่า "การให้คะแนนเฟรมปัจจุบัน" [32] - ผลตอบแทนพินดังต่อไปนี้: การนัดหยุดงาน: 30 (ไม่คำนึงถึงผลของการหมุนต่อเนื่อง) สำรอง: 10 บวก pinfall ในม้วนแรกของเฟรมปัจจุบัน เปิด: pinfall ทั้งหมดสำหรับกรอบปัจจุบัน หากคุณไม่คุ้นเคยกับโบว์ลิ่งสิบพินนี่คือบทสรุป มี 10 พินในตอนท้ายของเลนโบว์ลิ่งที่เป้าหมายคือการทำให้พวกเขาทั้งหมดล้มลงด้วยลูกโบว์ลิ่ง คุณได้รับลูกบอล 2 ลูกเพื่อพยายามล้มพวกเขาทั้งหมดโดยเฉพาะอย่างยิ่งการตีพวกเขาทั้งหมดด้วยการหมุนรอบแรก (เรียกว่าการโจมตี ) หากคุณได้รับการตีจากนั้นกรอบนั้นจะเสร็จสมบูรณ์และคุณไม่จำเป็นต้องหมุนลูกบอลเป็นครั้งที่สอง นัดหยุดงานมีค่า 30 หากคุณไม่ล้มลงทั้งสิบคุณจะได้รับอีกหนึ่งม้วน หากคุณเคาะลงทั้งหมดของหมุดที่เหลือที่เป็นที่รู้จักกันเป็นอะไหล่ คะแนนมีค่า 10 พิน + จำนวนพินที่ล้มในการหมุนครั้งแรก ตัวอย่างเช่นถ้าฉันล้มลง 7 พินจากนั้นก็จัดการที่จะล้มลง 3 …

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