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

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

4
จับคู่สตริงที่มีความยาวเป็นกำลังสี่
ภายในขอบเขตของคำถามนี้ให้เราพิจารณาเฉพาะสตริงที่ประกอบด้วยอักขระxซ้ำจำนวนครั้งโดยพลการ ตัวอย่างเช่น: <empty> x xx xxxxxxxxxxxxxxxx (อันที่จริงมันไม่จำเป็นต้องเป็นx- ตัวละครใด ๆ ได้ดีตราบใดที่สายอักขระทั้งหมดมีอักขระ 1 ชนิดเท่านั้น) เขียน regex ในรูปแบบ regex ที่คุณเลือกเพื่อจับคู่สตริงทั้งหมดที่มีความยาวเท่ากับ4สำหรับจำนวนเต็มจำนวนที่ไม่เป็นลบ n (n> = 0) ตัวอย่างเช่นสตริงที่มีความยาว 0, 1, 16, 81 เป็นต้นถูกต้อง ส่วนที่เหลือไม่ถูกต้อง เนื่องจากข้อ จำกัด ทางเทคนิคค่าของ n ที่มากกว่า 128 จึงยากที่จะทดสอบ อย่างไรก็ตาม regex ของคุณควรทำงานอย่างมีเหตุผลโดยไม่คำนึงถึง โปรดทราบว่าคุณไม่ได้รับอนุญาตให้ใช้รหัสโดยอำเภอใจใน regex ของคุณ (สำหรับผู้ใช้ Perl) อนุญาตให้ใช้ไวยากรณ์อื่น ๆ (ดูรอบ ๆ ย้อนกลับอ้างอิง ฯลฯ ) …

29
โปรแกรมวลีที่คุณชื่นชอบ
เลือกคำพูดหรือวลีที่ว่า 5 Programming puzzles and code golf!คำยาวเช่น เขียนโปรแกรมที่เมื่อผนวกเข้ากับตัวเองnครั้งแรกเอาท์พุท1 + nคำพูดของวลีของคุณในการสั่งซื้อ ตัวอย่างเช่นหากรหัสโปรแกรมMYPROGของคุณและวลีของคุณกำลังProgramming puzzles and code golf!ทำงานอยู่ ... MYPROG ควรส่งออก Programming MYPROGMYPROG ควรส่งออก Programming puzzles MYPROGMYPROGMYPROG ควรส่งออก Programming puzzles and MYPROGMYPROGMYPROGMYPROG ควรส่งออก Programming puzzles and code MYPROGMYPROGMYPROGMYPROGMYPROG ควรส่งออก Programming puzzles and code golf! การต่อท้ายมากกว่า 4 ครั้งไม่ได้ถูกกำหนดโปรแกรมของคุณอาจทำอะไรก็ได้ กฎระเบียบ วลีของคุณต้องเป็นภาษาอังกฤษที่มีความหมายทางไวยากรณ์ เป็นการดีที่ควรจะใช้ตัวพิมพ์ใหญ่และเครื่องหมายวรรคตอนอย่างเหมาะสม วลีของคุณอาจจะยาว ๆ แต่เอนโทรปีของตนตามที่คำนวณได้จากhttp://www.shannonentropy.netmark.pl/ …

12
*** *** ภูมิทัศน์
วัตถุประสงค์ : เขียนโปรแกรมที่สร้างทิวทัศน์ (และ) ของ ASCII-art และ skylines ที่สวยงาม! โปรแกรมของคุณมีเพียงหนึ่งอินพุต: สตริงประกอบด้วยชุด / การซ้ำซ้อนของตัวอักษร0123456789abcใด ๆ สำหรับแต่ละอักขระอินพุตเอาต์พุตบรรทัดแนวตั้งที่ประกอบดังนี้: . .. ... oooo ooooo OOOOOO OOOOOOO XXXXXXXX XXXXXXXXX XXXXXXXXXX 0123456789 ตัวอักษรabcแทนตามด้วยหมายเลขหนึ่งและวาดเส้นแนวตั้ง n ตามลำดับที่ 1,2 หรือ 3 หลุม (ช่องว่าง) ที่ด้านล่าง ตัวอย่าง อาคารไครสเลอร์ อินพุต: 2479742 . . ... ooo ooo OOOOO OOOOO XXXXXXX XXXXXXX XXXXXXX ทัชมาฮาล …

