คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

13
สูตรเศษส่วนเฉพาะส่วนที่น่าสงสัย
รับจำนวนเต็มบวกnเอาท์พุทจำนวนเต็มaและb (สร้างเศษส่วนลดลงa / b ) เช่น: โดยที่p kคือจำนวนเฉพาะหลักที่k (ด้วย p 1 = 2) ตัวอย่าง: 1 -> 3, 5 2 -> 12, 25 3 -> 144, 325 4 -> 3456, 8125 5 -> 41472, 99125 15 -> 4506715396450638759507001344, 11179755611058498955501765625 420 -> very long อนุญาตให้มีการตรวจสอบความน่าจะเป็นที่สำคัญและไม่เป็นไรถ้าคำตอบของคุณล้มเหลวเนื่องจากข้อ จำกัด ในประเภทจำนวนเต็มของภาษาของคุณ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

5
ปัญหาสะพานและคบเพลิง
แรงบันดาลใจสำหรับปริศนากอล์ฟรหัสนี้คือปัญหาของสะพานและคบเพลิงซึ่งdคนที่เริ่มต้นของสะพานทั้งหมดจะต้องข้ามมันในปริมาณที่น้อยที่สุดของเวลา จับได้ว่ามากที่สุดสองคนสามารถข้ามในเวลาเดียวกันมิฉะนั้นสะพานจะบี้ภายใต้น้ำหนักของพวกเขาและกลุ่มมีเพียงการเข้าถึงหนึ่งไฟฉายซึ่งจะต้องดำเนินการข้ามสะพาน แต่ละคนในตัวต่อทั้งหมดมีเวลาที่กำหนดที่จะใช้ในการเดินข้ามสะพาน ถ้าคนสองคนข้ามกันทั้งคู่จะช้าเท่ากับคนที่ช้าที่สุด ไม่มีคนกำหนดจำนวนคนที่ต้องข้ามสะพาน โซลูชันของคุณต้องทำงานเพื่อค่าใด ๆ ของd d คุณไม่จำเป็นต้องใช้อินพุตมาตรฐานสำหรับปัญหานี้ แต่เพื่ออธิบายปัญหาฉันจะใช้รูปแบบอินพุตและเอาต์พุตต่อไปนี้สำหรับคำอธิบาย หมายเลขแรก, d , คือจำนวนคนที่จุดเริ่มต้นของสะพาน จากนั้นรหัสจะสแกนหาตัวเลขdแต่ละอันแทนความเร็วของบุคคล รหัสเอาท์พุทจะเป็นจำนวนเวลาที่น้อยที่สุดที่ต้องใช้ในการข้ามทุกคนจากจุดเริ่มต้นของสะพานไปยังจุดสิ้นสุดของสะพานขณะที่ปฏิบัติตามเกณฑ์ที่อธิบายไว้ก่อนหน้านี้ ต่อไปนี้เป็นกรณีการป้อนข้อมูลและกรณีการส่งออกและคำอธิบายสำหรับกรณีการป้อนข้อมูลครั้งแรก ขึ้นอยู่กับคุณว่าจะรับอัลกอริทึมจากข้อมูลนี้เพื่อแก้ปัญหาในจำนวนไบต์ที่น้อยที่สุดของโค้ด อินพุต 4 1 2 5 8 เอาท์พุต 15 ในการเข้าถึงผลลัพธ์นี้ผู้คนจะต้องข้ามด้วยวิธีต่อไปนี้ A and B cross forward (2 minutes) A returns (1 minute) C and D cross forward (8 minutes) B returns (2 minutes) …
17 code-golf 

