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

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

10
ปีที่พิเศษที่สุดที่ใกล้ที่สุดคือปีใด
ปีปกติเป็นปีที่ไม่ได้เป็นปีอธิกสุรทินและสถานที่ที่วันแรกและวันสุดท้ายของปีในวันเดียวกัน ปีปกติพิเศษเป็นสิ่งหนึ่งที่จะเริ่มต้นในวันจันทร์และสิ้นสุดในวันจันทร์เช่นกัน ความท้าทายของคุณคือการสร้างโปรแกรม / ฟังก์ชั่นที่เมื่อให้เวลาหนึ่งปีเมื่ออินพุทค้นหาปีสามัญพิเศษที่ใกล้ที่สุด หากปีนั้นใกล้เคียงกับปีก่อนหน้านั้นเช่นเดียวกับปีถัดไปก็จะส่งออกที่มีขนาดใหญ่กว่า อินพุต 1600 <= x <= 2100จำนวนเต็มเป็นตัวแทนของปีที่จะทดสอบกับในช่วง เอาท์พุต จำนวนเต็มแทนปีสามัญพิเศษที่ใกล้ที่สุด กรณีทดสอบ 2017 -> 2018 2018 -> 2018 1992 -> 1990 1600 -> 1601 2100 -> 2103 1728 -> 1731 (lies between 1725 and 1731) หมายเหตุ ทั้ง 54 ปีในช่วงที่กำหนดได้แสดงไว้แล้วในบทความ Wikipedia ที่เชื่อมโยง ฉันจะให้พวกเขาที่นี่สำหรับการอ้างอิง: 1601, 1607, 1618, 1629, 1635, …
11 code-golf  date 

8
ปีนไปอเมริกา
ตอนนี้ผู้ใช้รายอื่นช่วยให้ทรัมป์สร้างกำแพงได้แล้ว นี่คือความท้าทายทางศิลปะแบบ ascii ที่คุณต้องการเอาท์พุทปีนกำแพงพร้อมที่จับแบบสุ่ม ผนังปีนเขานั้นประกอบไปด้วยแผ่นไม้แต่ละแผ่นที่มีระหว่าง 3 ถึง 10 แผ่นและสูง 5 แผ่น แต่ละแผงมีความสูง 4 ตัวอักษรและ 10 ตัว เราใช้|เพื่อเป็นตัวแทนของผนังด้านข้าง (the arête) และ a -เพื่อใช้แทนขอบของแผง มุมของแผงจะแสดงโดยและถือจะแสดงเป็น+o ในที่สุดผนังจะต้องมีAmerica!ที่ด้านบนและMexicoด้านล่าง โปรแกรมของคุณไม่ควรป้อนข้อมูลหากไม่จำเป็นต้องป้อนข้อมูลให้เรียกใช้และควรส่งออกบางสิ่งที่มีลักษณะคล้ายกับด้านล่าง นี่คือตัวอย่างเอาต์พุต: America! +----------+ | o | | o o | | o o | | o o | +----------+ | o | | o o …

19
สร้างพาร์ติชันย่อยทั้งหมด
ให้ลิสต์ของจำนวนเต็มแบบไม่ว่างเปล่าให้เอาต์พุตทุก ๆ การแบ่งพาร์ติชั่นที่เป็นไปได้ของรายการที่แต่ละพาร์ติชั่นเป็นรายการย่อยที่ไม่ว่างเปล่า ดังนั้นสำหรับรายการ[1, 2, 3, 4]ผลลัพธ์คือ: [[1, 2, 3, 4]] [[1, 2, 3], [4]] [[1, 2], [3, 4]] [[1, 2], [3], [4]] [[1], [2, 3, 4]] [[1], [2, 3], [4]] [[1], [2], [3, 4]] [[1], [2], [3], [4]] ลำดับของรายการในผลลัพธ์ไม่สำคัญดังนั้น[[1, 2, 3, 4]]อาจเป็นครั้งแรกสุดท้ายหรือที่ใดก็ได้ คำสั่งขององค์ประกอบจะต้องถูกเก็บรักษาไว้ นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุดจึงชนะ ที่เกี่ยวข้อง: รายการพาร์ทิชัน!