29
รหัส CPU น้อยที่สุดทดสอบความเครียด ...
บทนำ มียูทิลิตีมากมายที่สามารถสร้างโหลด CPU สูงเพื่อทดสอบหน่วยประมวลผลของคุณ ใน Microsoft Windows คุณสามารถใช้ออนบอร์ดcalculator.exeป้อนจำนวนมากเช่น999999999นั้นและกดn!หลาย ๆ ครั้งเพื่อให้ซีพียูของคุณทำงานล่วงเวลาได้ แต่มีวิธีแก้ไขอย่างไรถ้าคุณไม่ได้สร้างมันขึ้นมาเอง? ภารกิจ ภารกิจของคุณ - ถ้าคุณเลือกที่จะยอมรับ - คือการสร้างเครื่องมือทดสอบความเครียดของ CPU ที่เล็กที่สุดในโลก ต้อง… ต้องสร้างโหลด CPU 100% จนกว่าจะถูกยกเลิก ต้องใช้อินพุตเป็นตัวเลขแสดงถึงจำนวนวินาทีที่การทดสอบความเค้นควรทำงาน ต้องอนุญาตให้ผู้ใช้โต้ตอบ (กดปุ่มปิดหน้าต่างเทอร์มินัลหรืออะไรทำนองนั้น) ซึ่งจะทำให้ผู้ใช้ยกเลิกการทดสอบความเครียดและ / หรือออกจากโปรแกรม ต้องกำหนดเป้าหมาย Microsoft Windows, Mac OSx และ / หรือ Linux (แม้แต่หนูแฮมสเตอร์ก็สามารถสร้างปัญหา Comodore64 ... คุณต้องกำหนดเป้าหมายระบบปฏิบัติการปัจจุบัน) ต้องไม่… ต้องไม่ใช้โปรแกรมหรือเครื่องมือของบุคคลที่สามซึ่งแทนที่การทำงานที่คาดหวัง (การเสนอทางลัดในsystem('cpuStressThing.exe')ไลค์ของการตัดสิทธิ์ข้อเสนอของคุณ) อาจ… อาจใช้วิธี / อัลกอริทึม …
28 code-golf 

21
Morra เกมแห่งขุนนางแห่งราชา
พื้นหลัง เกมของMorraเป็นเกมที่ง่าย ในเวอร์ชั่น "ดั้งเดิม" ผู้เล่นหลายคนพร้อมกันโยนหมายเลข 0-5 ด้วยมือขณะที่เดายอดรวมของมือทุกคน รุ่นที่ฉันจะใช้ที่นี่ได้รับการแก้ไขเพื่อเพิ่มศักยภาพสำหรับกลยุทธ์ที่ไม่สำคัญและมีการอธิบายไว้ด้านล่าง: มีผู้เล่นสองคน เหมือนกรรไกรหินกระดาษผู้เล่นเคลื่อนที่ไปพร้อม ๆ กัน ในแต่ละเทิร์นผู้เล่นแต่ละคนเลือกหมายเลข 0-5 และเดาว่าคู่ต่อสู้เลือก 0-5 ซึ่งหมายความว่าตัวเลขสองตัวจะถูกส่งออกในแต่ละเทิร์น เพื่อชี้แจงชัดเจนตัวเลขทั้งสองควรอยู่ในช่วง 0-5 โดยรวม หากคุณเดาตัวเลือกของคู่ต่อสู้ได้อย่างถูกต้อง แต่ฝ่ายตรงข้ามไม่คาดเดาอย่างถูกต้องคุณจะได้คะแนนจำนวนหนึ่งเท่ากับผลรวมของตัวเลขสองตัวที่เล่น ตัวอย่างเช่นหากตัวเลขที่เล่นเป็น 3 และ 5 การทายถูกต้องจะมีค่า 8 คะแนน หากผู้เล่นทั้งสองหรือไม่เดาถูกต้องจะไม่มีการให้คะแนน คนที่มีคะแนนมากที่สุดหลังจากรอบ 1,000 ชนะเกมนั้น การแข่งขัน ทัวร์นาเมนต์จะดำเนินการในลักษณะวนรอบและจะดำเนินการโดยสร้างคู่ที่เป็นไปได้ของการแข่งขัน สำหรับชัยชนะแต่ละครั้งผู้เข้าแข่งขันจะได้รับ 2 คะแนนชัยชนะ ผลเสมอกันใน 1 คะแนนชัยชนะ ไม่มีการเก็บคะแนนชัยชนะสำหรับการแพ้ ผู้ชนะเลิศการแข่งขันจะต้องเป็นผู้เข้าแข่งขันที่มีคะแนนชัยชนะมากที่สุดกับผู้อื่น วิธีเข้าร่วม จะมีสองวิธีในการส่งบอทเข้าแข่งขัน วิธีแรกและเป็นวิธีที่ได้รับความนิยมอย่างมากคือการใช้งานอินเทอร์เฟซ Java ที่มาจากคอนโทรลเลอร์ วิธีที่สองคือการเขียนโปรแกรมอิสระ เรามาครอบคลุมวิธีการจาวาก่อน …

