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

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

19
เครื่องคิดเลขพื้นฐาน
คุณต้องเขียนโปรแกรมเพื่อประเมินสตริงที่จะถูกป้อนลงในเครื่องคิดเลข โปรแกรมจะต้องยอมรับอินพุตและเอาต์พุตคำตอบที่ถูกต้อง สำหรับภาษาที่ไม่ได้มีฟังก์ชั่นอินพุต / เอาต์พุตมาตรฐานคุณอาจคิดฟังก์ชั่นและreadLineprint ความต้องการ ห้ามใช้ฟังก์ชั่น "eval" ใด ๆ สามารถจัดการกับจำนวนจุดลอยตัวและจำนวนลบ รองรับอย่างน้อยที่สุดเครื่องหมาย +, -, *, และ / สามารถจัดการกับการป้อนข้อมูลที่มีหนึ่งหรือมากกว่าช่องว่างระหว่างผู้ประกอบการและตัวเลข หาค่าของนิพจน์จากซ้ายไปขวา โปรแกรมที่สั้นที่สุดชนะ ในกรณีที่เสมอโปรแกรมที่ถูกส่งมาก่อนชนะ คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นถูกต้องและเป็นไปตามรูปแบบที่ถูกต้อง กรณีทดสอบ อินพุต -4 + 5 เอาท์พุต 1 อินพุต -7.5 / 2.5 เอาท์พุต -3 อินพุต -2 + 6 / 2 * 8 - 1 / 2.5 - 18 เอาท์พุต …

30
เรียงลำดับเลขคี่ก่อน
จัดเรียงรายการที่กำหนดใหม่เพื่อให้หมายเลขคี่ทั้งหมดปรากฏขึ้นก่อนหมายเลขคู่ทั้งหมด นอกจากนี้สำหรับข้อกำหนดนี้รายการเอาท์พุทอาจอยู่ในลำดับใดก็ได้ ข้อมูลที่ป้อนจะมีเฉพาะจำนวนเต็ม แต่อาจเป็นค่าลบและอาจมีค่าซ้ำกันและอาจปรากฏในลำดับใดก็ได้ ทางออกที่สั้นที่สุดชนะ กรณีทดสอบ [1,2] → [1,2] [2,1] → [1,2] [1,0,0] → [1,0,0] [0,0,-1] → [-1,0,0] [3,4,3] → [3,3,4] [-4,3,3] → [3,3,-4] [2,2,2,3] → [3,2,2,2] [3,2,2,2,1,2]→ [1,3,2,2,2,2]หรือ[3,1,2,2,2,2] [-2,-2,-2,-1,-2,-3]→ [-1,-3,-2,-2,-2,-2,]หรือ[-3,-1,-2,-2,-2,-2,] [] → []

