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

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

8
เครื่องกำเนิด Quine ทั่วไป
ความท้าทาย ในความท้าทายนี้คุณระบุภาษาต้นฉบับ Sและภาษาเป้าหมาย Tงานของคุณคือการเขียนโปรแกรมดังต่อไปนี้ในภาษาที่P Sถ้าเป็นโปรแกรมที่ถูกต้องQในภาษาที่Tจะได้รับเป็น input เพื่อPมันจะได้ผลลัพธ์เป็นโปรแกรมที่ถูกต้องRในภาษาที่Tซึ่งจะเข้าไม่ได้และเอาท์พุทQ(R)ที่เป็นโปรแกรมที่นำไปใช้กับรหัสที่มาของQ นอกจากนี้คุณควรจะนำเสนอในคำตอบของคุณโปรแกรมตัวอย่างขี้ปะติ๋ว(น่าสนใจมากขึ้นดีกว่าแม้ว่าคุณแต้มสำหรับเรื่องนี้) โปรแกรมส่งผลและการส่งออกของ นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดสำหรับการชนะRQRRP กล่าวอีกนัยหนึ่งนี่เป็นความท้าทายเกี่ยวกับการเขียน "ตัวสร้างควินสากล" ซึ่งสามารถสร้างประเภททั่วไปได้ตามอำเภอใจ ชี้แจง ภาษาต้นทางและเป้าหมายของคุณอาจเหมือนกัน โปรแกรมที่Pควรใช้เวลาหนึ่งสตริงเป็น input (จาก STDIN หรือเทียบเท่า) และสตริงหนึ่ง output (เพื่อ STDOUT หรือเทียบเท่า) Rเป็นโปรแกรมควรส่งออกทุก โปรแกรมอินพุตQควรแปลงสตริงเป็นสตริงอื่น แต่รูปแบบมีความยืดหยุ่นมากขึ้น: สามารถเป็นฟังก์ชั่นแบบสตริงต่อสตริง, โค้ดขนาดเล็กที่ปรับเปลี่ยนตัวแปรด้วยชื่อที่แน่นอน, สนิปเพตที่ปรับเปลี่ยนสแต็คข้อมูลหากภาษาเป้าหมายของคุณ มีหนึ่งรายการและอื่น ๆ คุณสามารถ จำกัด รูปแบบของรายการเพิ่มเติมQโดยระบุว่าตัวอย่างเช่นพวกเขาอาจไม่มีความคิดเห็นใด ๆ อย่างไรก็ตามคุณต้องสามารถใช้ฟังก์ชัน string-to-string ที่คำนวณได้ใด ๆ เป็นโปรแกรมอินพุตQและคุณต้องระบุอย่างชัดเจนถึงวิธีการทำงานของฟังก์ชันและข้อ จำกัด เพิ่มเติมที่คุณมีต่อฟังก์ชันเหล่านั้น โปรแกรมเอาต์พุตRควรเป็น quine (ทั่วไป) ดังนั้นจึงต้องไม่อ่านอินพุตใด ๆ (อินพุตของผู้ใช้ไฟล์ …

3
จั่วไพ่ ASCII
พิจารณารูปแบบบัตรเล่น 15 ASCII เหล่านี้(เอซผ่านโจ๊กเกอร์และด้านหลัง) ซึ่งXเป็นตัวยึดตำแหน่งสำหรับสัญลักษณ์สูท : (ดูดีขึ้นโดยเว้นระยะบรรทัดน้อยกว่า) ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- |AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | …

13
เลเยอร์ Sierpinski
เริ่มต้นด้วย/\คุณสามารถสร้างสามเหลี่ยมเช่นเดียวกับรูปแบบSierpinskiโดยการเพิ่มบรรทัดด้านล่างที่ ... กิ่งก้านที่หลวม/หรือ\แยกอีกเป็นสองกิ่ง: /\. การชนกันของกิ่งไม้\/จะตายโดยไม่มีสิ่งใด (ยกเว้นที่ว่าง) ภายใต้กิ่งไม้ ทำซ้ำกฎเหล่านี้ให้ผล /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... ( แรงบันดาลใจจาก ViHart ) เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก N และพิมพ์บรรทัด N แรกของรูปแบบนี้ไปยัง stdout โดยไม่มีช่องว่างนำหน้าหรือต่อท้ายเกินกว่าที่จำเป็น ตัวอย่างเช่นถ้าอินพุตเป็น1เอาต์พุตต้องเป็น /\ หากอินพุตเป็น2เอาต์พุตจะต้องเป็น /\ /\/\ หากอินพุตเป็น8เอาต์พุตจะต้องเป็น /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ และอื่น …

7
จัดระเบียบเพลงของโบสถ์เกรโกเรียน
ปีคือ 930 และโบสถ์เกรโกเรียนกำลังมีปัญหา พวกเขามีเพลงสวดมนต์หลายพันหน้า แต่ปัญหาก็คือแผ่นเพลงทั้งหมดถูกโยนลงกองแทนที่จะเป็นระบบองค์กรจริง: ภาพโดย gamerprinter ผู้ใช้ที่สมาคม cartographers' คริสตจักรจำเป็นต้องจัดระเบียบแผ่นเพลงทั้งหมดดังนั้นพวกเขาจึงว่าจ้างวิศวกรซอฟต์แวร์ยุคกลางเพื่อเขียนโปรแกรมเพื่อจัดระเบียบให้พวกเขา คุณเป็นวิศวกรซอฟต์แวร์ที่ได้รับการว่าจ้าง อย่างไรก็ตามกระบวนการรวบรวมในยุคกลางนั้นเกี่ยวข้องกับโปรแกรมที่เขียนลงบนกระดาษโดยทีมงานของนักเขียนพระคัมภีร์ช้า ในการลดเวลาที่ใช้ในการรวบรวมโค้ดของทีมคุณต้องทำให้โปรแกรมมีขนาดเล็กที่สุดเท่าที่จะทำได้ คริสตจักรต้องการเพลงสวดมนต์ที่จะจัดตามออกขนาดดนตรีที่พวกเขาจะถูกเขียนใน. ทั้งหมดของเพลงสวดมนต์ในโบสถ์ถูกเขียนในเครื่องชั่ง Dorian เมื่อได้รับโน้ตของดนตรีชิ้นหนึ่งโปรแกรมของคุณจะส่งออกมาตราส่วนของโดเรียนที่มีอยู่ในที่นี่ฉันจะอธิบายอย่างชัดเจนว่ามาตราส่วนของโดเรียนคืออะไร หากคุณรู้อยู่แล้วคุณสามารถข้ามส่วนนี้ได้ มี 12 โน้ตที่เป็นไปได้ในทำนองใด ๆ ที่นี่พวกเขาอยู่ในลำดับ: C C# D D# E F F# G G# A A# B ดนตรี (แสดงโดยใช้S) เป็นขั้นตอนที่เพิ่มขึ้นไปทางขวาหนึ่งห่อรอบ (ดังนั้นดนตรีขึ้นมาจาก B จะกลับไปที่ C) เสียง (แสดงโดยใช้T) เป็นสอง semitones ตัวอย่างเช่น semitone ที่เพิ่มขึ้นจาก F …
19 code-golf  music 

30
สตริงเป็นไบนารี
นี่คือความท้าทายของรหัสกอล์ฟ เช่นเดียวกับชื่อเรื่องเขียนโปรแกรมเพื่อแปลงสตริงอักขระ ASCII ให้เป็นไบนารี ตัวอย่างเช่น: "Hello World!"1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001ควรเปลี่ยนเป็น หมายเหตุ: ฉันสนใจเป็นพิเศษในการนำ pyth มาใช้

11
สุ่มกอล์ฟประจำวัน # 3: ฉากกั้นระหว่างฉาก
เกี่ยวกับซีรี่ส์ ก่อนอื่นคุณอาจปฏิบัติเช่นนี้กับการแข่งขันกอล์ฟอื่น ๆ และตอบคำถามโดยไม่ต้องกังวลเกี่ยวกับซีรี่ส์เลย อย่างไรก็ตามมีลีดเดอร์บอร์ดสำหรับทุกความท้าทาย คุณสามารถค้นหาลีดเดอร์พร้อมกับข้อมูลบางอย่างเพิ่มเติมเกี่ยวกับซีรีส์ในโพสต์แรก แม้ว่าฉันจะมีไอเดียมากมายสำหรับชุด แต่ความท้าทายในอนาคตยังไม่เกิดขึ้น หากคุณมีข้อเสนอแนะใด ๆ โปรดแจ้งให้เราทราบเกี่ยวกับการโพสต์ Sandbox ที่เกี่ยวข้อง Hole 3: Integer Partitions ใช้เวลาในการเพิ่มความยากลำบากเล็กน้อย พาร์ทิชันของจำนวนเต็มบวกnถูกกำหนดให้เป็น MultiSet nของจำนวนเต็มบวกซึ่งรวมไป ตัวอย่างเช่นถ้าn = 5พาร์ติชันต่อไปนี้มีอยู่: {1,1,1,1,1} {2,1,1,1} {2,2,1} {3,1,1} {3,2} {4,1} {5} หมายเหตุว่าเหล่านี้เป็นมัลติจึงมีคำสั่งไม่ให้พวกเขา{3,1,1}, {1,3,1}และ{1,1,3}ได้รับการพิจารณาทั้งหมดเหมือนกัน งานของคุณจะได้รับการสร้างพาร์ทิชันแบบสุ่มของn nนี่คือกฎรายละเอียด: การกระจายตัวของพาร์ทิชันที่ผลิตจะต้องมีเครื่องแบบ นั่นคือในตัวอย่างข้างต้นแต่ละพาร์ติชันควรส่งคืนด้วยความน่าจะเป็น 1/7 แน่นอนเนื่องจากข้อ จำกัด ทางเทคนิคของ PRNGs ความสม่ำเสมอที่สมบูรณ์แบบจะเป็นไปไม่ได้ เพื่อวัตถุประสงค์ในการประเมินความสม่ำเสมอของการส่งของคุณการดำเนินการต่อไปนี้จะถือว่าเป็นการให้การแจกแจงที่สมบูรณ์แบบ: การรับตัวเลขจาก PRNG (มากกว่าช่วงใด ๆ ) ซึ่งได้รับการบันทึกไว้ว่าเป็นชุด …

2
ขอแสดงความยินดีกับการได้รับ 10,000 ชื่อเสียง!
หลังจาก@ MartinBüttnerประสบความสำเร็จตรง 10,000 ชื่อเสียงตอนนี้เรามีสามแถวเต็มรูปแบบของ 10k ผู้ใช้บนหน้าผู้ใช้ ! ตอนนี้เนื่องจากเราเป็นโปรแกรมเมอร์ทั้งหมดที่นี่เราจึงชอบทำสิ่งต่างๆโดยอัตโนมัติแทนที่จะทำด้วยตนเอง ความท้าทายของคุณคือการเขียนโปรแกรมเพื่อแสดงความยินดีกับผู้ใช้ใหม่ 10k โดยอัตโนมัติ สเปค อินพุต อินพุตจะเป็นnบรรทัดของตัวเลขคั่นด้วยช่องว่าง (หากคุณต้องการคุณอาจใช้รายการหมายเลขคั่นด้วยเครื่องหมายจุลภาคหนึ่งรายการหากทำให้รหัสของคุณสั้นลง) ตัวอย่างเช่น: 10 20 30 40 50 15 25 35 45 55 20 30 40 50 60 หรือ: 10 20 30 40 50,15 25 35 45 55,20 30 40 50 60 แต่ละรายการตัวเลขแสดงรายการค่าชื่อเสียงของผู้ใช้ในหนึ่งวัน เอาท์พุต ผลลัพธ์จะเป็นจำนวนnบรรทัดเดียวกัน(หรือรายการที่คั่นด้วยเครื่องหมายจุลภาคที่มีความยาวเท่ากัน) แต่ละรายการ / …
19 code-golf 

6
เรียกใช้อักขระ Nth เพื่อรับ N
เขียนโปรแกรมที่สั้นที่สุดเท่าที่จะเป็นไปได้เช่นเมื่อคุณรวมอักขระตัวแรกและอักขระ Nth ทุกตัวลงในโปรแกรมใหม่เอาต์พุตจะเป็น N ซึ่งต้องใช้กับ N = 1, 2, ... , 16 อีกวิธีหนึ่งที่จะกล่าวคือถ้าคุณลบอักขระทั้งหมดออกจากโปรแกรมของคุณยกเว้นตัวอักษรตัวแรกและตัวที่ Nth ทุกตัวหลังจากนั้นผลลัพธ์ของรหัสที่เหลือควรเป็น N ตัวอย่าง หากรหัสของคุณคือ ABCDEFGHIJKLMNOP N = 1 ABCDEFGHIJKLMNOPผลลัพธ์ใน เล่นนี้ควรเอาท์พุท 1. ไม่มีผล = 2 ACEGIKMOใน เล่นนี้ควรเอาท์พุท 2. N = 3 ADGJMPผลใน เล่นนี้ควรเอาท์พุท 3. N = 4 AEIMผลใน เล่นนี้ควรเอาท์พุท 4. ไม่มีผล = AFKP5 เล่นนี้ควรเอาท์พุท 5. ไม่มีผล = …

30
สร้างอาร์เรย์ที่มีตัวเลขซ้ำกัน
ท้าทาย งานของคุณในคำถามนี้คือการเขียนโปรแกรมหรือฟังก์ชั่นที่มีชื่อซึ่งใช้จำนวนเต็มบวกn(มากกว่า 0) เป็นอินพุตผ่าน STDIN, ARGV หรือฟังก์ชั่นการขัดแย้งและส่งออกอาร์เรย์ผ่าน STDOUT หรือฟังก์ชั่นกลับค่า ฟังดูง่ายพอใช่ไหม ตอนนี้ที่นี่เป็นกฎ อาร์เรย์จะมีจำนวนเต็มตั้งแต่1ถึงn แต่ละจำนวนเต็มตั้งแต่1ถึงnควรซ้ำหลายxครั้งซึ่งxเป็นค่าของจำนวนเต็มแต่ละค่า ตัวอย่างเช่น: การป้อนข้อมูล: 5 เอาท์พุท: [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5] อาเรย์อาจจะเรียงหรือไม่ก็ได้ นี่คือโค้ดกอล์ฟดังนั้นผู้ชนะคือรหัสที่สั้นที่สุดในหน่วยไบต์ โบนัส คูณคะแนนของคุณด้วย0.5หากไม่มีจำนวนเต็มสองจำนวนที่อยู่ติดกันในอาร์เรย์ผลลัพธ์ของคุณเหมือนกัน ตัวอย่างเช่นสำหรับn = 5หนึ่งการกำหนดค่าดังกล่าวจะเป็น [5, 4, 5, 4, 3, 4, 5, 2, 5, 3, 1, …

8
วาด Stickman Wars
รูปภาพของฉันร่างความท้าทายนี้ด้วยทักษะการวาดขั้นสูงของฉัน พื้นหลัง สงคราม Stickman เกิดขึ้นนานมาแล้วเมื่อเผ่าพันธุ์ที่โดดเด่นของโลกไม่ได้ทำอะไรเลยนอกจากเกาะติด นักประวัติศาสตร์รู้สึกเสียใจที่ไม่มีช่างทาสีหรือกล้องถ่ายรูปมาก่อนเราสามารถใช้ภาพบางส่วนของสงครามในหนังสือประวัติศาสตร์ของวันนี้ นั่นคือสิ่งที่พลังการเข้ารหัสของคุณมีประโยชน์ Stickmen นั้นถูกดึงออกมาได้ง่ายมากและนักประวัติศาสตร์ก็สามารถค้นหาข้อมูลบางอย่างเกี่ยวกับจำนวนของ stickmen ที่ต่อสู้กับสงคราม ตอนนี้ก็ขึ้นอยู่กับคุณแล้วที่จะสร้างภาพของช่วงเวลาที่เหมาะสมก่อนที่สงครามจะเริ่มขึ้น! นี่คือ stickmen ผู้กล้าหาญที่เกี่ยวข้องในสงคราม: โอ | / | \ / | | / \ Swordsman โอเอ / | \ | | | / \ | พลหอก . .' * * * * 'O * '\ | / . | …

3
ประปา ASCII
Intro พิจารณากริดของตัวละครf A\/เช่น f f f A A / \ \ / A A \/ / \/ ที่อยู่: f หมายถึงก๊อกน้ำที่เทน้ำไหลลง A แยกสายน้ำด้านบนออกเป็นสองส่วนครึ่งทางซ้ายและครึ่งทางที่ถูกต้อง \ เลื่อนกระแสน้ำเหนือขึ้นไปทางขวาทีละหนึ่งหน่วย / เลื่อนกระแสน้ำข้างบนไปทางซ้ายทีละหนึ่งหน่วย การรวมกัน\/จะสร้างรางน้ำที่มีความจุไม่สิ้นสุดที่รวบรวมกระแสน้ำข้างบน [space] เป็นพื้นที่ว่างเปล่ากว่าน้ำที่สามารถเคลื่อนที่ผ่านได้ จากนี้เราสามารถจินตนาการเส้นทางที่น้ำ ( *) จะใช้เมื่อมันออกมาจากก๊อกน้ำและตกลงไปในรางหรือออกจากพื้นที่กริด: f f f <-- first second and third faucets * * *A* * *A*/ \* \*/ * …

11
แปลข้อความ ASCII เป็นอักษรเบรลล์
เขียนโปรแกรมที่แปลข้อความ ASCII เป็นอักษรเบรลล์เอาต์พุตที่ต้องการ: อินพุตอาจมาจาก stdin, บรรทัดคำสั่งหรือแหล่งอินพุตภายนอกอื่น ควรจดจำเอาต์พุตเป็นอักษรเบรลล์รูปแบบของเอาต์พุตจะขึ้นอยู่กับคุณ ตัวอย่างจะoเป็นจุดที่ยกขึ้นและ.สำหรับจุดที่ไม่ได้ยกขึ้น การแสดงรูปแบบต้นฉบับเดิมเช่น1-3-4ไม่สามารถยอมรับได้ ไม่จำเป็นต้องใช้การพันบรรทัดยาว ต้องการตัวอักษรและช่องว่าง 26 ตัวสำหรับการแก้ปัญหาขั้นต่ำ ควรละเว้นอักขระอินพุตทั้งหมดที่โซลูชันของคุณไม่สนับสนุน การให้คะแนนคือจำนวนอักขระในซอร์สโค้ด บทลงโทษและโบนัส ได้แก่ : +50 โทษสำหรับการใช้อักษรเบรลล์ Unicodeเป็นเอาท์พุท -50 โบนัสสำหรับการสนับสนุนตัวพิมพ์ใหญ่ตัวเลขและเครื่องหมายวรรคตอน -200 โบนัสสำหรับหนังสติ๊กสนับสนุนและเป็นหนึ่งในตัวอักษรหดตัวจากอังกฤษ (ชั้นประถมศึกษาปีที่ 2) อักษรเบรลล์ (จะทำให้สิ่งนี้เป็นความท้าทายที่แยกจากกันเนื่องจากเป็นปัญหาที่แตกต่างกัน) ตัวอย่างการร้องขอและเอาต์พุต (โซลูชันขั้นต่ำ): $ braille Hello world o . o . o . o . o . . . . o o …
19 code-golf 

29
ทวีคูณตัวเลขทั้งหมดในสตริง
ผู้ชนะ: Chilemagicขนาดใหญ่ 21 ไบต์! คุณสามารถส่งคำตอบของคุณต่อไปได้ แต่คุณจะไม่สามารถชนะได้อีกต่อไป โพสต์ต้นฉบับเก็บไว้: เป้าหมายของคุณคือค้นหาตัวเลขทั้งหมดในสตริงและคูณแต่ละค่าด้วยการป้อนค่าโดยผู้ใช้ คุณไม่จำเป็นต้องกังวลเรื่องทศนิยม ผู้ใช้จะใส่ตัวเลขและสตริง ผู้ใช้จะต้องพิมพ์ตัวเลขและสตริงในบางจุดอย่างไรก็ตามวิธีการที่โปรแกรมอ่านไม่สำคัญ มันอาจจะเป็นกับ stdin อ่านไฟล์ข้อความ ฯลฯ อย่างไรก็ตามผู้ใช้จะต้องกดปุ่ม 9 บนแป้นพิมพ์ของพวกเขา (ตัวอย่าง) ในบางจุด สิ่งใดก็ตามที่สามารถคอมไพล์และรันได้นั้นยอมรับได้ ตัวอย่าง: อินพุตประโยค: 1 นี้คือ 22a 3352 ส่ง 50 ใส่ตัวเลข: 3 ผลลัพธ์: 3 นี้คือ 66a 10056 การส่ง 150 การประกวดนี้จะสิ้นสุดใน 6 กันยายน 2014 (7 วันจากการโพสต์) นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ
19 code-golf 

20
สร้างหมายเลข Ulam
ได้รับจำนวนเต็มn(ที่n < 10001) เป็น input เขียนโปรแกรมที่ออกจะเป็นครั้งแรกที่ตัวเลขลามn หมายเลข Ulam ถูกกำหนดดังนี้: U 1 = 1, U 22 = สำหรับn > 2U nเป็นจำนวนเต็มที่น้อยที่สุดซึ่งมากกว่า U n-1นั่นคือผลรวมของคำสองคำที่แตกต่างกันก่อนหน้านี้ในทางเดียว ตัวอย่างเช่น U 3คือ3(2 + 1), U 4คือ4(3 + 1) (โปรดทราบว่า (2 + 2) ไม่นับเป็นเงื่อนไขที่ไม่ชัดเจน) และ U 5คือ6(U 5ไม่ใช่ 5 เนื่องจาก 5 สามารถแสดงเป็น 2 + 3 หรือ 4 + …

6
ถึงตัวจับเมื่อทุกอย่างในบล็อคการลองถูกจับไปแล้ว
สิ่งนี้ จำกัด เฉพาะ Java และ C # ด้วยไวยากรณ์ที่ฉันเดา ในปริศนาการเขียนโปรแกรมนี้คุณจะต้องสร้างExceptions ที่สามารถถูกจับได้ แต่จะถูกโยนอีกครั้งในตอนท้ายของบล็อกการจับ try { while(true) try { // you are only allowed to modify code between this try { } brackets } catch(Exception ex2) { } } catch(Exception ex1) { // your goal is to reach this catch block by modifying …

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