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

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

30
ศูนย์รวมความท้าทายชั้นนำ
ความท้าทาย กำหนดจำนวนเต็มสองค่าเป็นอินพุต ( xและy), ส่งออกxเป็นสตริงที่มีเลขศูนย์นำหน้าจำนวนมากที่จำเป็นเพื่อให้yอักขระมีความยาวโดยไม่มีเครื่องหมาย กฎระเบียบ หากxมีมากกว่าyตัวเลขเอาท์พุทxเป็นสตริงโดยไม่มีการดัดแปลง ไม่ยอมรับเอาต์พุตเป็นจำนวนเต็มแม้ว่าจะไม่มีเลขศูนย์นำหน้า เมื่อxใดที่เป็นลบให้รักษา-ตามที่เป็นและดำเนินการกับค่าสัมบูรณ์ ค่าลบyควรถือเป็น 0 ซึ่งหมายความว่าคุณแสดงผลxตามที่เป็น (แต่เป็นสตริง) ตัวอย่าง: IN: (1,1) OUT: "1" IN: (1,2) OUT: "01" IN: (10,1) OUT: "10" IN: (-7,3) OUT: "-007" IN: (-1,1) OUT: "-1" IN: (10,-1) OUT: "10" IN: (0,0) OUT: "0" IN: (0,1) OUT: "0" IN: (0,4) OUT: "0000" …
31 code-golf  string 

30
ฟีโบนักชีไบนารี
ท้าทาย คุณต้องสร้างโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวก N คำนวณคำศัพท์ N แรกของลำดับฟีโบนักชีในรูปแบบไบนารีต่อกันเป็นเลขฐานสองเดียวแปลงตัวเลขนั้นกลับเป็นทศนิยมจากนั้นจึงส่งทศนิยมเป็น จำนวนเต็ม. ตัวอย่างเช่น 1 -> [0] -> 0 to decimal outputs 0 3 -> [0, 1, 1] -> 011 to decimal outputs 3 4 -> [0, 1, 1, 10] -> 01110 to decimal outputs 14 คุณไม่จำเป็นต้องเอาท์พุท->เพียงแค่จำนวน (เช่นถ้าผู้ใช้พิมพ์4เอาท์พุท14) ลูกศรเป็นเพียงเพื่อช่วยอธิบายสิ่งที่โปรแกรมต้องทำ กรณีทดสอบ 1 -> 0 2 -> 1 …

3
แผ่นเพลงเครื่องกำเนิดไฟฟ้า ASCII-art
หมายเหตุ : Anders Kaseorg เตือนฉันว่านี่อาจเป็นปัญหาซ้ำซ้อนของคำถามก่อนหน้านี้อีกคำถามหนึ่ง ดูเหมือนจะเป็นเช่นนั้นและฉันขอโทษที่ฉันไม่พบคำถามนั้นก่อนโพสต์คำถามนี้ อย่างไรก็ตามคำถามนั้นได้รับคำตอบเพียงคำตอบเดียวและคำถามนี้ง่ายกว่าในกรณีที่คุณต้องการลองครั้งนี้ ฉันจะเข้าใจว่าคำถามนี้ท้ายถูกทำเครื่องหมายว่าซ้ำกัน ความท้าทาย รับอินพุตเช่นนี้: 8g 8Df 4cs 2C 1A เขียนโปรแกรม / ฟังก์ชั่นที่สั้นที่สุดที่สร้างเอาต์พุตเช่นนี้: /\ -o- | | ---|-|---------------------------------------------------|-| |/ | | ---/|--------|\----b-*-----------------------------------|-| / | | | | o | | -|--|--------|------|-----------------|------------------|-| | (| \ | | | | | | -|--|--)----*-------|/---------|------|------------------|-| \ | / | …