17
แปลงตัวเลขเป็นรูปแบบการแสดงผล 7 ส่วน
ให้สองตัวเลข A, B พิมพ์หมายเลข B เป็นรูปแบบ LED ดิจิตอลโดยที่ A เป็นสเกล การป้อนข้อมูล: 1 2320451640799518 ouput: _ _ _ _ _ _ _ _ _ _ _ _ _| _| _|| ||_||_ ||_ |_|| | ||_||_||_ ||_| |_ _||_ |_| | _| ||_| ||_| | | | _| ||_| การป้อนข้อมูล: 2 23 …

12
อายุการใช้งานของ Worm
ข้อตกลงและเงื่อนไข หนอนคือรายการของจำนวนเต็มไม่เป็นลบใด ๆ และขวาสุด (เช่นที่ผ่านมา ) องค์ประกอบที่เรียกว่าหัว ถ้าหัวไม่ได้เป็น 0, หนอนมีส่วนที่ใช้งานซึ่งประกอบด้วยบล็อกที่ต่อเนื่องกันยาวที่สุดขององค์ประกอบที่มีหัวและมีทุกองค์ประกอบอย่างน้อยมีขนาดใหญ่เท่าหัว ส่วนที่ใช้งานลดลงเป็นส่วนที่ใช้งานกับหัว decremented โดย 1 ตัวอย่างเช่นหนอน3 1 2 3 2มีส่วนที่ใช้งานและในส่วนของการใช้งานลดลงคือ2 3 22 3 1 กฎของวิวัฒนาการ หนอนวิวัฒนาการทีละขั้นตอนดังนี้: ในขั้นตอน t (= 1, 2, 3, ... ) หากส่วนหัวเป็น 0: ลบส่วนหัว อื่น: แทนที่ส่วนที่ใช้งานอยู่ด้วย t + 1 ที่ต่อกันกับสำเนาของส่วนที่ทำงานลดลง ความเป็นจริง : หนอนใด ๆ ในที่สุดก็วิวัฒนาการเป็นรายการที่ว่างเปล่าและจำนวนของขั้นตอนในการทำเช่นนั้นเป็นหนอนของอายุการใช้งาน (รายละเอียดสามารถพบได้ในหลักการหนอนกระดาษโดย LD Beklemishev …

13
เขียนฟังก์ชั่นที่จะบอกคุณว่าบรรทัดใดที่ถูกลบไป
เขียนฟังก์ชั่นที่มีห้าบรรทัด ถ้าคุณเรียกใช้ฟังก์ชันตามที่ควรจะเป็น 0 หากคุณลบหนึ่งในห้าบรรทัดใด ๆ และเรียกใช้ฟังก์ชั่นควรบอกคุณว่าบรรทัดใดที่ถูกลบออก (เช่นหากคุณลบบรรทัดสุดท้ายมันควรกลับ 5) ความกะทัดรัดความแปลกใหม่และความสง่างามล้วนเป็นสิ่งที่ควรพิจารณา โซลูชัน upvoted ที่สูงที่สุด (หลังจากระยะเวลาที่เหมาะสม) ชนะ

11
ทำ StackOverflow Explode (bookmarklet) [ปิด]
บางครั้งผู้คนผิดหวังในเครือข่าย StackExchange (โดยเฉพาะ SO) งานของคุณคือสร้าง bookmarklet ที่ทำให้ StackOverflow ทำการระเบิด / implode / destroy ในบางแบบ นี่จะเป็นวิธีที่ดีกว่าในการกระจายความผิดหวังของเรา กฎระเบียบ: มันจะต้องอยู่ในรูปแบบของ bookmarklet ต้องทำงานใน Chrome และ Firefox (เสถียรล่าสุด) jQuery อยู่ในเว็บไซต์เพื่อให้คุณสามารถใช้งานได้ ไม่มีการสร้างแท็กสคริปต์ที่ดึง explosionThisPage.js หรือคล้ายกัน การให้คะแนนคือจำนวนอักขระที่ต้องคัดลอกและวางยกเว้น: -1 ถ้าคุณมีคำอธิบาย -5 สำหรับการโหวตแต่ละครั้ง -10 ถ้าคุณไม่ได้ใช้ jQuery -10 ถ้ามันทำให้เกิดเสียงระเบิด +9e72 ถ้ามันเป็นอันตรายต่อเว็บไซต์ (F5 ควรซ่อมแซมความเสียหาย) หากเบี่ยงเบนความสนใจของ GIF ให้ลบออก

8
Pong ในรหัสที่สั้นที่สุด
ความท้าทายนั้นง่าย ให้รหัสที่สั้นที่สุดที่เป็นไปได้ในการทำซ้ำเกมคลาสสิกผู้เล่น 2 คนของพงษ์http://en.wikipedia.org/wiki/Pong ระดับของกราฟิกและฟังก์ชันการทำงานควรใกล้เคียงกับการสาธิตจาวาสคริปต์นี้มากที่สุดhttp://codeincomplete.com/posts/2011/5/14/javascript_pong/demo.html (แต่ไม่มีตัวเลือกเพิ่มเติม) คุณสามารถคลิกที่ด้านซ้าย หรือข้อมูลเฟรมเฟรมต่อวินาทีเป็นต้นที่ด้านล่างขวา) เช่นเคยรหัสจะต้องเขียนในภาษาฟรี (ทั้งความรู้สึก) และควรจะทำงานได้บน linux ห้องสมุดใด ๆ ที่ใช้ต้องเป็นอิสระพร้อมใช้งานง่ายและไม่ต้องเขียนเพื่อจุดประสงค์ของการแข่งขันนี้ (และยังไม่มี Pong เวอร์ชันที่ใช้งานได้)

6
มาวาดธงชาติเนปาลกัน
ธงของเนปาล ( Wikipedia , Numberphile ) ดูแตกต่างจากอย่างอื่นมาก นอกจากนี้ยังมีคำแนะนำการวาดเฉพาะ (รวมอยู่ในบทความ Wikipedia) ฉันอยากให้พวกคุณจัดทำโปรแกรมซึ่งจะวาดธงชาติเนปาล ผู้ใช้ป้อนความสูงตามที่ร้องขอของธง (จาก 100 ถึง 10,000 พิกเซล) และโปรแกรมจะแสดงธงของประเทศเนปาล คุณสามารถเลือกวิธีใดก็ได้ในการวาดธง: ทุกอย่างจาก ASCII art ถึง OpenGL นี่คือการประกวดความนิยมดังนั้นผู้ชนะจะได้คำตอบที่โหวตมากที่สุดในวันที่ 1 กุมภาพันธ์ดังนั้นอย่ากังวลเกี่ยวกับความยาวของรหัส แต่จำไว้ว่ารหัสที่สั้นกว่าอาจได้รับการโหวตมากขึ้น มีข้อกำหนดเพียงข้อเดียวเท่านั้น: คุณไม่ได้รับอนุญาตให้ใช้แหล่งข้อมูลบนเว็บ มีความสุข :)