5
ทำให้คำอธิบายรหัสนี้สวยอีกครั้ง
บทนำ นักกอล์ฟรหัสส่วนใหญ่ที่นี่เพิ่มคำอธิบายลงในผลงานของพวกเขาดังนั้นจึงง่ายต่อการเข้าใจว่าเกิดอะไรขึ้น โดยปกติแล้ว codelines จะอยู่ทางซ้ายและคำอธิบายที่เกี่ยวข้องทางด้านขวาพร้อมกับตัวคั่นบางชนิด เพื่อให้ดูสวยตัวคั่นทั้งหมดอยู่ในคอลัมน์เดียวกัน ข้อความอธิบายที่ยาวมักจะถูกรวมอยู่ในบรรทัดถัดไปดังนั้นผู้อ่านจึงไม่ต้องเลื่อนในแนวนอนเพื่ออ่านทุกอย่าง อย่างไรก็ตามเมื่อคุณต้องการแก้ไขคำอธิบายนี้เนื่องจากคุณสร้างสนามกอล์ฟที่บ้าคลั่งคุณมักจะเสียเวลาในการทำให้คำอธิบายของคุณกลับมาสวยอีกครั้ง เนื่องจากนี่เป็นงานที่ต้องทำซ้ำคุณจึงต้องเขียนโปรแกรมสำหรับสิ่งนี้ ความท้าทาย รับโค้ดหลายบรรทัดพร้อมคำอธิบายและตัวคั่นเอาท์พุทโค้ดที่จัดรูปแบบอย่างสวยงามพร้อมคำอธิบาย ตัวอย่าง อินพุต shM-crz1dc4. "ANDBYOROF # z = อินพุต rz1 # แปลงอินพุตเป็นตัวพิมพ์ใหญ่ cd # split อินพุตบนช่องว่าง c4. "ANDBYOROF # สร้างรายการคำจากสตริงที่บรรจุซึ่งจะถูกละเว้น - # กรองคำเหล่านั้นออก hM # ใช้ตัวอักษรตัวแรกของทุกคำเท่านั้น s # เข้าร่วมพวกเขาเป็นหนึ่งสาย เอาท์พุต shM-crz1dc4. "ANDBYOROF # z = อินพุต rz1 # แปลงอินพุตเป็นตัวพิมพ์ใหญ่ cd …
17 code-golf  string 

5
หมายเลขช็อคโกแลต
กำหนดmโดยnแท่งช็อกโกแลตm,nบวกออกจำนวนวิธีการแบ่งแถบออกเป็นmn1 โดย 1 ชิ้นที่แต่ละตัวแบ่งเกิดขึ้นบนเส้นตาราง คำสั่งซื้อเป็นสิ่งสำคัญ ชิ้นยังมีความแตกต่างดังนั้นทั้งสองชิ้นที่ปลายด้านหนึ่งของ 1 โดย 3 ช็อกโกแลตบาร์ไม่เท่ากัน ตัวอย่างเช่นสำหรับบล็อก 2 คูณ 2 เรามี: _ _ _ _ _ _ _ _ |_‖_| -> |‗| |_| -> |_| |‗| -> |_| |_| |_‖_| |_| |_| _ |_| _ _ |_| |_| |_| _ _ _ _ _ _ _ …

11
ตัวกำหนด 2x2 แบบเรียกซ้ำ
ดีเทอร์มีแนนต์ของเมทริกซ์ 2 คูณ 2 a b c d ad - bcจะได้รับจาก ด้วยเมทริกซ์ของตัวเลขที่มีขนาด 2 nคูณ 2 n , n ≥ 1 ส่งออกผลลัพธ์ที่ได้จากการคำนวณดีเทอร์มิแนนต์ของแต่ละบล็อกย่อย 2 คูณ 2 จนกว่าเราจะถึงตัวเลขเดียว ตัวอย่างเช่นกำหนดอินพุต 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 หลังจากผ่านไปหนึ่งขั้นตอนเราจะได้รับ: (3*9 - 1*5) (4*6 - 1*2) = …

6
แปลงเวลาเป็นสตริง
ปัญหา วันหนึ่งเจ้านายของคุณก็เดินมาหาคุณและบอกคุณว่าเขาต้องรู้เวลา เขายังคงยืนยันหลังจากที่คุณชี้ไปที่นาฬิกาเหนือศีรษะของคุณโดยตรงและข่มขวัญเขามีคดีร้ายแรงที่ทำให้เกิดภาวะซึมเศร้าซึ่งทำให้เขาไม่สามารถเห็นตัวเลขบนนาฬิกาได้ ในขณะที่คุณยังสงสัยว่ามีใครบางคนที่ไม่สามารถมองเห็นตัวเลขสามารถบริหาร บริษัท ได้อย่างไรเขาบอกให้คุณ "ทำอะไรสักอย่างกับเรื่องนี้" ไม่ว่าจะเป็นอะไร ตอนนี้งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่กำหนดเวลาอินพุตด้วยชั่วโมงและนาที (ไม่บังคับว่าเป็นวินาที) (ชั่วโมงเป็นแบบ 24 ชั่วโมง) จะส่งประโยคภาษาอังกฤษที่อ่านได้ซึ่งไม่มีตัวเลข ไม่จำเป็นต้องใช้เวลาสักครู่ ตัวอย่างเช่น08:45:15ควรส่งออกquarter to nine o'clock AM กรณีทดสอบ 00:00:00 > twelve night 12:00:00 > twelve noon 06:00:00 > six o'clock AM 18:00:00 > six o'clock PM 06:15:00 > quarter past six o'clock AM 18:45:00 > quarter to …