30
ผลรวมจุดรหัส
ทั้งหมดควินท้าทายบนเว็บไซต์นี้จะมุ่งเน้นไปที่การนับไบต์หรือตัวอักษรของตัวเอง อันนี้ต่างออกไป ความท้าทายของคุณคือการเขียนโปรแกรมที่สร้างผลลัพธ์ที่มีผลรวมของจุดรหัสเหมือนกับผลรวมของจุดรหัสของแหล่งที่มา วิธีสร้างผลรวมของจุดรหัส: ค้นหาค่าของอักขระในชุดอักขระของโปรแกรม ตัวอย่างเช่น - FOOใน ASCII: F= 70, O= 79, O= 79 เพิ่มทั้งหมดเข้าด้วยกัน จุดรวมของรหัสFOOใน ASCII: F+ O+ O= 70 + 79 + 79 = 228 ตัวอย่างของควินรวม ASCII จะถ้ารหัสที่มาเป็นและเอาท์พุทเป็นABC !!!!!!นี่เป็นเพราะผลรวมของค่า ASCII ของแหล่งที่มา ( A= 65, B= 66, C= 67, ผลรวม = 198) จะเหมือนกับผลรวมของค่า ASCII ในเอาต์พุต ( != 33, …
20 code-golf  quine 

9
หมายเลข Hamming
กำหนดจำนวนเต็มบวกให้พิมพ์จำนวนhamming ที่เรียงตามลำดับ กฎ: อินพุตจะเป็นจำนวนเต็มบวกn≤1,000,000n≤1,000,000n \le 1,000,000 ผลลัพธ์ควรเป็นคำแรกที่ n ของhttps://oeis.org/A051037 เวลาดำเนินการจะต้อง <1 นาที นี่คือรหัสกอล์ฟ ; รหัสที่สั้นที่สุดชนะ

5
ปัญหาเหรียญ
พื้นหลัง สกุลเงินอย่างเป็นทางการของประเทศจินตนาการของ Golfenistan คือฟูและมีเหรียญสามชนิดหมุนเวียน: 3 foos, 7 foos และ 8 foos จะเห็นได้ว่าเป็นไปไม่ได้ที่จะจ่ายเงินจำนวนหนึ่งเช่น 4 foos โดยใช้เหรียญเหล่านี้ อย่างไรก็ตามสามารถสร้างจำนวนมากพอทั้งหมด งานของคุณคือการหาจำนวนเงินที่ใหญ่ที่สุดที่ไม่สามารถเกิดขึ้นกับเหรียญ (5 Foos ในกรณีนี้) ซึ่งเป็นที่รู้จักกันเป็นปัญหาเหรียญ อินพุต ข้อมูลที่คุณป้อนเป็นรายการจำนวนเต็มบวกซึ่งแทนค่าของเหรียญในการหมุนเวียน รับประกันสองสิ่งเกี่ยวกับมัน:L = [n1, n2, ..., nk] GCD ขององค์ประกอบของLคือ 1 L ไม่มีหมายเลข 1 มันอาจจะไม่เรียงกันและ / หรือมีการซ้ำซ้อน (คิดว่าเหรียญฉบับพิเศษ) เอาท์พุต เนื่องจาก GCD ของLคือ 1 ทุกจำนวนเต็มมากพอmสามารถแสดงเป็นชุดค่าผสมเชิงเส้นที่ไม่เป็นลบขององค์ประกอบ ในคำอื่น ๆ เรามี m = …

7
Rolling Quine Dice
สร้างโปรแกรมที่ให้ผลลัพธ์เอง อย่างไรก็ตามหากซอร์สโค้ดซ้ำ n ครั้ง(หมายถึงการเชื่อมต่อสำเนาของซอร์สโค้ดกับจุดสิ้นสุด n-1 ครั้ง)ดังนั้นจึงควรมีความน่าจะเป็น 1 / n ในการแสดงผลซอร์สโค้ดต้นฉบับความน่าจะเป็น 1 / n ของเอาต์พุต ซอร์สโค้ดซ้ำสองครั้งความน่าจะเป็น 1 / n ของการส่งออกซอร์สโค้ดซ้ำสามครั้ง ... และความน่าจะเป็น 1 / n ในการส่งออกซอร์สโค้ด n ครั้ง ตัวอย่างเช่นถ้าโปรแกรมของคุณแล้วมันควรเอาท์พุทว่าfoobar foobarแต่ถ้าคุณทำงานfoobarfoobarfoobarfoobarแล้วควรจะมีโอกาส¼แต่ละ outputting foobar, foobarfoobar, และfoobarfoobarfoobarfoobarfoobarfoobarfoobar การกระจายของแต่ละเอาต์พุตที่เป็นไปได้ควรเท่ากัน นอกเหนือจากวิธีการใช้ I / O มาตรฐานและช่องโหว่มาตรฐานห้ามใช้กฎควินินมาตรฐาน (ไม่สามารถเข้าถึงแหล่งที่มาของมันเอง ฯลฯ ) นี่คือรหัสกอล์ฟเพื่อให้ได้คำตอบที่สั้นที่สุดในหน่วยไบต์

2
ค้นหาพื้นที่ของสี่เหลี่ยมที่เล็กที่สุดที่จะมีสี่เหลี่ยมที่มีขนาดไม่เกิน n
นี่คือคำถามที่ลำดับของชนิดที่ปกตินำไปใช้เป็นOEIS ลำดับ A038666 นั่นคือทำอย่างใดอย่างหนึ่งต่อไปนี้: ยอมรับว่าไม่มีสิ่งใดป้อนเข้าและเอาท์พุท A038666 จนกว่าความร้อนจากจักรวาลจะตาย ยอมรับเป็นจำนวนเต็มบวกเป็นอินพุตและเอาต์พุตระยะเวลาของ A038666 TH หรือครั้งแรกแง่ (ถ้าใช้ - แทนที่จะเป็น -exexing แน่นอนว่าคุณต้องเอาท์พุทด้วยอินพุต)nnnnnn00011110 คำที่ของ A038666 เป็นพื้นที่ที่น้อยที่สุดในบรรดาสี่เหลี่ยมที่มีสี่เหลี่ยมที่ไม่ทับซ้อนกันของขนาดถ้าคุณใช้ -exexingnnn1 × 1 , 2 × 2 , … n × n1×1,2×2,…n×n1\times1,2\times2,\dots n\times n111 ตัวอย่าง: สี่เหลี่ยมผืนผ้าพื้นที่ที่เล็กที่สุดซึ่งสามารถมีสี่เหลี่ยมที่ไม่ซ้อนทับกันของขนาดถึงมีขนาด :1 × 11×11\times14 × 44×44\times47 × 57×57\times5 4 4 4 4 3 3 3 4 …

6
ใช้โปรแกรมที่เชื่อมโยงสองโปรแกรมส่งออกหมายเลขลำดับสูงสุด n
... เลขลำดับ (หรือเลขลำดับ) เป็นคำที่แสดงถึงตำแหน่งหรือลำดับในลำดับ จากวิกิพีเดีย งานของคุณคือการใช้โปรแกรมแยก 2 (ซึ่งสามารถทำจาก 2 ภาษาที่แตกต่างกัน) nthเพื่อการส่งออกลำดับลำดับจากครั้งแรก คุณจะได้รับการแสดงผลคำเต็มเมื่อเทียบกับsecond2nd ความท้าทายของเลขลำดับได้นำมาก่อนโดยเฉพาะในรายการนี้ ในการท้าทายนี้ ordinals เป็นเพียงยานพาหนะเพื่ออำนวยความสะดวกในเงื่อนไขที่ไม่ซ้ำกันรายละเอียดด้านล่าง ส่วนที่ 1 คุณต้องทำให้โปรแกรมที่เมื่อได้รับการป้อนข้อมูลของที่nต้องส่งออกอะไร nจะเป็นจำนวนเต็มบวกที่ไม่ใช่ศูนย์เสมอไม่มากกว่า 999 เอาต์พุตที่ถูกต้องประกอบด้วย แต่ไม่ จำกัด เฉพาะ : เอาต์พุตใด ๆ ไปยังstdout/ stderr/ ฯลฯ การสร้างไฟล์ / โฟลเดอร์ / ฯลฯ ส่วนต่อประสานกราฟิกหรือภาพทุกชนิด อะไรจะไป ส่วนที่ 2 คุณต้องสร้างโปรแกรมที่ใช้เอาต์พุตของโปรแกรมของส่วนที่ 1 เพื่อส่งออกหมายเลขลำดับโดยเริ่มต้นจาก 1 (แรก) จนถึงส่วนใด ๆ ที่nถูกแยกวิเคราะห์ในส่วนที่ 1 เงื่อนไขทั่วไป: …
19 code-golf 

4
คำนวณความสูงของชามกอง
ชามกองสูง เป้าหมายของปริศนานี้คือการคำนวณความสูงของชามที่ซ้อนกัน ชามถูกกำหนดให้เป็นอุปกรณ์ที่มีความสมมาตรเรดิอเรย์โดยไม่มีความหนา รูปร่างเงาของมันคือพหุนามแม้ สแต็กถูกอธิบายโดยรายการรัศมีซึ่งแต่ละอันเกี่ยวข้องกับพหุนามแบบคู่ให้เป็นอินพุตเป็นรายการของสัมประสิทธิ์ (เช่นรายการ3.1 4.2แทนพหุนาม3.1 x2+ 4.2 x43.1x2+4.2x43.1x^2+4.2x^4 ) พหุนามอาจมีระดับโดยพลการ สำหรับความเรียบง่ายความสูงของกองถูกกำหนดให้เป็นระดับความสูงของศูนย์กลางของชามบนสุด (ดูพล็อตของตัวอย่างที่ 3 สำหรับภาพประกอบ) กรณีทดสอบอยู่ในรูปแบบradius:coeff1 coeff2 ...: แต่ละบรรทัดเริ่มต้นด้วยเลขทศนิยมแทนรัศมีของชามตามด้วยเครื่องหมายโคลอนและรายการที่คั่นด้วยช่องว่างที่มีค่าสัมประสิทธิ์สำหรับกำลังคู่เริ่มต้นด้วยพลังงาน 2 (โดยนัยคงที่ส่วนศูนย์) . ยกตัวอย่างเช่นเส้น2.3:3.1 4.2อธิบายชามรัศมีและรูปร่างพหุนาม2.33.1 * x^2 + 4.2 * x^4 ตัวอย่างที่ 1 42:3.141 อธิบายถึงกองที่มีความสูงเป็นศูนย์เนื่องจากชามเดี่ยวไม่มีความสูง ตัวอย่างที่ 2 1:1 2 1.2:5 1:3 อธิบายความสูง2.0(ดูรูปประกอบ) ตัวอย่างที่ 3 1:1.0 0.6:0.2 0.6:0.4 1.4:0.2 0.4:0 10 …

12
คำนวณฟังก์ชั่นของรถม้าสี่ล้อ
กุ๊บของฟังก์ชั่น g(n)g(n)g(n) ( OEIS A000793 ) ให้การสั่งซื้อสูงสุดขององค์ประกอบของกลุ่มได้ส่วนSnSnS_n n ที่นี่คำสั่งของการเปลี่ยนลําดับππ\piเป็นที่เล็กที่สุดจำนวนเต็มบวกkkkดังกล่าวว่าπkπk\pi^kเป็นตัวตน - ซึ่งเท่ากับตัวคูณร่วมน้อยของความยาวของรอบในการสลายตัวของวงจรการเปลี่ยนแปลงของ ตัวอย่างเช่นg(14)=84g(14)=84g(14) = 84ซึ่งทำได้โดย (1,2,3) (4,5,6,7) (8,9,10,11,12,13,14) ดังนั้นg(n)g(n)g(n)นอกจากนี้ยังเท่ากับค่าสูงสุดของlcm(a1,…,ak)lcm⁡(a1,…,ak)\operatorname{lcm}(a_1, \ldots, a_k)ที่1 + ⋯ + k = nกับ1 , ...a1+⋯+ak=na1+⋯+ak=na_1 + \cdots + a_k = na1,…,aka1,…,aka_1, \ldots, a_kจำนวนเต็มบวก ปัญหา เขียนฟังก์ชั่นหรือโปรแกรมที่คำนวณฟังก์ชั่นของ Landau อินพุต จำนวนเต็มบวก nnnn เอาท์พุต ก.( n )ก.(n)g(n)ลำดับสูงสุดขององค์ประกอบของกลุ่มสมมาตรSnSnS_n n ตัวอย่าง n g(n) …

15
ตรงกับตัวเลขโรมัน
ท้าทาย รับสตริงอินพุตบางตัวส่งคืนค่าความจริงถ้ามันแสดงถึงตัวเลขโรมันที่ถูกต้องระหว่าง 1 (= I) และ 3999 (= MMMCMXCIX) และค่าเท็จเป็นอย่างอื่น รายละเอียด อินพุตเป็นสตริงที่ไม่ว่างซึ่งประกอบด้วยอักขระIVXLCDMเท่านั้น ตัวเลขโรมัน (ที่เราใช้ที่นี่ในการท้าทายนี้) ถูกกำหนดดังนี้: เราใช้สัญลักษณ์ต่อไปนี้เท่านั้น: Symbol I V X L C D M Value 1 5 10 50 100 500 1000 การกําหนดซึ่งสตริงเลขโรมันที่ถูกต้องจริงก็อาจจะง่ายที่สุดในการให้กฎของการสนทนา: การเขียนจำนวนทศนิยมa3 a2 a1 a0(ซึ่งแต่ละai. เป็นหนึ่งในหลักดังนั้นสำหรับตัวอย่างเพื่อเป็นตัวแทนของ792เรามีa3=0, a2=7, a1=9, a0=2.) เป็นเลขโรมันเราย่อยสลายมัน เข้าสู่พลังของสิบ พลังที่แตกต่างกันของสิบสามารถเขียนได้ดังนี้: 1-9: I, II, III, IV, V, …

10
จัดลำดับรายการหลักใหม่ตามการจัดเรียงลำดับใหม่
ฉันเพิ่งมีปัญหาในการแก้ไขที่ทำงานที่ฉันมีสองรายการ: รายการหลักและรายการขนาดเล็กที่ประกอบด้วยส่วนย่อยของรายการในรายการหลักอาจเรียงลำดับแตกต่างกัน ฉันต้องการจัดลำดับรายการหลักใหม่ในลักษณะที่รายการในชุดย่อยจะปรากฏในลำดับเดียวกันโดยไม่เปลี่ยนลำดับรายการที่ไม่พบในรายการและเก็บรายการไว้ในตำแหน่งเดียวกันทุกครั้งที่ทำได้ ตกลงว่าอาจฟังดูสับสนดังนั้นฉันจะทำลายมันลง: รายการหลักกำหนดลำดับของรายการเริ่มต้น รายการชุดย่อยกำหนดลำดับสัมพัทธ์ของรายการบางอย่าง ในกรณีที่รายการหลักมีองค์ประกอบสองรายการที่ผิดปกติตามรายการชุดย่อยรายการที่อยู่ก่อนหน้าในรายการหลักควรถูกย้ายไปยังดัชนีที่เก่าที่สุดซึ่งอยู่ในตำแหน่งที่ถูกต้องซึ่งสัมพันธ์กับรายการอื่น ๆ ภายในรายการชุดย่อย (เช่นทันทีหลังจากรายการในภายหลัง) งานของคุณคือการใช้อัลกอริทึมการเรียงลำดับใหม่นี้ ตัวอย่างกรณีทดสอบ Master: [1, 2, 3] Subset: [] Result: [1, 2, 3] Master: [9001, 42, 69, 1337, 420] Subset: [69] Result: [9001, 42, 69, 1337, 420] Master: [9001, 42, 69, 1337, 420, 99, 255] Subset: [69, 9001, 1337] Result: [42, …

15
ขยายและทำสัญญา
ใช้จำนวนเต็มบวกเป็นอินพุต เริ่มต้นด้วยและซ้ำ ๆ เพิ่มโดยอำนาจเลขที่ใหญ่ที่สุดในสิบของเช่นที่และkkkkn : = 1n:=1n := 1nnnผมiiฉัน≤ ni≤ni \le nฉัน+ n ≤ ki+n≤ki + n \le k ทำซ้ำจนกว่าและกลับรายการค่ากลางทั้งหมดในรวมทั้งเริ่มต้นและสุดท้ายkn = kn=kn = knnn111kkk ในระหว่างขั้นตอนนี้การเติบโตจะถูก จำกัด โดยความไม่เท่าเทียมในอดีตและหลังจากนั้นเท่านั้น การเติบโตจะอยู่ในรูปของระยะเวลา "การขยายตัว" เริ่มต้นในระหว่างที่ถูกเพิ่มโดยพลังที่มีขนาดใหญ่กว่าเดิมตามด้วยระยะเวลา "สัญญา" ในระหว่างที่ถูกเพิ่มขึ้นด้วยพลังที่เล็กลงเพื่อ "ซูมเข้า" ในหมายเลขที่ถูกต้องnnnnnn กรณีทดสอบ 1 => [1] 10 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] …

8
ซูรินาเมอักษรสองเท่า
Steganography ซ่อนข้อความที่กำหนดไว้ภายในสายการบินที่กำหนดโดยสร้างแพ็คเกจที่ไม่น่าสงสัย สำหรับความท้าทายนี้คุณจะเขียนโปรแกรมที่ใช้ข้อความ ASCII และผู้ให้บริการ ASCII เป็นอินพุตและส่งคืนหรือพิมพ์แพคเกจที่เหมือนกับผู้ให้บริการยกเว้นตัวอักษรที่สอดคล้องกับข้อความนั้นเป็นสองเท่าตามลำดับที่ปรากฏใน ข้อความ. กฎ: หากผู้ให้บริการมีลำดับของอักขระเดียวกันมากกว่าหนึ่งครั้งและไม่ได้ใช้เพื่อเข้ารหัสอักขระของข้อความโปรแกรมจะลดจำนวนอักขระดังกล่าวเป็นอักขระเดียว หากผู้ให้บริการไม่มีอักขระข้อความตามลำดับที่ถูกต้องโปรแกรมอาจไม่ส่งคืนอะไรผู้ให้บริการเองหรือมีข้อผิดพลาด คุณอาจคิดว่าข้อความและผู้ให้บริการเป็นสตริง ASCII ที่ไม่ว่างเปล่า การใช้ตัวพิมพ์ใหญ่: A ไม่เทียบเท่ากับ a เมื่อมีมากกว่าหนึ่งแพ็คเกจที่ถูกต้องโปรแกรมของคุณอาจส่งออกใด ๆ หรือทั้งหมดของพวกเขา Space เป็นตัวละครที่เหมือนตัวละครอื่น ๆ กรณีทดสอบ: แพ็คเกจผู้ให้บริการข้อความ "สวัสดี" "มาถึงแล้วหรือ" "มันก็เกิดขึ้นแล้วเหรอ?" หรือ "ได้รับมันแล้วเหรอ?" "ท่าน" "มาถึงแล้วหรือ" "รบกวนฉันมาแล้วเหรอ?" "foo" "มาถึงแล้วหรือ" "" หรือ "มาถึงแล้วหรือ" หรือมีข้อผิดพลาด "รถยนต์" "แมวเท่ห์" "CCaats arre col." "รถยนต์" "แมวเท่" "" หรือ "แมวเท่ห์" …

25
ลูกเต๋าที่สูงที่สุด
ท้าทาย: ที่นี่เรามีลำดับ 100 รายการแรก: 6,5,4,3,2,1,66,65,64,63,62,61,56,55,54,53,52,51,46,45,44,43,42,41,36,35,34,33,32,31,26,25,24,23,22,21,16,15,14,13,12,11,666,665,664,663,662,661,656,655,654,653,652,651,646,645,644,643,642,641,636,635,634,633,632,631,626,625,624,623,622,621,616,615,614,613,612,611,566,565,564,563,562,561,556,555,554,553,552,551,546,545,544,543,542,541,536,535,534,533,... ลำดับนี้เกิดขึ้นได้อย่างไร? อันดับแรกเรามีตัวเลขอยู่ในช่วง[6, 1](ค่าที่เป็นไปได้ทั้งหมดของแม่พิมพ์เดียวจากมากไปน้อยที่สุด) จากนั้นเราจะมีตัวเลข[66..61, 56..51, 46..41, 36..31, 26..21, 16..11](ค่าที่เป็นไปได้ทั้งหมดของสองลูกเต๋าจากมากไปน้อย) อื่น ๆ สิ่งนี้เกี่ยวข้องกับลำดับ OEIS A057436: มีตัวเลข 1 ถึง 6 เท่านั้นแต่มีตัวเลขทั้งหมดที่มีตัวเลขเท่ากับจำนวนที่เรียงลำดับย้อนหลังในลำดับ ความท้าทายคือการเลือกหนึ่งในสามตัวเลือกสำหรับฟังก์ชั่น / โปรแกรมของคุณตามลำดับข้างต้น: รับอินพุตและส่งออกค่า 'ของลำดับนี้ซึ่งสามารถเป็นดัชนี 0 หรือดัชนี 1nnnnnn รับอินพุตและส่งออกค่าหรือของลำดับนี้nnnnnnn + 1n+1n+1 เอาท์พุทค่าจากลำดับอย่างไม่มีกำหนด แน่นอนว่าสามารถใช้รูปแบบผลลัพธ์ที่เหมาะสมได้ อาจเป็นสตริง / จำนวนเต็ม / ทศนิยม / ฯลฯ อาจเป็นรายการ (อนันต์) / อาร์เรย์ / สตรีม …

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