30
ค้นหาคำที่มีสระทุกตัว
โปรแกรมของคุณจะต้องค้นหาคำทั้งหมดในwordlist นี้ที่มีสระทั้งหมด ( a e i o u y) มีวิธีง่าย ๆ ในการทำเช่นนี้ แต่ฉันกำลังมองหาคำตอบที่สั้นที่สุด ฉันจะใช้ภาษาใดก็ได้ แต่ฉันต้องการเห็น Bash นี่คือตัวอย่าง (อาจปรับปรุงได้มาก): cat wordlist.txt | grep "a" | grep "e" | grep "i" | grep "o" | grep "u" | grep "y" คะแนนของคุณคือความยาวของรหัส -5 คะแนนสำหรับการนับคำทั้งหมดที่เกิดขึ้น คะแนนต่ำสุดชนะ

2
การแยกตัวประกอบ semiprime เร็วที่สุด
เขียนโปรแกรมเพื่อแยกจำนวนกึ่งนายกรัฐมนตรีในเวลาที่สั้นที่สุด สำหรับจุดประสงค์ในการทดสอบใช้สิ่งนี้: 38! +1 (523022617466601111760007224100074291200000001) มันเท่ากับ: 14029308060317546154181 × 37280713718589679646221

29
แปลงชื่อเดือนสั้น ๆ ให้เป็นคู่หูที่ยาวขึ้น [จบลง]
ความท้าทายนี้สิ้นสุดลงแล้ว! ขอแสดงความยินดีFlonk ! ฉันแน่ใจว่าฉันจะได้เกรดที่ดี แต่หลังจากเปลี่ยนงานFlonk ของฉันอาจารย์ของฉันไม่เชื่อว่ามันเป็นของฉันและไม่สามารถเข้าใจได้ว่าทำไมมันถึงซับซ้อนมาก ... ฉันล้มเหลวและแม่ของฉันทำให้ฉันจาก Facebook และ Minecraft เป็นเวลาหนึ่งเดือน ฉันไม่เข้าใจ :( ขอบคุณสำหรับการส่งทั้งหมดของคุณ! คำตอบที่ดีบางอย่างที่นี่ ผู้ชนะอย่างเป็นทางการFlonkด้วยคะแนนของ64 5 อันดับแรกคือ: Flonk , 64 (Haskell, กับคณิตศาสตร์ที่มีประสิทธิภาพ!) DigitalTrauma , 40 (คลาวด์, อนาคตอยู่ในขณะนี้) primo , 38 (Python, และตัวโปรดของฉัน - และเป็นมืออาชีพมาก!) Sylwester , 20 (แร็กเก็ต, แม้ว่า Janember ยืดมัน!) ilmale 16 (A สูงขั้นตอนวิธีการที่ดีที่สุดใน Lua) ความท้าทายเริ่มต้นด้านล่าง โปรดช่วยฉันมันเร่งด่วนมาก …

6
การเลือกภาษาสำหรับการเล่นกอล์ฟ [ปิด]
อะไรคือเคล็ดลับในการเลือกภาษาที่ถูกต้องในการเล่นกอล์ฟ ปัจจัยใดที่ส่งผลต่อภาษาที่เลือก ต่อไปนี้เป็นตัวอย่างปัญหาบางประเภท: ปัญหาที่ต้องใช้โซลูชันI / Oไม่ว่าจะเป็นคอนโซลหรือไฟล์ ปัญหาที่ต้องแยกวิเคราะห์ ปัญหาที่ต้องให้คุณเขียนโซลูชันเป็นคำจำกัดความของฟังก์ชัน ปัญหาทางคณิตศาสตร์ ปัญหาการจัดการกับตัวเลขสำคัญ การไขปริศนาตัวเลข ดำเนินการวิธีการเชิงตัวเลข การประมวลผลสตริง การประมวลผลอาร์เรย์ ปัญหาอาร์เรย์ 2 มิติที่ยุ่งยาก เรขาคณิตเชิงคำนวณ recursion กราฟิก 2D กราฟิก 3 มิติ เสียง เครือข่าย / เว็บ การประมวลผลแบบขนาน อย่าพูดง่ายๆเช่น "ใช้ GolfScript | J" เพราะคุณชอบ
28 code-golf  tips 

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