6
แปลโปรแกรม Glypho
เมื่อได้รับอินพุตของโปรแกรมGlyphoใด ๆ ที่ถูกต้องให้ส่งออกคู่ของ "มนุษย์ที่อ่านได้" Glypho เป็นแนวคิด esolang ที่น่าสนใจ: การอ้างอิงการเรียนการสอนให้ที่นี่ สำหรับแต่ละคำสั่งตัวอักษร abcd แสดงถึงสัญลักษณ์ที่ประกอบไปด้วยแต่ละคำสั่ง a หมายถึงสัญลักษณ์เฉพาะอันแรก b หมายถึงสัญลักษณ์เฉพาะอันที่สองเป็นต้น aaaa ..... n NOP - no operation; do nothing aaab ..... i Input - push input onto top of stack aaba ..... > Rot - pops top stack element and pushes to bottom of …

8
ลำดับการเรียงสับเปลี่ยนเกลียว
เราสามารถสะสมจำนวนธรรมชาติในเกลียวเป็นรูปสี่เหลี่ยมผืนผ้า: 17--16--15--14--13 | | 18 5---4---3 12 | | | | 19 6 1---2 11 | | | 20 7---8---9--10 | 21--22--23--24--25 แต่ตอนนี้เรามีพวกมันอยู่บนตะแกรงสี่เหลี่ยมเราสามารถคลายเกลียวในลำดับที่แตกต่างกันเช่นไปตามเข็มนาฬิกาเริ่มทิศเหนือ: 17 16--15--14--13 | | | 18 5 4---3 12 | | | | | 19 6 1 2 11 | | | | 20 7---8---9 10 | …

8
ใครจะชนะเกมฟุตบอล?
การแข่งขันชิงแชมป์อเมริกันฟุตบอลSuper Bowl 50กำลังเกิดขึ้นวันนี้เวลา 23:30 น. UTC (และคุณสามารถรับชมการถ่ายทอดสดออนไลน์ได้ ) ความท้าทายนี้ถูกสร้างขึ้นเพื่อเฉลิมฉลอง ในเกมอเมริกันฟุตบอลสองทีมแข่งขันกันเพื่อให้ได้คะแนนมากที่สุดและมีหกวิธีในการทำคะแนนเหล่านี้ เราจะให้คำย่อแต่ละคำ: สนามฟุตบอล - FG: 3 คะแนน ทัชดาวน์ - TD: 6 คะแนน Extra point - XP: 1 point - สามารถทำคะแนนได้โดยตรงหลังจากดาว์น การแปลงสองจุด - XD(เช่นจุดพิเศษ แต่มีความสุขมากขึ้น): 2 คะแนน - สามารถทำคะแนนได้โดยตรงหลังจากดาว์น ความปลอดภัย - S: 2 คะแนน Fair catch kick - FCK: 3 points (เล่นยากมาก) …

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

4
ระเบิดแมว!
ท้าทาย คุณจะสร้างโปรแกรม / ฟังก์ชั่นที่รับความยาวของสตริงnและ: ทำให้ถ่านที่เป็นศูนย์กลางของพื้นที่ที่kth k = (n+1)/2นี่จะเป็นที่ตั้งของศูนย์พื้นของคุณ วางส่วนที่เหลือของตัวอักษรที่ไม่ใช่ช่องว่างจัดเรียงแบบสุ่มรอบศูนย์พื้น nระยะห่างจากถ่านพีทาโกรัสต้องไม่เกิน ส่งออกผลลัพธ์ หากคุณต้องการคำชี้แจงดูตัวอย่างด้านล่าง กฎระเบียบ ช่องโหว่มาตรฐานใช้! I / O ต้องอยู่ในรูปของสตริง การป้อนข้อมูลจะเป็นเลขคี่เสมอเพื่อให้แน่ใจว่าคุณมีถ่านส่วนกลางที่จะนำไปที่ศูนย์ดิน ผลลัพธ์ที่ถูกต้องควรเกิดขึ้นกับความน่าจะเป็นที่ไม่ใช่ศูนย์ นี่คือรหัสกอล์ฟ ; รหัสที่สั้นที่สุดเป็นไบต์ชนะ! ตัวอย่าง การป้อนข้อมูล: qwert ขอบเขตของการระเบิดเล็ดลอดออกมาจากพื้นดินเป็นศูนย์ (เครื่องหมายของสถานที่ที่ถูกต้อง x สำหรับส่วนที่เหลือของตัวอักษรที่จะ): x xxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxexxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxx x ตัวอย่างผลลัพธ์: t r q e w