10
หมุนรูต
ให้พหุนามที่ไม่ใช่ศูนย์ที่มีค่าสัมประสิทธิ์จำนวนเต็มและรากที่อยู่ในจินตภาพและในเส้นจริงเช่นถ้าaเป็นรากดังนั้นเป็นเช่นนั้น-aกลับพหุนามอีกด้วยรากหมุนด้วย 90 องศา รายละเอียด พหุนามสามารถให้ในรูปแบบที่สมเหตุสมผลเช่นเป็นรายการของค่าสัมประสิทธิ์ เงื่อนไขสมมาตรที่aเป็นรูตหากว่าหาก-aรูทนั้นเกินไปบังคับให้พหุนามหมุนได้มีค่าสัมประสิทธิ์จำนวนเต็มจริงเช่นกัน ตัวอย่าง ในชื่อพหุนามมีดังต่อไปนี้เป็นรายการของสัมประสิทธิ์ของชื่อในระดับจากมากไปหาน้อย (คืออย่างต่อเนื่องมาแล้ว) พหุนามมีรากx^2-1 {1,-1}หมุนพวกเขาโดย90°วิธีการคูณด้วยi(หน่วยจินตภาพ) ดังนั้นพหุนามการส่งออกควรจะมีรากซึ่งเป็น{i,-i}x^2 + 1 Input / Output [1 0 10 0 -127 0 -460 0 576] [1 0 -10 0 -127 0 460 0 576] [1 0 -4 0] [1 0 4 0] [1] [1]

17
ตรวจสอบว่าเมทริกซ์เป็นเมทริกซ์ Toeplitz หรือไม่
คุณจะได้รับอาร์เรย์สองมิติและตัวเลขและคุณจะถูกถามเพื่อค้นหาว่าเมทริกซ์ที่ให้นั้นเป็นToeplitzหรือไม่ รูปแบบอินพุต: คุณจะได้รับฟังก์ชันซึ่งใช้two-dimensionalเมทริกซ์เป็นอาร์กิวเมนต์ รูปแบบเอาท์พุท: กลับมา1จากการทำงานถ้าเมทริกซ์เป็นToeplitz-1อื่นกลับมา ข้อ จำกัด : 3 < n,m < 10,000,000 โดยที่nจำนวนแถวในขณะที่mจะเป็นจำนวนคอลัมน์ กรณีทดสอบตัวอย่าง: Sample Input : 4 5 6 7 8 9 2 4 6 7 8 9 1 4 6 7 8 0 1 4 6 7 Sample Output : 1 เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

