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

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

2
ช่วยฉันจัดเรียงถุงเท้าของฉัน!
ฉันมีถุงเท้าสะอาดที่ฉันต้องการจัดเรียงเป็นคู่ น่าเสียดายที่ฉันสามารถรับถุงเท้าจากปลายด้านใดด้านหนึ่งเท่านั้นไม่ใช่ตรงกลาง ยิ่งกว่านั้นฉันสามารถถอดถุงเท้าออกจากกองคู่ที่ตรงกันในแต่ละครั้งเท่านั้น กลยุทธ์ของฉันคือการแบ่งกองเป็นกองเล็ก ๆ หนึ่งกองหรือมากกว่า ฉันคิดว่าตัวอย่างบางอย่างจะทำให้เรื่องนี้ชัดเจน ฉันจะแทนถุงเท้าแต่ละตัวเป็นจำนวนเต็มบวก (จำนวนเต็มที่ตรงกันบ่งชี้ว่าเท่ากับถุงเท้า) หากกองถุงเท้าเริ่มต้นคือ 1 2 3 3 2 1 ถ้าอย่างนั้นฉันก็ไม่ต้องแยกอะไร ฉันสามารถนำ1ถุงเท้าทั้งสองออกจากนั้น2ถุงเท้าทั้งสองจากนั้น3ถุงเท้าทั้งสอง ถ้าแทนกองเริ่มต้นก็คือ 1 2 3 2 3 1 ถ้าอย่างนั้นฉันก็ต้องแยกมันก่อนเพราะฉันจะไม่สามารถจับคู่ถุงเท้าทั้งหมดได้โดยแค่เอามันออกจากท้าย ความเป็นไปได้อย่างหนึ่งคือแยกมันออกเป็นสองกอง 1 2 3 and 2 3 1 ตอนนี้ฉันสามารถถอด1ถุงเท้าออก2 3 and 2 3แล้วตามด้วย3ถุงเท้าออก2 and 2และสุดท้ายก็เป็น2ถุงเท้า งานของคุณ ให้กองถุงเท้าเริ่มต้นเขียนโปรแกรมที่จะแยกเป็นกองเล็ก ๆ ที่จะช่วยให้ฉันเรียงถุงเท้า โปรแกรมของคุณควรแบ่งเสาเข็มให้มีจำนวนน้อยที่สุดเท่าที่จะเป็นไปได้ (ถ้ามีวิธีแก้ปัญหาที่ดีที่สุดหลายวิธี การป้อนข้อมูลจะได้รับเป็นรายการสตริงคั่นหรือรูปแบบที่สะดวกอื่น ๆ มันจะมีจำนวนเต็มเฉพาะระหว่าง1และบางค่าสูงสุดnโดยแต่ละจำนวนเต็มเกิดขึ้นสองครั้ง …
30 code-golf 

10
ตีความ /// (ออกเสียง 'ทับ')
เพราะเราไม่สามารถเล่นกอล์ฟที่เป็นภาษาลึกลับได้มากพอใช่ไหม? /// - เครื่องหมายทับ - เป็นภาษาเล็ก ๆ น้อย ๆ ที่สนุกสนานตามs///ฟังก์ชั่นการแทนที่ regex ของชื่อเสียงของ Perl มันมีเพียงสองตัวละครพิเศษเฉือน/และเครื่องหมายทับขวา\เท่านั้น คุณสามารถค้นหาบทความฉบับเต็มได้ที่วิกิ esolangsแต่ฉันจะทำซ้ำคำอธิบายของภาษาด้านล่างรวมถึงตัวอย่างบางส่วน ในระยะสั้นมันทำงานโดยระบุ/pattern/repl/restในโปรแกรมและทำการทดแทนได้หลายครั้งเท่าที่จะทำได้ ไม่มีอักขระพิเศษยกเว้น/และ\: /แบ่งเขตรูปแบบและการแทนที่ในโปรแกรมในขณะที่\ให้คุณแทรกตัวอักษร/หรือ\อักขระลงในรหัสของคุณ ยวดเหล่านี้ไม่ใช่การแสดงออกปกติเพียงทดแทนสตริงธรรมดา ความท้าทายของคุณคือการผลิตล่ามสำหรับ /// ภาษาไม่ว่าจะเป็นโปรแกรมที่อ่าน STDIN หรือฟังก์ชั่นที่รับอาร์กิวเมนต์สตริงในตัวละครน้อยที่สุด คุณสามารถใช้ภาษาใดก็ได้ยกเว้น /// ตัวเอง คุณไม่สามารถใช้ไลบรารีใด ๆ ที่ตีความ ///; อย่างไรก็ตามคุณสามารถใช้ไลบรารี regex, regex หรือไลบรารีที่จับคู่สตริง การกระทำ มีสี่รัฐมีการพิมพ์ , รูปแบบ , ทดแทนและเปลี่ยนตัว ในทุกรัฐยกเว้นการทดแทน : หากโปรแกรมว่างเปล่าการทำงานจะหยุดทำงาน มิฉะนั้นถ้าตัวละครตัวแรกคือ\ทำอะไรกับตัวละครต่อไป (ถ้ามี) และลบทั้งสองจากโปรแกรม มิฉะนั้นถ้าอักขระตัวแรกคือ/ให้ลบออกและเปลี่ยนเป็นสถานะถัดไป อื่นทำอะไรกับตัวละครตัวแรกและลบออกจากโปรแกรม …

30
เขียนโปรแกรมที่เขียนฟังก์ชั่น แต่เป็นภาษาอื่น!
เขียนโปรแกรมที่สั้นที่สุดที่รับหนึ่งอินพุต (n) จาก STDIN (หรือเทียบเท่า) และส่งออกฟังก์ชันการเพิ่มอย่างง่ายด้วยอาร์กิวเมนต์หนึ่งตัว (x) ที่ส่งคืน x + n แต่ฟังก์ชันนั้นต้องเป็นภาษาอื่น ค่อนข้างง่าย! นี่คือรหัส - กอล์ฟ, ใช้กฎปกติ, โปรแกรมที่สั้นที่สุดชนะ ตัวอย่าง:> <> ถึง Python (Ungolfed) !v"def i(x):"a" return x+"ir! >l?!;o การป้อนข้อมูล: 3 เอาท์พุท: def i(x): return x+3 แก้ไข: ฟังก์ชั่นไม่ระบุชื่อและการแสดงออกแลมบ์ดาได้รับอนุญาต!
30 code-golf 

7
ตีกอล์ฟวงกลมที่เล็กที่สุด!
ปัญหา: ให้คะแนนที่ไม่ว่างเปล่าในระนาบคาร์ทีเซียนหาวงกลมที่เล็กที่สุดที่ล้อมรอบพวกมันทั้งหมด ( ลิงค์ Wikipedia ) ปัญหานี้เล็กน้อยถ้าจำนวนคะแนนเป็นสามหรือน้อยกว่า (ถ้ามีจุดหนึ่งวงกลมจะมีรัศมีเป็นศูนย์ถ้ามีสองจุดส่วนของเส้นตรงที่รวมจุดนั้นคือเส้นผ่านศูนย์กลางของวงกลมถ้ามี จุดสามจุด (ไม่ใช่เครื่องหมาย colinear) เป็นไปได้ที่จะได้รับสมการของวงกลมที่สัมผัสได้ทั้งหมดหากพวกมันเป็นรูปสามเหลี่ยมที่ไม่เป็นปมหรือวงกลมที่สัมผัสเพียงสองจุดและล้อมรอบที่สามหากสามเหลี่ยมนั้นเป็นรูปสามเหลี่ยม ดังนั้นเพื่อความท้าทายนี้จำนวนคะแนนควรมากกว่าสาม ความท้าทาย: อินพุต:รายการของจุดที่ไม่ใช่ colinear 4 จุดขึ้นไป คะแนนควรมีพิกัด X และ Y พิกัดสามารถลอยได้ เพื่อบรรเทาความท้าทายไม่ควรมีสองจุดที่ใช้ร่วมกันพิกัด X เดียวกัน ตัวอย่างเช่น:[(0,0), (2,1), (5,3), (-1,-1)] เอาท์พุท: tuple ของค่า(h,k,r)เช่นนั้นเป็นสมการของวงกลมที่เล็กที่สุดที่ล้อมรอบทุกจุด(x−h)2+(y−k)2=r2(x−h)2+(y−k)2=r2(x-h)^2 + (y-k)^2 = r^2 กฎ: คุณสามารถเลือกวิธีการป้อนข้อมูลใดก็ได้ที่เหมาะกับโปรแกรมของคุณ ควรพิมพ์ผลลัพธ์ไปยังSTDOUTหรือส่งคืนโดยฟังก์ชัน ต้องการภาษา "ปกติ" ทั่วไปใช้ภาษาได้ แต่ภาษาเอสแตงใดก็ได้ คุณสามารถสันนิษฐานได้ว่าคะแนนนั้นไม่ได้ colinear นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่เล็กที่สุดในหน่วยไบต์ชนะ ผู้ชนะจะได้รับการคัดเลือกหนึ่งสัปดาห์หลังจากการโพสต์ความท้าทาย โปรดรวมภาษาที่คุณใช้และความยาวเป็นไบต์เป็นส่วนหัวในบรรทัดแรกของคำตอบของคุณ: # …

18
ผกผันคำพูดควิน
ความคาดหวังของการท้าทายนี้คือ: หากโปรแกรมของคุณทำงานตามปกติรหัสทั้งหมดในเครื่องหมายคำพูด ( "- เครื่องหมายคำพูดคู่) ควรถูกพิมพ์ หากโปรแกรมของคุณอยู่ในเครื่องหมายคำพูดคู่ (ในทางกลับกันเครื่องหมายคำพูด) รหัสที่ปกติไม่ได้อยู่ในเครื่องหมายคำพูดควรจะพิมพ์ เช่น: สมมติว่าคุณมีรหัสต่อไปนี้: fancyStuff("myCode"); "I like".isGreat(); ถ้าฉันใช้มันฉันคาดหวังผลลัพธ์ของ: myCode I like อย่างไรก็ตามถ้าฉันใส่ในเครื่องหมายคำพูดฉันจะได้รับ: "fancyStuff("myCode"); "I like".isGreat();" เมื่อเรียกใช้รหัสนี้ผลลัพธ์ที่คาดหวังจะเป็น: fancyStuff( ); .isGreat(); เห็นได้ชัดว่าตัวอย่างข้างต้นไม่ได้เป็นการตอบสนองการทำงานในภาษาใด ๆ งานของคุณคือการเขียนรหัสที่มีประสิทธิภาพในลักษณะนี้ กฎระเบียบ ช่องโหว่มาตรฐานใช้ ค่าที่พิมพ์ทั้งในแบบฟอร์มที่ยกมาและไม่ได้ระบุไว้ต้องไม่ว่างเปล่าหรือประกอบด้วยช่องว่างเท่านั้น ซึ่งหมายความว่าโปรแกรมทั้งหมดต้องมีชุดคำพูดอย่างน้อยหนึ่งชุด อย่างไรก็ตามอนุญาตให้ใช้ช่องว่างต่อท้าย / นำหน้า ไม่ต้องดูรหัสของคุณชื่อไฟล์ที่ต้องการ ฯลฯ คำพูดที่ไม่ตรงกันจะไม่ได้รับอนุญาต หากมีหลายสตริงพวกเขาสามารถพิมพ์เป็นบรรทัดใหม่ (ในตัวอย่าง) หรือในวิธีอื่นที่มนุษย์สามารถอ่านได้ - ไม่มีอาร์เรย์หรือวัตถุ นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ

20
ใช้ Casenader Doomsday Dice's Catuckative ของ Homestuck
ท้าทาย ฉันถูกโจมตีโดยลูกเรือเที่ยงคืนที่ร้ายกาจและฉันจำเป็นต้องเรียกCatenative Doomsday Dice Cascaderเพื่อปกป้องตัวเอง เนื่องจากฉันมีพื้นที่เหลือน้อยฉันจึงต้องใช้รหัสให้สั้นที่สุด อัลกอริทึมสำหรับ Casenader Dice Catenative Doomsday มีดังต่อไปนี้: ครั้งแรกแม่พิมพ์รีดหกด้านใน Prime Bubble จะถูกรีดและผลลัพธ์จะพิจารณาว่ามีการวนซ้ำของขั้นตอนถัดไปกี่ครั้ง เริ่มต้นด้วยการตายหกด้าน หลายต่อหลายครั้งเมื่อการหมุนของ Prime Bubble ตายตัวให้คูณจำนวนด้านในการตายครั้งต่อไปด้วยผลลัพธ์ของการหมุนของ Die ปัจจุบัน ตัวอย่างเช่นหากในการหมุนรอบแรกของการตายหกด้านการหมุนของคุณคือ 2 การตายครั้งต่อไปของคุณจะมี 6 * 2 = 12 ด้าน เป้าหมายของคุณคือการเขียนฟังก์ชั่นหรือโปรแกรมที่ไม่ต้องป้อนข้อมูลและส่งออกผลลัพธ์สุดท้ายของการรีดตายครั้งสุดท้าย เนื่องจากนี่คือcode-golfจำนวนไบต์ต่ำสุดในแต่ละภาษาจึงชนะ! ตัวอย่าง ตัวอย่าง # 1 (ถ่ายโดยตรงจากลิงก์ด้านบน): The Prime Bubble rolls a 6, meaning that the Cascader will …
29 code-golf  random 

2
ลำดับเกลียว
พื้นหลัง ลำดับ OEIS A272573อธิบายถึงเกลียวบนกริดหกเหลี่ยมดังนี้: เริ่มหมุนวนของตัวเลขบนกระเบื้องหกเหลี่ยมโดยมีหกเหลี่ยมเริ่มต้นเป็น (1) = 1 a (n) เป็นจำนวนเต็มบวกที่เล็กที่สุดที่ไม่เท่ากับหรือก่อนหน้านี้ติดกับเพื่อนบ้าน ลำดับเริ่มต้น 1, 2, 3, 4, 5, 6, 7, 4, 6, 8, 5, 9, 8, 10, 2, 11, ... นี่คือภาพประกอบของรูปแบบเกลียว: a(11) != 1เพราะตอนนั้น3และ1จะอยู่ติดกันสองแห่ง a(11) != 2เพราะตอนนั้น3และ2จะอยู่ติดกันสองแห่ง a(11) != 3เพราะจากนั้น3จะติดกับตัวเอง a(11) != 4เพราะตอนนั้น3และ4จะอยู่ติดกันสองแห่ง a(11) = 5ดังนั้น ท้าทาย ความท้าทายคือการเขียนโปรแกรมที่คำนวณA272573 นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ

11
มาวาด Triforce กัน
The Triforceเป็นสิ่งประดิษฐ์สวมบทบาทในThe Legend of Zeldaทำจากสามเหลี่ยมสามด้านที่มีรูปลักษณ์เหมือนกันแสดงถึงพลังสติปัญญาและความกล้าหาญ หลายเกมในเทพนิยายรวมถึงภาพเคลื่อนไหวเมื่อสามส่วนเข้าด้วยกันในที่สุด จุดประสงค์ของความท้าทายนี้คือการวาดเฟรม 2 มิติเดียวของภาพเคลื่อนไหวที่ทำให้ง่ายขึ้นโดยมีความกว้างที่กำหนดสำหรับรูปสามเหลี่ยมและระยะห่างที่กำหนดระหว่างส่วนต่างๆ อินพุต การป้อนข้อมูลประกอบด้วยสองจำนวนเต็ม: ความกว้างและค่าระยะห่างs ≥ 0w≥1W≥1w\ge1s ≥ 0s≥0s\ge0 เอาท์พุต เฟรมต้องถูกวาดตามข้อกำหนดต่อไปนี้: /\ / \____________ this part is horizontally centered / \ /______\ \___ s empty lines / /\ /\ / \ / \______ w+1 backslashes / \ / \ /______\ /______\ \_______ 2w …

16
เพื่อค้นหาหมู่เกาะที่ 1 และ 0 ในเมทริกซ์
กำหนดเมทริกซ์สองมิติเป็น 0 และ 1s ค้นหาจำนวนเกาะสำหรับ 1s และ 0s โดยที่เพื่อนบ้านอยู่ในแนวนอนและแนวตั้งเท่านั้น Given input: 1 1 1 0 1 1 1 0 output = 1 1 Number of 1s island = 1 xxx- xxx- Number of 0s island = 1 ---x ---x ------------------------------ Given input: 0 0 0 0 1 1 1 1 …

26
ลูกศรตัวแปรเหล่านั้น!
ท้าทาย โรบินชอบมีการประกาศตัวแปรของเขาในรูปของลูกศร นี่คือวิธีที่เขาทำ: อินพุตสตริงจำนวนเท่าใดก็ได้ จัดเรียงตามความยาว เอาท์พุทพวกเขาสั่งจากกลางถึงรูปหัวลูกศรเชิงลบประมาณเช่นนี้ (ใดก็ตามสั่งกอล์ฟที่ดีที่สุด): 5 or 4 3 2 1 1 2 3 4 5 กรณีทดสอบ การป้อนข้อมูล: bow arrows sheriffOfNottingham kingRichard maidMarian princeJohn sherwoodForest เอาท์พุท: sheriffOfNottingham kingRichard maidMarian bow arrows princeJohn sherwoodForest การป้อนข้อมูล: a bb cc เอาต์พุต (ใช้ได้ทั้งคู่): bb a cc cc a bb การป้อนข้อมูล: one four …

15
ทดแทนแม่เหล็กตู้เย็น
เมื่อมีการเขียนข้อความที่มีแม่เหล็กติดตู้เย็น, คุณมักจะพบว่าตัวเองทำหน้าที่แทนสำหรับ1 Iในการท้าทายนี้เป้าหมายของคุณคือค้นหาว่าสามารถเขียนข้อความโดยใช้ตัวอักษรของข้อความอื่นได้หรือไม่ การทดแทนที่ได้รับอนุญาตคือ: A = 4 B = 8 C = U E = M = W = 3 G = 6 = 9 I = 1 L = 7 N = Z O = 0 R = 2 S = 5 ตัวอย่างเช่นข้อความCIRCA 333สามารถจัดใหม่ที่จะสะกดICE CREAMที่สองคนแรก3ที่จะหมุน 180 องศาเพื่อให้ทั้งสองEs และสุดท้าย3คือ 90 …

19
อายุเท่าไหร่
เขียนโปรแกรมสั้น ๆ ซึ่งใช้เวลาเป็นวินาทีในการแสดงอายุและแสดงผลการประมาณเวลานั้นเป็นภาษาอังกฤษ โปรแกรมของคุณจะต้องแสดงเวลาที่แม่นยำน้อยที่สุดซึ่งผ่านไปแล้วโดยใช้เมตริกต่อไปนี้และความยาวเป็นวินาที: second = 1 minute = 60 hour = 60 * 60 day = 60 * 60 * 24 week = 60 * 60 * 24 * 7 month = 60 * 60 * 24 * 31 year = 60 * 60 * 24 * 365 ตัวอย่าง …
29 code-golf  date 

21
สัญลักษณ์ Levi-Civita
สัญลักษณ์ Levi-Civita สามมิติเป็นฟังก์ชั่นที่fนำจำนวนสามตัวของตัวเลข(i,j,k)แต่ละตัวเข้า{1,2,3}มาเพื่อ{-1,0,1}กำหนดดังนี้ f(i,j,k) = 0เมื่อi,j,kไม่ชัดเจนเช่นi=jหรือj=kหรือk=i f(i,j,k) = 1เมื่อ(i,j,k)การเปลี่ยนแปลงวงจรที่เป็นหนึ่งใน(1,2,3)(1,2,3), (2,3,1), (3,1,2) f(i,j,k) = -1เมื่อ(i,j,k)การเปลี่ยนแปลงวงจรที่เป็นหนึ่งใน(3,2,1)(3,2,1), (2,1,3), (1,3,2) ผลที่ได้คือสัญญาณของการเปลี่ยนแปลงของ(1,2,3)ด้วยไม่ใช่พีชคณิตให้ 0. หรือถ้าเราเชื่อมโยงค่า1,2,3กับฉากเวกเตอร์พื้นฐานหน่วยe_1, e_2, e_3นั้นf(i,j,k)เป็นปัจจัยของเมทริกซ์ 3x3 e_i, e_j, e_kกับคอลัมน์ อินพุต ตัวเลขสามตัว{1,2,3}เรียงตามลำดับ {0,1,2}หรือคุณอาจเลือกที่จะใช้เป็นศูนย์การจัดทำดัชนี เอาท์พุต ค่าฟังก์ชั่นของพวกเขา Levi-Civita {-1,0,1}จาก นี่คือรหัสกอล์ฟ กรณีทดสอบ มีอินพุต 27 ที่เป็นไปได้ (1, 1, 1) => 0 (1, 1, 2) => 0 (1, 1, 3) …

30
สุ่มจนถึง 0
ท้าทาย โพสต์ Sandbox กำหนดจำนวนเต็มบวก(K)เอาท์พุทเป็นจำนวนเต็มสม่ำเสมอสุ่มระหว่าง(Y)[0, K) ถ้าY > 0สมมติและทำซ้ำขั้นตอนจนกว่าK = YY = 0 กฎระเบียบ ต้องป้อนข้อมูลในตอนแรก รูปแบบผลลัพธ์ตามที่คุณต้องการ โปรแกรมของคุณจะต้องเสร็จสิ้น 0 ต้องเป็นผลลัพธ์สุดท้ายเลือกที่จะเป็นบรรทัดว่างแทน 0
29 code-golf  random 

11
เครื่องหมายดอกจันเกลียว
เมื่อพิจารณาถึงขนาดของเกลียวSและขนาดขั้นตอนNให้เอาออกเป็นS*Sเกลียว"สี่เหลี่ยม" ที่มีNเครื่องหมายดอกจันสร้างขึ้นจากรัศมีด้านนอกไปยังด้านในตามเข็มนาฬิกา กรณีทดสอบ (ตัวอย่าง) ด้านล่าง การป้อนข้อมูล: 4 3 เอาท์พุท: *** การป้อนข้อมูล: 4 6 เอาท์พุท: **** * * การป้อนข้อมูล: 4 11 เอาท์พุท: **** * * * **** การป้อนข้อมูล: 6 18 เอาท์พุท: ****** * * * * * * ****** การป้อนข้อมูล: 6 22 เอาท์พุท: ****** *** * * * * * * …

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