2
เอาท์พุทตัวเลขฐาน quater- จินตภาพในไบนารี
เขียนฟังก์ชั่นหรือโปรแกรมที่แสดงผลฐาน Quater-จินตภาพที่แสดงเป็นเลขฐานสอง จำนวนฐานคือ 2 iโดยที่iคือรากที่สองของ -1 ดูจำนวนคอมเพล็กซ์สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับฉัน ตำแหน่งหลักแต่ละตำแหน่งสามารถไปได้ตั้งแต่ 0 ถึง 3 (ควอเทอร์นารี) เนื่องจากแต่ละส่วนจริงและจินตภาพจะมีขนาดใหญ่กว่าเดิมจริงและจินตภาพ -4 เท่า ตัวเลขสี่ในไบนารีมีดังนี้0: 00, 1: 01, และ2: 103: 11 รายละเอียดของตำแหน่งหลัก: re im 16 -8i -4 2i 1 -0.5i, etc. 4 0 1 0 3 0 0 (quaternary representation) 01 00 11 00 00 (binary representation) จำนวน100110000คือ 1x16 …

1
การหาพื้นที่พิเศษในสี่แยกวง
นี่คือปริศนาเรขาคณิตที่ท้าทายสำหรับคุณ! ป.ร. ให้ไว้เป็นวงกลมAและnวงการอื่น ๆB[n]พบว่าพื้นที่ทั้งหมดที่มีอยู่ภายในAนั่นคือไม่ได้Bอยู่ภายในวงกลมของใด ๆ รหัสของคุณควรสั้นที่สุด อินพุต ข้อมูลที่คุณป้อนควรมีข้อมูลต่อไปนี้: Aจำนวนจุดลอยตัวเพื่อเป็นตัวแทนของรัศมีของวงกลม รายการหมายเลขลอยจุด A Bไปแทนรัศมีของวงการใน Bรายชื่อศูนย์ของวงการใน โปรแกรมของคุณอาจคาดหวังว่าศูนย์ในพิกัดเชิงขั้วหรือคาร์ทีเซียน คุณอาจได้รับจำนวนnวงกลมใน B หรือไม่จำเป็นต้องป้อนข้อมูลนี้ก็ได้ มันจะได้รับการสันนิษฐานว่าศูนย์กลางของวงกลมเป็นที่มาที่เป็นจุดA(0, 0) มีการรับประกันว่าจะไม่มีวงกลมสองวงBเหมือนกัน แต่ไม่รับประกันว่า: วงกลมทั้งหมดของBจุดตัดA, ศูนย์กลางทั้งหมดBอยู่ด้านนอกAหรือไม่มีวงกลมสองวงที่อยู่Bตรงข้ามกัน ตรวจสอบให้แน่ใจว่าโซลูชันของคุณสามารถจัดการกับเคสแบบขอบต่างๆ คุณอาจได้รับการป้อนข้อมูลในลำดับใด ๆ และในรูปแบบของการป้อนข้อความ (ผ่าน stdin หรือเทียบเท่าภาษาของคุณ) พารามิเตอร์ฟังก์ชั่นหรืออาร์กิวเมนต์บรรทัดคำสั่ง หากคุณเลือกที่จะรับข้อความควรมีตัวคั่น ASCII หนึ่งหรือสองตัวอักษรที่พิมพ์ได้ระหว่างส่วนของอินพุต เอาท์พุต โปรแกรมหรือฟังก์ชั่นการส่งออกควรเป็นจำนวนจุดลอยตัวเดียวที่เป็นตัวแทนของพื้นที่ทั้งหมดของคุณไม่ได้อยู่ในแวดวงของA Bคำตอบของคุณควรแม่นยำถึงตัวเลขที่มีนัยสำคัญอย่างน้อยสามตัวสำหรับกรณีทดสอบทั้งหมด มีการใช้กฎเกณฑ์ทั่วไปเกี่ยวกับกอล์ฟ โซลูชันของคุณไม่ควรใช้จุดสุ่มตัวอย่างภายในวงกลมเพื่อกำหนดพื้นที่ บิวด์อินที่ค้นหาตำแหน่งทางแยกของวงกลมโดยอัตโนมัติค้นหาพื้นที่ภายในจุดตัดของวงกลมหรือแก้ไขปัญหานี้ทันทีไม่ได้รับอนุญาต กรณีทดสอบ ในแต่ละภาพวงกลมAจะมีเส้นขอบสีน้ำเงินโดยมีวงกลมที่ล้อมรอบด้วยBสีเขียวและดำ พื้นที่ที่ควรส่งคืนจะถูกเติมสีแดง (ขอขอบคุณRainer P. เป็นพิเศษสำหรับการตรวจสอบวิธีแก้ไขปัญหาของฉัน) กรณีทดสอบ 1: A = …