3
ท้าทายเครื่องตรวจจับความคล้ายคลึงกัน
ท้าทาย ให้ ID คำถามสองข้อพยายามหาว่าพวกเขามีความคล้ายกันเพียงใดโดยดูที่คำตอบ รายละเอียด คุณจะได้รับรหัสสองคำถามสำหรับcodegolf.stackexchange.com; คุณอาจคิดว่ามีคำถามสำหรับรหัสทั้งสองที่ไม่ถูกลบ แต่ไม่จำเป็นต้องเปิด คุณต้องวิ่งผ่านคำตอบทั้งหมดและกำหนดระยะทาง Levenshtein ต่ำสุดระหว่างรหัสในคำตอบของคำถามทั้งสอง (ไม่รวมคำตอบที่ถูกลบ) นั่นคือคุณควรเปรียบเทียบทุกคำตอบในคำถาม 1 กับทุกคำตอบในคำถาม 2 และกำหนดระยะทาง Levenshtein ขั้นต่ำ หากต้องการค้นหารหัสในคำตอบให้สมมติขั้นตอนต่อไปนี้: วิธีค้นหาข้อมูลโค้ด เนื้อความของข้อความเป็นรหัสที่แท้จริงของคำตอบถ้ามันอยู่ใน backticks และอยู่ในบรรทัดของตัวเองหรือถ้ามันเยื้องกับ 4 ช่องว่างด้วยบรรทัดว่างข้างบนมันเว้นแต่ว่าไม่มีข้อความข้างต้น ตัวอย่างของตัวอย่างโค้ดที่ถูกต้องและไม่ถูกต้อง (พร้อมด้วย.เว้นวรรค) (คั่นด้วยเครื่องหมายจำนวนเท่ากัน) This is `not a valid code snippet because it is not on its own line` ======================================== This is: `A valid code …

12
ย่อแพ็คเกจ Java
การบรรยายสรุป ด้วยชื่อ Java Class / Package ที่มีคุณสมบัติครบถ้วนคุณจะต้องย่อให้สั้นลงเช่น: แต่ละส่วนของแพ็คเกจที่คั่นด้วยจุดจะถูกตัดให้สั้นลงเป็นอักษรตัวแรกนอกเหนือจากส่วนสุดท้ายและคลาส (ถ้ามี) ชื่อแพ็กเกจจะเป็นตัวพิมพ์เล็กทั้งหมดและคลาส (ถ้ามี) จะเริ่มต้นด้วยอักษรตัวใหญ่และเป็น UpperCamelCase แพคเกจมาในรูปแบบของ: foo.bar.foo และ foo.bar.foo.Class ตัวอย่าง (No Class) Input com.stackoverflow.main Output c.s.main (Class) Input com.google.parser.Gson Output c.g.parser.Gson (Class) Input com.google.longer.package.TestClass Output c.g.l.package.TestClass กฎระเบียบ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานใช้
11 code-golf 

4
เครื่องคำนวณ HP D&D 5e
ฉันมีปัญหาในการจดจำทุกสิ่งที่ฉันต้องทำเมื่อปรับระดับตัวอักษร D & D ไม่ว่าด้วยเหตุผลใดก็ตามสิ่งหนึ่งที่ทำให้ฉันมีปัญหาก็คือการหาว่าค่า HP สูงสุดใหม่ของพวกเขาควรเป็นเท่าไหร่ สำหรับความท้าทายนี้คุณจะเขียนโปรแกรมหรือฟังก์ชันเพื่อคำนวณค่าที่ถูกต้องโดยอัตโนมัติ คำศัพท์ สิ่งแรกที่คุณต้องรู้เกี่ยวกับการคำนวณ HP สูงสุดคือ "ตัวแก้ไขรัฐธรรมนูญ" อักขระ DND แต่ละตัวมีคะแนนความสามารถจำนวนเต็มหกคะแนนรวมถึงหนึ่งคะแนนสำหรับรัฐธรรมนูญ ความรู้ที่เกี่ยวข้องเฉพาะที่จำเป็นสำหรับการท้าทายนี้คือคะแนนความสามารถของรัฐธรรมนูญมีผลต่อสถิติอื่นซึ่งเป็นตัวแก้ไขรัฐธรรมนูญ floor( (ability_score - 10) / 2 )ในระยะสั้นปรับปรุงมีค่าเท่ากับ นักผจญภัยสามารถมีคะแนนความสามารถได้ตั้งแต่ 1 ถึง 20 เท่านั้น รหัสของคุณจะไม่ต้องจัดการกับคะแนนนอกช่วงดังกล่าวซึ่งหมายความว่าจะไม่ต้องจัดการกับตัวปรับแต่งที่ต่ำกว่า -5 หรือมากกว่า +5 แม้ว่าตัวดัดแปลงรัฐธรรมนูญสามารถเปลี่ยนแปลงได้ตามระดับตัวละคร แต่เอฟเฟกต์ของ HP จะมีผลย้อนหลังดังนั้นจึงจำเป็นต้องใช้ค่าปัจจุบันเพื่อการคำนวณค่า HP สูงสุดในปัจจุบัน (นี่คือทั้งหมดที่ไม่เกี่ยวข้องกับความท้าทาย แต่ถ้าคุณอยากรู้เกี่ยวกับวิธีการที่จะส่งผลกระทบต่อ HP สูงสุด: คุณสามารถสันนิษฐานได้ว่า "ยาก" feat เพิ่ม 2 ถึงตัวละครตัวแก้ไขรัฐธรรมนูญเพื่อวัตถุประสงค์ในการคำนวณ HP …
11 code-golf 

17
ความเสมอภาคมาในสาม
นำมาจาก: OEIS- A071816 งานของคุณให้ขอบเขตบนnคือการหาจำนวนของโซลูชั่นที่ตอบสนองสมการ: a+b+c = x+y+z, where 0 <= a,b,c,x,y,z < n ลำดับเริ่มต้นตามที่อธิบายไว้ในหน้า OEIS และดังต่อไปนี้ (1 ดัชนี): 1, 20, 141, 580, 1751, 4332, 9331, 18152, 32661, 55252, 88913, 137292, 204763, 296492, 418503, 577744, 782153, 1040724, 1363573, 1762004, 2248575, 2837164, 3543035, 4382904, 5375005, 6539156, 7896825, 9471196, 11287235, 13371756 สำหรับn = …

9
อักขระใดที่พบได้บ่อยในแฮช MD2
ความท้าทายนั้นง่าย เขียนสคริปต์ที่เมื่อได้รับอินพุตสตริงจะแฮชสตริงโดยใช้อัลกอริทึมการแปลงค่าMD2แล้วส่งกลับจำนวนเต็มบวกหรือจำนวนเต็มลบที่อิงกับอักขระที่ตั้งไว้ด้านล่างซึ่งพบได้บ่อยในแฮชที่เป็นผลลัพธ์เป็นสตริงเลขฐานสิบหก: 01234567 - (positive) 89abcdef - (negative) อินพุตจะเป็นสตริงเสมอ แต่อาจมีความยาวไม่เกิน 65535 ช่องว่างทั้งหมดและช่องว่างทั้งหมดต้องถูกแฮช สำหรับจุดประสงค์ของการท้าทายนี้จำนวนเต็ม 0 จะไม่ถือว่าเป็นค่าบวกหรือค่าลบ (ดูที่เอาต์พุต tie) ชุดที่พบมากขึ้นคือชุดอักขระที่พบได้บ่อยกว่าภายในสตริงแฮชเลขฐานสิบหก 32 อักขระ ผลลัพธ์ของคุณอาจมีช่องว่างต่อท้ายทุกชนิดตราบใดที่อักขระที่ไม่ใช่ช่องว่างเท่านั้นเป็นผลลัพธ์ที่ถูกต้องหรือเป็นเท็จ ในกรณีที่มีการเสมอกันโดยที่สตริงเลขฐานสิบหกมีจำนวน 16 อักขระจากแต่ละชุดโปรแกรมควรส่งออก 0 ตัวอย่าง I / O Input: "" (Empty String) Hash: 8350e5a3e24c153df2275c9f80692773 Output: 1 Input: "The quick brown fox jumps over the lazy cog" (Without quotes) Hash: …

8
ปลูกดอกไม้!
ฤดูใบไม้ผลิเพิ่งมาถึงและเกือบถึงเวลาที่ดอกไม้เริ่มงอก ดังนั้นฉันต้องการให้คุณช่วยพวกเขาเติบโต งานของคุณ: กำหนดตัวเลขสองตัวmและnเอาท์พุทmดอกไม้วางสุ่มบนn*nกริด ดอกไม้เดียวมีลักษณะดังนี้: & | ตำแหน่งของดอกไม้จะถูกกำหนดโดยที่มัน&เป็น เมื่อวางดอกไม้สองดอกแบบสุ่มจะไม่มีดอกไม้สองดอกอยู่ในที่เดียวกัน หากหนึ่งในดอกไม้&คาบเกี่ยวดอกไม้อื่น|, &แสดง &แถวด้านล่างของดอกไม้อาจจะไม่ได้มีการใด ๆ อินพุตอาจเป็นตัวเลขหรือสตริงโดยใช้วิธีมาตรฐานใด ๆ ก็ได้ เอาต์พุตสามารถเป็นรายการของสตริงแต่ละสตริงที่แทนหนึ่งแถวของตารางหรือสตริงที่มีตัวคั่นตามแนวทางเดียวกันกับรายการ วิธีการมาตรฐานของการส่งออก อนุญาตให้ใช้อุปกรณ์ต่อท้ายได้และคุณสามารถใช้แท็บเพื่อแยกดอกไม้ของคุณ โปรดทราบว่าทุกกริดต้องถูกเติมเต็มอย่างสมบูรณ์พร้อมช่องว่างหรือบางสิ่งบางอย่าง โปรดทราบว่าการป้อนข้อมูลจะถูกต้องเสมอคุณจะสามารถใส่mดอกไม้ลงในตารางได้nตามnกฎหมาย กรณีทดสอบ: เนื่องจากสามารถรับประกันเคสทดสอบที่คับแคบได้มากเนื่องจากบิต "การจัดวางแบบสุ่ม" ทั้งหมดนั้นจะเป็นเคสทดสอบชนิดเดียวที่มีคำตอบให้ แต่ฉันจะลองใช้การส่งออนไลน์ทั้งหมดเพื่อให้แน่ใจว่าถูกต้องโดยใช้กรณีทดสอบด้วย m, nการป้อนข้อมูลสำหรับกรณีการทดสอบจะได้รับในรูปแบบ Input: 2, 2 Output: && || -------------- Input: 6, 3 Output: &&& &&& ||| โปรดทราบว่าการขึ้นบรรทัดใหม่หลังจากคำOutput:ในกรณีทดสอบเป็นทางเลือก กรณีทดสอบอื่น ๆ : 1, 10 0, 100 …

9
สร้างพลอตเตอร์ดิจิตอล
ปัญหาดัดแปลงมาจากหนังสือFortran 77โดย Donald M. Monro บทนำ เครื่องพล็อตดิจิตอลถูกนำมาใช้กันอย่างแพร่หลายในการผลิตภาพวาดกราฟและผลภาพอื่น ๆ เครื่องส่วนใหญ่สามารถเลื่อนปากกาได้ในบางทิศทางโดยปกติจะเป็นขั้นตอนเดียวในทิศทาง X และ Y หรือทั้งสองอย่าง เครื่องทั่วไปจะเคลื่อนที่ในหนึ่งในแปดทิศทางที่แสดงในรูปที่ 1: รูปที่ 1 ท้าทาย เขียนโปรแกรมที่ไม่มีฟังก์ชันตรีโกณมิติซึ่งใช้ตัวเลขตั้งแต่ 0 ถึง 7 (รวม) เป็นอินพุตและเอาต์พุตพิกัดที่สอดคล้องกันของจุดปลายในรูปที่ 1 ผลลัพธ์ควรเป็นอาร์เรย์หรือรายการที่มีสององค์ประกอบ (เช่น(1, 0)หรือ[0,-1]) ตาราง I / O 0 (1, 0) 1 (1, 1) 2 (0, 1) 3 (-1, 1) 4 (-1, 0) 5 (-1, -1) …
11 code-golf 

3
สร้าง ASCII art unjumble!
รับสตริงของ ASCII art เช่นนี้ (นี่ไม่ใช่ ASCII art แต่มันจะทำเพื่อเป็นตัวอย่าง): abc d e fgh สับสนราวกับว่ามันถูกแสดงบนหน้าจอที่มีหนึ่งตัวอักษรต่อบรรทัดเช่น: a b c d e f g h พิมพ์ผลลัพธ์รอหนึ่งวินาที± 0.5 วินาทีก่อนทำการเทอร์มินัลและพิมพ์สิ่งเดียวกัน แต่มี 2 อักขระแสดงต่อบรรทัดแทน 1 โดยทั่วไปความกว้างของหน้าจอจะเปลี่ยนจาก 1 เป็น 2 ab c d e fg h dหมายเหตุพื้นที่หลังจากที่ รอซ้ำจากนั้นพิมพ์ด้วยอักขระเพิ่มเติมต่อบรรทัดจนกว่าข้อความอินพุตจะถูกส่งออก หากคุณกดจุดสิ้นสุดของบรรทัดเมื่อพยายามพิมพ์อักขระให้คุณแทรกบรรทัดใหม่และพิมพ์ส่วนที่เหลือตามกฎนี้ ตัวอย่างเช่นการป้อนข้อมูล: abcdefg ab จะพิมพ์ต่อไปนี้เมื่อความยาวหน้าจอเท่ากับ 4 abcd efg ab คุณสามารถค้นหาผลกระทบของการปรับขนาดขั้วที่นี่: …

9
ถอดรหัสข้อความที่ซ่อนอยู่!
บทนำ อยู่มาวันหนึ่งคุณแค่ผ่อนคลายในสำนักงานของคุณในซีไอเอเมื่อจู่ ๆ คุณเห็นการแจ้งเตือนบนคอมพิวเตอร์ของคุณ โปรแกรมของคุณได้ดักจับข้อความที่เข้ารหัสหลายร้อยข้อความ! การตรวจสอบอย่างรวดเร็วเปิดเผยกฎสำหรับการเข้ารหัส แต่คุณต้องการโปรแกรมเพื่อถอดรหัสอย่างรวดเร็ว ท้าทาย คุณจะได้รับรายการสตริงคั่นด้วยเครื่องหมายจุลภาค แต่ละสตริงจะมี: ส่วนหนึ่งของข้อความที่เข้ารหัส มันเป็นส่วนหนึ่งของข้อความที่เข้ารหัสถ้ามันเป็นไม่ได้a=bในรูปแบบ หมายเหตุว่ามันเป็นab=cส่วนหนึ่งของข้อความถ้ามันเป็น เพิ่มสตริงนี้ไปยังข้อความที่เข้ารหัส ส่วนหนึ่งของรูปแบบการเข้ารหัส a=bนี้จะเป็นในรูปแบบของ นั่นหมายความว่า a's ทั้งหมดในข้อความจะต้องถูกแทนที่ด้วย b's โปรดทราบว่าอาจเป็นได้a==ซึ่งหมายความว่าทุกอย่างของ `s จะต้องถูกแทนที่ด้วย = 's โปรแกรมของคุณจะต้องส่งออกข้อความถอดรหัสโดยใช้รูปแบบที่พบ ข้อมูลอื่น ๆ : ข้อมูลที่คุณป้อนจะมีเครื่องหมายจุลภาคสำหรับการแยกสตริงเท่านั้น มันอาจมีตัวละครอื่น ๆ เช่น! 1 # ฯลฯ มันจะไม่มีตัวอักษรตัวพิมพ์ใหญ่ บิตของข้อมูลการถอดรหัสไม่ได้ถอดรหัสซึ่งกันและกัน เฉพาะข้อความที่ได้รับผลกระทบจากข้อมูลการถอดรหัส จะมีการเปลี่ยนหนึ่งตัวสำหรับแต่ละอักขระเช่นไม่"io,"i=u","i=g" ตัวอย่าง การป้อนข้อมูล:"ta","y=s","y","a=e","b=t","b"," ","j","j=1" เอาท์พุท:test 1 การป้อนข้อมูล:"z=p","zota","g=e","yugkb","y=t","u=o","k=s","li","fg","b==" เอาท์พุท:potatoes=life การป้อนข้อมูล:"p","=","==n","ot","p=a","hiz","i=e","z=r" เอาท์พุท:another นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!

4
ลีดเดอร์บอร์ดกอล์ฟ
เล่นกอล์ฟกระดานผู้นำของคำถามนี้ (id = 111735) โปรแกรมของคุณควรออกหนึ่งร้องขอ HTTP หรือ HTTPS เพื่อ StackExchange API แยกมันและนำเสนอให้กับผู้ใช้ในรูปแบบคล้ายกับทั่วไปลีดเดอร์ Snippet ตัวอย่างผลลัพธ์ (สำหรับคำถาม47338แทนสิ่งนี้): Leaderboard Author Language Size 1. FryAmTheEggman Pyth 19 2. Peter Taylor CJam 24 3. Martin Ender CJam 27 3. Peter Taylor GolfScript 27 5. randomra J 32 5. Optimizer CJam 32 7. Timtech TI-Basic 83/84 …

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