21
The Three 'R's: ย้อนกลับเรียงลำดับทำซ้ำ
ขณะที่ดูตัวเลขกับตัวเลขฉันพบการเปลี่ยนแปลงที่น่าสนใจที่คุณสามารถสร้างจากรายการตัวเลข ถ้าคุณทำซ้ำการเรียงสับเปลี่ยนแบบนี้บ่อยครั้งคุณจะกลับมาที่อาร์เรย์เดิมเสมอ ลองใช้รายการต่อไปนี้: [1, 2, 3, 4, 5] ตัวอย่างเช่น ย้อนกลับอาร์เรย์ ตอนนี้อาร์เรย์ของเราคือ [5, 4, 3, 2, 1] จัดลำดับใหม่ (สลับ) แต่ละคู่ รายการของเรามี 2 คู่และ[5, 4] [3, 2]น่าเสียดายที่เราไม่สามารถจัดกลุ่ม1เป็นคู่ได้ดังนั้นเราจะทิ้งมันไว้เป็นของตัวเอง หลังจากสลับแต่ละคู่อาร์เรย์ใหม่จะเป็น: [4, 5, 2, 3, 1] ทำซ้ำขั้นตอนที่ 1 และ 2 จนกระทั่งเรากลับสู่อาร์เรย์เดิม นี่คือ 4 ขั้นตอนถัดไป: Step 2: Start: [4, 5, 2, 3, 1] Reversed: [1, 3, …

13
ตัวจำลองการทอด
งานของคุณคือสร้างแบบจำลองผลกระทบของการปะทะกับชิ้นส่วนของอาหาร กรุณาเพิ่มเปลือกสามชั้น [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0], // in [0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0], [0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]] | V [[0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,1,2], [0,0,2,1,2,2,0,0,0,0,0,0,0,2,2,0,2,0], [0,0,2,1,1,1,2,0,0,0,0,0,2,1,1,2,0,0], [0,0,0,2,1,2,0,0,0,0,0,2,1,1,2,1,2,0], [0,0,0,0,2,0,0,0,0,0,0,0,2,1,1,1,2,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0]] | V [[0,0,3,2,3,3,0,0,0,0,0,0,0,3,3,2,1,2], [0,3,2,1,2,2,3,0,0,0,0,0,3,2,2,3,2,3], [0,3,2,1,1,1,2,3,0,0,0,3,2,1,1,2,3,0], [0,0,3,2,1,2,3,0,0,0,3,2,1,1,2,1,2,3], [0,0,0,3,2,3,0,0,0,0,0,3,2,1,1,1,2,3], [0,0,0,0,3,0,0,0,0,0,0,0,3,2,2,2,3,0]] | V [[0,4,3,2,3,3,4,0,0,0,0,0,4,3,3,2,1,2], // out [4,3,2,1,2,2,3,4,0,0,0,4,3,2,2,3,2,3], [4,3,2,1,1,1,2,3,4,0,4,3,2,1,1,2,3,4], [0,4,3,2,1,2,3,4,0,4,3,2,1,1,2,1,2,3], [0,0,4,3,2,3,4,0,0,0,4,3,2,1,1,1,2,3], [0,0,0,4,3,4,0,0,0,0,0,4,3,2,2,2,3,4]] เครื่องช่วยมองเห็นเล็กน้อย: แสดงตัวอย่างโค้ด body { background-color:#222; color:lightgray; } <pre> [[<span style="color:gold">0</span>,<span style="color:gold">0</span>,<span style="color:gold">0</span>,<span style="color:gold">0</span>,<span style="color:gold">0</span>,<span …
31 code-golf  matrix 

4
สุนัขในเครือ
ฉันมองออกไปนอกหน้าต่างห้องใต้หลังคาของฉันในบ้านของเพื่อนบ้าน พวกเขามีสุนัขถูกล่ามโซ่ไว้ที่เสากลางลาน สุนัขวิ่งไปรอบ ๆ สนาม แต่มักจะอยู่ที่ปลายโซ่ของมันดังนั้นมันจึงทิ้งรอยไว้ในดิน โดยปกติเพลงนี้จะเป็นวงกลมอย่างสมบูรณ์แบบ แต่เพื่อนบ้านของฉันมีเสาอื่น ๆ ในสนามของพวกเขาที่โซ่สุนัขถูกจับได้ ทุกครั้งที่โซ่สุนัขกระทบกับเสาสุนัขจะเริ่มหมุนรอบเสาใหม่โดยที่ความยาวของห่วงโซ่เหลือเท่ารัศมี ตั้งแต่เสาสุนัขและลูกโซ่ทุกคนมีความกว้างเป็นศูนย์ (เพื่อนบ้านของฉันเป็นนักคณิตศาสตร์) ลูกโซ่สามารถหมุนรอบเสาไปเรื่อย ๆ โดยไม่มีรัศมีของวงกลมที่สั้นลง สุนัขยังสามารถผ่านห่วงโซ่ (ไม่ใช่ปลอกคอ) ถ้าโซ่อยู่ในเส้นทาง หลังจากที่สังเกตสิ่งประหลาดนี้มาพักหนึ่งฉันก็ตัดสินใจว่าฉันจะเขียนรหัสเพื่อจำลองสุนัขเพื่อนบ้านของฉัน รหัสจะใช้สถานที่ของเสากลางซึ่งสุนัขถูกล่ามโซ่สถานที่ของเสาอื่น ๆ ในบ้านเพื่อนบ้านของฉันความยาวของห่วงโซ่และที่ตั้งเริ่มต้นของสุนัขและจะส่งออกแผนภาพแสดง เส้นทางที่สุนัขเสื่อมหญ้า คุณอาจสันนิษฐานว่าชุดค่าผสมใด ๆ ต่อไปนี้เป็นค่าคงที่ (และไม่ถือเป็นอินพุต): ที่ตั้งของเสาที่สุนัขถูกล่ามโซ่ ความยาวของโซ่ ตำแหน่งเริ่มต้นของสุนัข ดวงอาทิตย์กำลังสูงขึ้นดังนั้นพื้นที่บนพื้นห้องใต้หลังคาของฉันที่ส่องสว่างทางหน้าต่างลดลงทำให้ฉันมีพื้นที่น้อยลงในการเขียนโค้ดของฉัน โปรดพยายามลดจำนวนไบต์ของรหัสของคุณเพื่อให้ฉันมีพื้นที่ว่างที่จะร่างมันบนพื้นห้องใต้หลังคาของฉัน กรณีทดสอบ ที่นี่ผมคิดว่าสุนัขเริ่มต้น 3 หน่วยใต้จากที่เสามันจะถูกล่ามโซ่ (จุดสีแดง) 0,0ตั้งอยู่ที่ ฉันได้ระบุว่าเสาอยู่ที่จุดใดเพื่อความชัดเจนคุณไม่จำเป็นต้องรวมมันไว้ในเอาต์พุตของคุณ Poles at 1,2 -1,2 Poles at 0,.5 Poles at 0,1 …

30
ริ้วรอยแตก
เราสามารถกำหนดริ้วหารkของจำนวนnโดยการหาที่ไม่ใช่เชิงลบที่เล็กที่สุดจำนวนเต็มkดังกล่าวว่าไม่หารด้วยn+kk+1 ท้าทาย ในภาษาที่คุณเลือกเขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกหรือส่งกลับ Divisibility Streak ของอินพุตของคุณ ตัวอย่าง: n=13: 13 is divisible by 1 14 is divisible by 2 15 is divisible by 3 16 is divisible by 4 17 is not divisible by 5 ริ้ว Divisibilty ของ13เป็น4 n=120: 120 is divisible by 1 121 is not divisible by 2 ริ้ว …

30
พิมพ์ Dichotomy Paradox ของ Zeno อย่างไม่สิ้นสุด (1 / (2 ^ n))
Wikipedia: Dichotomy Paradot ของ Zeno นักคณิตศาสตร์จำนวนไม่ จำกัด เดินเข้าไปในบาร์ คนแรกสั่งเบียร์ อันที่สองสั่งเบียร์ครึ่งหนึ่ง คนที่สามสั่งเบียร์หนึ่งในสี่ บาร์เทนเดอร์หยุดพวกเขาเทเบียร์สองขวดแล้วพูดว่า "คุณเป็นคนงี่เง่าทุกคน" Reddit พิมพ์ซีรี่ส์ต่อไปนี้ตราบเท่าที่โปรแกรมทำงานโดยมีตัวหารของแต่ละรายการถูกคูณด้วยสองในแต่ละครั้ง: 1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ... ในฐานะที่เป็นวิธีการที่อินฟินิตี้รวมของลำดับนี้แนวทางn2 กฎระเบียบ ไม่คุณไม่สามารถพิมพ์2ได้ คุณไม่สามารถพิมพ์1/1เป็นรายการแรก คุณสามารถลบช่องว่าง1+1/2+...หรือเพิ่มช่องว่าง1 + 1 / 2 + ...ตามที่คุณต้องการ คุณสามารถใช้การขึ้นบรรทัดใหม่แทนการเว้นวรรคเป็นตัวคั่นเนื่องจากอุปสงค์ที่เป็นที่นิยม คุณอาจผนวกs .จำนวนคง0ที่เข้ากับตัวส่วนถ้าจำเป็น "อนันต์" หมายถึงไม่มีความล่าช้าที่ไม่จำเป็นและนานที่สุดเท่าที่เป็นไปได้ถูก จำกัด โดยข้อมูลจำเพาะของระบบปัจจุบัน (ตัวแปร) แต่ไม่ จำกัด โดยภาษาปัจจุบันของคุณ …

18
Uniquify Identifiers
บทนำ ตามคำจำกัดความตัวระบุที่ไม่ซ้ำกันควรไม่ซ้ำกัน การมีตัวระบุหลายตัวที่เหมือนกันจะทำให้เกิดการดึงข้อมูลที่ไม่คาดคิด แต่ด้วยข้อมูลที่มาพร้อมกันจากหลาย ๆ แหล่งจึงเป็นเรื่องยากที่จะรับประกันความเป็นเอกลักษณ์ เขียนฟังก์ชั่นที่ไม่ซ้ำรายการของตัวระบุ นี่อาจเป็นปริศนาตัวต่อที่แย่ที่สุดที่ฉันเคยเขียน แต่คุณก็เข้าใจ ความต้องการ ให้รายการของจำนวนเต็มบวกศูนย์หรือมากกว่าให้ใช้กฎต่อไปนี้กับแต่ละหมายเลขตั้งแต่แรกถึงสุดท้าย: หากหมายเลขเป็นหมายเลขแรกให้เก็บไว้ หากพบหมายเลขก่อนหน้านี้ให้แทนที่ด้วยจำนวนเต็มบวกต่ำสุดที่ไม่พบที่ใดก็ได้ในรายการอินพุตทั้งหมดหรือเอาต์พุตใด ๆ ที่มีอยู่ สำหรับการแก้ปัญหา: วิธีแก้ปัญหาอาจเป็นโปรแกรมหรือฟังก์ชั่น อินพุตอาจเป็นสตริงอาร์เรย์ส่งผ่านเป็นอาร์กิวเมนต์หรืออินพุตคีย์บอร์ด ผลลัพธ์อาจเป็นสตริงอาร์เรย์หรือพิมพ์ไปที่หน้าจอ ตัวเลขทั้งหมดในรายการเอาท์พุทจะแตกต่างกัน สมมติฐาน รายการอินพุตนั้นสะอาด มันมีจำนวนเต็มบวกเท่านั้น จำนวนเต็มบวกมีช่วงตั้งแต่ 1 ถึง 2 31 -1 หน่วยความจำน้อยกว่า 256 MB สำหรับตัวแปรของโปรแกรมของคุณ (โดยทั่วไปจะไม่อนุญาตให้ใช้อาร์เรย์ 2,147,483,648 องค์ประกอบ) กรณีทดสอบ Input: empty Output: empty Input: 5 Output: 5 Input: 1, 4, 2, 5, …

26
ผลรวมของแถวและคอลัมน์แรกจากนั้นแถวและคอลัมน์ที่สอง…และอื่น ๆ
ใช้เมทริกซ์ / อาร์เรย์ที่ไม่ว่างเปล่าซึ่งมีจำนวนเต็มบวกเป็นอินพุต กลับไปตามลำดับผลรวมของแถวและคอลัมน์แรกจากนั้นแถวและคอลัมน์ที่สองและดำเนินการต่อไปจนกว่าจะไม่มีแถวหรือคอลัมน์อีกต่อไป สมมติว่าอินพุตคือ: 2 10 10 2 4 9 7 7 2 9 1 7 6 2 4 7 1 4 8 9 ดังนั้นผลลัพธ์ควรเป็น: 45, 33, 16, 17 เพราะ: 2+9+1+7+10+10+2+4=45, 7+7+1+7+2+9=33, 6+4+2+4=16, 8+9=17. กรณีทดสอบ: กรณีทดสอบอยู่ในรูปแบบต่อไปนี้: Input --- Output 5 --- 5 .......... 1 4 ---- 5 .......... 7 …
31 code-golf  math  matrix 

22
สร้างทอร์นาโด
พายุทอร์นาโดมีหน้าตาแบบนี้ ######## ####### ###### ##### #### ### ## # พายุทอร์นาโดนี้เริ่มต้นด้วยความกว้างnและในแต่ละบรรทัดถัดไปตัวละครจะถูกลบออกจากด้านซ้ายหรือด้านขวาขึ้นอยู่กับอินพุต อินพุต อินพุตจะเป็นรายการของค่าที่ไม่ซ้ำกันสองค่าใด ๆ (สตริงของอักขระที่ไม่ซ้ำสองตัวทำงานเช่นกัน) และจำนวนเต็มบวกที่เป็นตัวเลือกเพื่อระบุความกว้างเริ่มต้น หากไม่ได้เลือกจำนวนเต็มความกว้างเริ่มต้นคือ 1 มากกว่าความยาวของรายการ nขอให้เริ่มต้นความกว้าง วิธีทำทอร์นาโด ในตัวอย่างของฉันฉันเลือกรายการที่จะมี 1 s และ0s แม้ว่าคุณอาจเลือกค่าคงที่ที่แตกต่างกันสองค่าหรือสตริงของอักขระคงที่ที่แตกต่างกันสองตัว แถวแรกจะประกอบด้วย nอักขระที่ไม่ใช่ช่องว่าง (คุณสามารถเลือกอักขระที่สอดคล้องกันได้ฉันเลือก#ตัวอย่าง) จากนั้นสำหรับแต่ละหมายเลขในรายการถ้าเป็นหมายเลข 0ให้ลบอักขระด้านซ้ายและสร้างแถวใหม่ ถ้าเป็น1ให้ลบตัวอักษรที่ถูกต้องออกและสร้างแถวใหม่ ดังนั้นพายุทอร์นาโดข้างต้นคือผลลัพธ์สำหรับ 8, [1, 0, 0, 0, 1, 0, 0]ดังนั้นทอร์นาโดข้างต้นเป็นผลลัพธ์สำหรับ เอาท์พุต เอาต์พุตสามารถเป็นรายการของสตริงรายการของอักขระหรือสตริงหลายบรรทัด อนุญาตให้ใช้ช่องว่างต่อท้ายในแต่ละบรรทัดและอนุญาตให้ขึ้นบรรทัดใหม่ที่ท้ายได้ กรณีทดสอบ testcases 1, 0เหล่านี้รวมถึงความกว้างและการใช้งานเริ่มต้นรายการ 5, [1,0,0,1] ##### …

30
ทำกล่องแหลมคม
รับจำนวนเต็มบวกสองค่า W และ H ส่งออกกล่อง ASCII-art ซึ่งเส้นขอบทำจากเครื่องหมายทับ ( /และ\) ด้วย W "spikes" ที่ขอบด้านบนและด้านล่างและ H "spikes" ที่ขอบซ้ายและขวา การตกแต่งภายในของกล่องเต็มไปด้วยช่องว่าง "ขัดขวาง" เป็นเพียงสองสแลชมารวมกันเพื่อสร้างรูปร่างลูกศร: /\ \/ / \ \ / ดังนั้นผลลัพธ์สำหรับW = 4, H = 3จะเป็น /\/\/\/\ \ / / \ \ / / \ \/\/\/\/ เนื่องจากมีหนามแหลมด้านบนชี้ขึ้น 4 ตัว 4 ที่ด้านล่างชี้ลง 3 ด้านซ้ายชี้ไปทางซ้ายและ 3 ทางขวาชี้ …

24
วาดไอคอนเบนซีน hegaxon ของ HyperNeutrino ใน ASCII
ในการเฉลิมฉลองHyperNeutrinoรับกลับบัญชีและตัวแทนของเขาต่อไปนี้นาย Xcoder ขอโทษสำหรับการหมุนรูปภาพเพื่อความสามารถในการวาด พิมพ์หรือแสดงผลงานศิลปะ ASCII นี้อย่างแน่นอน คุณอาจมีช่องว่างต่อท้ายและ / หรือขึ้นบรรทัดใหม่ _______________ / \ / / \ \ / / \ \ / / \ \ / / \ \ / / \ \ \ / \ / \ / \ / \ _____________ / \_______________/ สิ่งนี้แสดงให้เห็นว่าหนึ่งในสองของโครงสร้างกำทอนของเบนซีนโมเลกุล ที่เกี่ยวข้อง: รูปหกเหลี่ยมศูนย์กลาง , รูปหกเหลี่ยมที่เติมดอกจัน ลีดเดอร์บอร์ด: …

7
โซ่โดมิโนที่ยาวที่สุด
คำอธิบายการท้าทาย แต้มเป็นเกมที่เล่นกับกระเบื้องที่มีสองค่าบน - หนึ่งด้านซ้ายด้านขวาเช่นหรือ[2|4] [4|5]สองแผ่นสามารถรวมเข้าด้วยกันหากพวกเขามีค่าทั่วไป ไพ่สองใบด้านบนสามารถเข้าร่วมได้เช่นนี้: [2|4][4|5] เราจะเรียกลำดับของnกระเบื้องเข้าร่วมห่วงโซ่ยาว n แน่นอนกระเบื้องสามารถหมุนเพื่อให้กระเบื้อง[1|2], [1|3]และ[5|3]สามารถจัดใหม่เข้าไปในห่วงโซ่[2|1][1|3][3|5]ของความยาว 3 รับรายการคู่ของจำนวนเต็มกำหนดความยาวของห่วงโซ่ที่ยาวที่สุดที่สามารถเกิดขึ้นได้โดยใช้กระเบื้องเหล่านี้ หากรายการว่างเปล่าคำตอบที่ถูกต้องคือ0(โปรดทราบว่าคุณสามารถสร้างห่วงโซ่ความยาว1จากรายการไทล์ที่ไม่ว่างเปล่า) ตัวอย่างอินพุต / เอาต์พุต [(0, -1), (1, -1), (0, 3), (3, 0), (3, 1), (-2, -1), (0, -1), (2, -2), (-1, 2), (3, -3)] -> 10 ([-1|0][0|-1][-1|2][2|-2][-2|-1][-1|1][1|3][3|0][0|3][3|-3]) [(17, -7), (4, -9), (12, -3), (-17, -17), (14, -10), …

26
เหลือเวลาอีกเท่าไร
โปรแกรม คุณจะได้รับสองสายและB Aคือตำแหน่งปัจจุบันที่ตัวจับเวลาของคุณอยู่ที่และBคือตำแหน่งที่ตัวจับเวลาของคุณจะหยุด สตริงทั้งสองอยู่ในรูปแบบm: ss คุณต้องเขียนโปรแกรมที่กำหนดจำนวนของเวลาที่เหลือซึ่งก็ควรจะจัดรูปแบบเป็นm: ssหรือmm: ss ตัวอย่าง 0:00 0:01 -> 0:01 0:55 1:00 -> 0:05 1:45 3:15 -> 1:30
31 code-golf  string  date 

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