5
ขุดในปี 2559 ใน Bitcoins! PCG.SE ปริศนาปีใหม่ 2559
ในโปรโตคอล Bitcoin 2016เป็นจำนวนที่พิเศษมาก "ความยาก" ในการค้นหาแฮชเพื่อสร้างบล็อกใหม่จะถูกปรับทุก ๆ 2,016 บล็อกเพื่อการเปลี่ยนแปลงโดยประมาณทุกๆสองสัปดาห์ หมายเลขนี้ถูกเลือกเนื่องจากความยากลำบากในการปรับตัวเองเพื่อให้ทุกบล็อกใช้เวลาประมาณ 10 นาทีและในอีกสองสัปดาห์จะมี 2 × 7 × 24 × 6 = 2,016 ระยะเวลาสิบนาที เพื่อเป็นการระลึกถึงความบังเอิญเชิงตัวเลขปัญหาปีใหม่ในปีนี้เป็นเรื่องของ Bitcoin โดยเฉพาะอัลกอริทึมคร่ำเครียดที่ใช้เพื่อลงนามบล็อค SHA-256 งานของคุณคือการสร้างโปรแกรมที่จะรับไบต์ (อย่างน้อย ASCII) และส่งออกเป็น nonce ในไบต์ (ในรูปแบบที่คุณเลือก) ที่จะผลิตกัญชา SHA-256 ที่มี2016อยู่ในการเป็นตัวแทนbase64เมื่อผนวกเข้ากับต้นฉบับ อินพุตไบต์ ต่อไปนี้เป็นตัวอย่างของโซลูชันที่ถูกต้องความสุภาพของเครื่องยนต์ที่ผู้คนสร้างไว้แล้ว > foo Nonce: 196870 SHA256 hash: OCUdDDtQ42wUlKz2016x+NROo8P2lbJf8F4yCKedTLE= > bar Nonce: 48230 SHA256 hash: …

8
เรียงลำดับการตัดแบ่ง
พิจารณาลำดับที่อยู่บนพื้นฐานของความสัมพันธ์ที่เกิดขึ้นอีก, เริ่มต้นด้วยf(n) = f(n-1)+f(n-2) f(1) = x1, f(2) = x2สำหรับx1 = 2, x2 = 1ลำดับเริ่มต้นดังนี้: 2 1 3 4 7 11 18 29 47 76 123 199 322 521 843 การต่อสิ่งนี้เข้ากับสตริงจะทำให้: 213471118294776123199322521843 y(n) > y(n-1)ตอนนี้แบ่งรายการนี้ลงในตัวเลขที่เป็นไปได้น้อยที่สุดที่จะช่วยให้ เริ่มต้นด้วยหมายเลขแรกจากนั้นตัวเลขที่สองเป็นต้นหมายเลขผลลัพธ์แรกควรเป็นตัวเลขหลักเดียวเสมอ ปัดตัวเลขสุดท้ายด้วยเลขศูนย์ที่ต้องการ 2 13 47 111 829 4776 12319 93225 218430 คุณจะได้ตัวเลขสองตัว(x1, x2)เป็นอินพุตในรูปแบบที่สะดวกและความท้าทายคือการส่งออกรายการที่เรียงลำดับ กฎ: ฟังก์ชั่นและโปรแกรมก็โอเค …

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