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

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

1
การนับโซ่ของคันนิงแฮม
ตัวเลขที่สำคัญทำให้ผู้คนหลงใหล 2300 ปีที่แล้ว Euclid เขียนใน "Elements" ของเขา จำนวนเฉพาะคือสิ่งที่วัดโดยหน่วยเดียว ซึ่งหมายความว่านายกสามารถหารด้วย1(หรือด้วยตัวเอง) เท่านั้น ผู้คนมักจะมองหาความสัมพันธ์ระหว่างจำนวนเฉพาะและเกิดขึ้นกับบางสิ่งที่แปลก (เช่นใน "น่าสนใจ") ตัวอย่างเช่นนายก Sophie Germainเป็นนายกpที่2*p+1สำคัญเช่นกัน นายกปลอดภัยเป็นนายกpที่(p-1)/2ยังเป็นนายกรัฐมนตรีซึ่งเป็นว่าสภาพข้างหลังของนายกโซฟีต์แชร์กแมง สิ่งเหล่านี้เกี่ยวข้องกับสิ่งที่เรากำลังมองหาในการท้าทายนี้ ห่วงโซ่คันนิงแฮมของประเภทที่เป็นชุดของจำนวนเฉพาะที่องค์ประกอบยกเว้นคนสุดท้ายทุกคนจะเป็นนายกโซฟีต์แชร์กแมงและองค์ประกอบยกเว้นคนแรกที่ทุกคนเป็นนายกปลอดภัย จำนวนขององค์ประกอบในครั้งนี้มีห่วงโซ่ที่เรียกว่ามันยาว ซึ่งหมายความว่าเราเริ่มต้นด้วยการลากและคำนวณp q=2*p+1ถ้าqเป็นไพร์มด้วยเรามี Cunnigham chain ของ type I ที่มีความยาว 2 จากนั้นเราจะทดสอบ2*q+1และต่อไปเรื่อย ๆ จนกระทั่งจำนวนที่สร้างขึ้นถัดไปเป็นคอมโพสิต โซ่คันนิงแฮมประเภทIIสร้างขึ้นตามหลักการเดียวกันเกือบทั้งหมดความแตกต่างเพียงอย่างเดียวคือเราตรวจสอบ2*p-1แต่ละขั้นตอน โซ่คันนิงแฮมสามารถมีความยาว 1ซึ่งหมายความว่า 2 * p + 1 หรือ 2 * p-1 ไม่สำคัญ เราไม่ได้สนใจในสิ่งเหล่านี้ ตัวอย่างบางส่วนของ Cunningham chains 2เริ่มสายโซ่ประเภทที่ฉันมีความยาว …

7
Pseudorandom Cellular Automaton
บทนำ ในความท้าทายนี้เราจะจำลองหุ่นยนต์เคลื่อนที่อัตโนมัติที่น่าจะเป็นไปได้โดยใช้ตัวเลขเทียมปลอมที่แย่มาก หุ่นยนต์เซลลูลาร์ถูกกำหนดบนสตริงไบนารีโดยกฎโลคัลต่อไปนี้ สมมติว่าเพื่อนบ้านซ้ายของเซลล์และเซลล์ของตัวเองมีรัฐและab หากmin(a,b) == 0แล้วรัฐใหม่ของมีที่bmax(a,b) หากmin(a,b) == 1แล้วรัฐใหม่ของที่ถูกเลือกโดยการสุ่มจากb{0,1} ภาพต่อไปนี้แสดงให้เห็นถึงวิวัฒนาการ 10 ขั้นตอนเดียวที่เป็น1ไปได้ 1 11 101 1111 11001 101011 1111111 10001001 110011011 1010111101 สังเกตว่า1บางครั้ง s สองอันที่อยู่ติดกันพัฒนาไป1มาและบางครั้งถึง0และบิตที่ขอบสุดจะเป็น1s เสมอ งานของคุณคือผลิตวิวัฒนาการออโตมาตาเซลในรูปแบบนี้ ปัจจัยการผลิต อินพุตของคุณเป็นจำนวนเต็มบวกnแสดงถึงจำนวนแถวที่จะแสดงและรายการบิตที่ไม่ว่างLซึ่งเราใช้เป็นแหล่งของการสุ่ม เอาท์พุต การส่งออกของคุณคือรายชื่อของรายการหรืออาร์เรย์ 2 มิติของบิตภาพวาดวิวัฒนาการของเดียว1สำหรับnขั้นตอนเวลาในรูปดังกล่าวข้างต้น คุณสามารถวางผลลัพธ์ด้วย0s เพื่อให้ได้แถวที่มีความยาวเท่ากันหากต้องการ แต่จะต้องไม่มีการนำหน้า0s ตัวเลือกแบบสุ่มในหุ่นยนต์เซลลูล่าร์จะต้องดึงออกมาจากรายการLแล้วกระโดดกลับไปที่จุดเริ่มต้นเมื่อหมดแล้ว อย่างชัดเจนยิ่งขึ้นถ้าผลลัพธ์ถูกส่งผ่านหนึ่งแถวในรูปแบบเวลาจากบนลงล่างจากซ้ายไปขวาจากนั้นตัวเลือกสุ่มที่ต่อเนื่องจะสร้างรายการLซ้ำหลาย ๆ ครั้งตามที่จำเป็น ตัวอย่าง สมมติว่าปัจจัยการผลิตที่มีและn = 7 L = [0,1,0]จากนั้นหุ่นยนต์เซลลูล่าร์จะค่อยๆพัฒนาดังต่อไปนี้ในช่วง 7 ขั้นตอนที่เราวางตัวเลือกไว้vเหนือตัวเลือกแบบสุ่ม: …

6
ตัวเลขที่เชื่อถือได้
ตัวเลขที่เชื่อถือได้ อนุญาตxเป็นจำนวนเต็มของฐานโดยพลการเช่นนั้นDคืออาร์เรย์ของตัวเลข xเป็นหมายเลขที่ไว้วางใจถ้าสำหรับทั้งหมดnระหว่าง1และความยาวของD: D[n+1] = D[n] + D[n-1] + ... + D[1] + n ยกตัวอย่างเช่นตัวเลข349ในฐาน 10 หากเราติดป้ายดัชนีสำหรับหมายเลขนี้เรามีดังต่อไปนี้ Index Digit ----- ----- 1 3 2 4 3 9 เริ่มจากหลักแรกเรามี1 + 3 = 4ซึ่งให้หลักถัดไป จากนั้นด้วยตัวเลขที่สองเรามี3 + 4 + 2 = 9ซึ่งอีกครั้งให้ผลหลักถัดไป ดังนั้นหมายเลขนี้คือหมายเลขที่ไว้วางใจ กำหนดจำนวนเต็มด้วยฐานระหว่าง 1 ถึง 62 คำนวณตัวเลข Confidant ทั้งหมดสำหรับฐานนั้นและส่งออกรายการของพวกเขาคั่นด้วยบรรทัดใหม่ คุณสามารถสันนิษฐานได้ว่ามีหมายเลข Confidant Number …
14 code-golf  number 

2
Karel J. AlphaBot Sequence Generator
คะแนน ส่วนนี้จะถูกกรอกเมื่อมีการส่งผลงาน ปกติ 1. bopjesvla Perl 54 2. edc65 Javascript (ES6) 91 3. name language score 4. name language score 5. name language score รอบโบนัส 1. name language score 2. name language score 3. name language score 4. name language score 5. name language score Karel J. AlphaBot พื้นหลัง หลักสูตรเบื้องต้นยอดนิยมสำหรับ …
14 code-golf 

5
การประมวลผลข้อความ # 1: การใส่ไฮเฟ็น
พื้นหลัง นี่คือส่วนแรกของสนามกอล์ฟ 3 หลุมในการประมวลผลข้อความ แนวคิดที่เกินความคาดหมายคือถ้าคุณนำข้อความเข้าและไปป์ผ่านวิธีแก้ปัญหาทั้งสามข้อ (ด้วยรหัสกาวจำนวนเล็กน้อย) มันจะแยกย่อหน้าที่จัดรูปแบบออกมาอย่างสวยงาม ในการท้าทายครั้งแรกนี้งานของคุณคือการใส่ยัติภังค์ชิ้นส่วนของข้อความโดยใช้รูปแบบการใส่ยัติภังค์ที่กำหนด อินพุต โปรแกรมของคุณจะรับอินพุตสตริงสองเส้น: ข้อความและรายการรูปแบบยัติภังค์ อินพุตแรกเป็นสตริงที่ไม่ว่างเปล่าของอักขระ ASCII และช่องว่างที่พิมพ์ได้ ~ก็จะได้มีการแบ่งบรรทัดหรือเครื่องหมายตัวหนอน อินพุตที่สองคือรายการคำที่คั่นด้วยจุลภาคซึ่งประกอบด้วยพยางค์ที่คั่นด้วย tilde ของอักขระ ASCII ตัวพิมพ์เล็ก ex~cel~lent,pro~gram~ming,abil~i~tiesตัวอย่างคือ เอาท์พุต โปรแกรมของคุณจะแก้ไขอินพุตแรกด้วยวิธีต่อไปนี้ คำใด ๆ (สตริงย่อยสูงสุดของตัวอักษร ASCII ตามตัวอักษร) ที่พบตัวพิมพ์เล็กที่ใส่ยัติภังค์ในอินพุตที่สองจะถูกแทนที่ด้วยเวอร์ชันที่ใส่ยัติภังค์นั้น แต่จะต้องเก็บรักษาไว้ ด้วยรายการตัวอย่างข้างต้นหากข้อความมีคำว่าExcellentมันจะถูกแทนที่ด้วยEx~cel~lent; อย่างไรก็ตามExcellentlyจะไม่สามารถแก้ไขได้ ผลลัพธ์ของคุณจะต้องเป็นสตริงที่ดัดแปลงนี้ รายละเอียดกฎและเกณฑ์การให้คะแนน คุณสามารถสมมติสิ่งต่อไปนี้เกี่ยวกับอินพุต: อินพุตแรกไม่มี tildes และไม่มีช่องว่างนำหน้าต่อท้ายหรือเว้นวรรคซ้ำ ไม่ว่างเปล่า อินพุตที่สองมีอย่างน้อยหนึ่งคำและแต่ละคำในนั้นจะมีอย่างน้อยสองพยางค์ แต่ละพยางค์ไม่ว่างเปล่า อินพุตที่สองไม่มีคำที่เกิดขึ้นเป็นพยางค์ในคำอื่น คุณสามารถเปลี่ยนลำดับของอินพุตทั้งสองถ้าต้องการและเพิ่มทางเลือกหนึ่งบรรทัดขึ้นบรรทัดใหม่ไปยังเอาต์พุต คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ 1st input [newline] 2nd …

4
การนับจุดสิ้นสุดของศิลปะ ASCII
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับสตริงที่แสดงถึง ASCII art เป็น input และ output หรือคืนค่าจำนวน endpoints ใน input อินพุตจะประกอบด้วยอักขระspace - | +(ที่มีจุดปลาย 0, 2, 2 และ 4 ตามลำดับ) และการแบ่งบรรทัด เช่น: -|++- + อักขระสองตัวที่อยู่ติดกันถูกเชื่อมต่อและทำให้สูญเสีย 1 จุดปลายในแต่ละกรณีในกรณีต่อไปนี้: -- -+ +- | | + + ++ | + | + ตัวอย่างแรกมี 2+2+2+2+1+ 3 = 12 ปลายทาง อินพุต การป้อนข้อมูลจะเป็นสตริงที่ประกอบด้วยพื้นที่ตัวอักษร-, |, +และขึ้นบรรทัดใหม่ …

3
ตรวจสอบปุ่มทั้งหมดของแป้นพิมพ์
เขียนโปรแกรมที่สั้นที่สุดที่รอสำหรับทุกคีย์ของคีย์มาตรฐาน 101 US *เพื่อกดและออกจากการเขียน OK! ทุกครั้งที่มีการกดปุ่มโปรแกรมจะปรากฏขึ้นบนบรรทัดใหม่จำนวนที่เหลือของปุ่มที่ไม่ซ้ำซึ่งยังไม่ได้กดซึ่งจะต้องกดจนกว่าจะกดปุ่มทั้งหมดอย่างน้อยหนึ่งครั้ง โปรแกรมควรสามารถทดสอบ 101 แป้นพิมพ์และดูว่าทุกปุ่มทำงานได้หรือไม่ ดังนั้นการกดปุ่มสองครั้งหรือป้อนจะต้องได้รับอนุญาตตราบใดที่ระบุไว้กับผู้ใช้ การกดปุ่มเดิมสองครั้งขึ้นไปไม่ควรทำให้รหัสหยุดชะงักหรือเปลี่ยนหมายเลขที่แสดงของปุ่มที่ยังไม่ได้กดที่เหลือ คีย์ทั้งหมด ( Left Shift, Right Shift, Right Control, Esc, Enterฯลฯ ) ควรจะรวม ปุ่มแป้นพิมพ์ที่เกิดขึ้นจริงมีความสำคัญในความท้าทายนี้ดังนั้นจากมุมมองของโปรแกรม ( Aและaเป็นเดียวกันและเพื่อให้มี6และ^) คีย์ผสมจะไม่ได้รับการลงทะเบียนเป็นคำสั่งแบบรวมและจะมีการลงทะเบียนเฉพาะคีย์แต่ละรายการหากกดCtrl+ Alt+ Delซึ่งจะนับสำหรับแต่ละคีย์ทั้งหมดในชุดค่าผสมที่ถูกกด ดังนั้นไม่จำเป็นต้องกดตัวพิมพ์ใหญ่หากคุณกดตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แล้ว แผงปุ่มกดตัวเลขบนแป้นพิมพ์ตัวเลขมีความแตกต่างจากมุมมองของโปรแกรมเพื่อให้พวกเขายังคงมีความจำเป็นที่จะต้องกดสำหรับโปรแกรมที่จะเสร็จสิ้นถ้าคุณมีแล็ปท็อปหรือแป้นพิมพ์อื่น ๆ ที่ไม่ได้มีมาตรฐาน 101 ดอลลาร์สหรัฐแป้นพิมพ์แบบคุณ ไม่สามารถทำสิ่งที่ท้าทายได้หากคุณไม่ได้ติดตั้งแป้นพิมพ์ที่เข้ากันได้ * คีย์บอร์ดที่มีคีย์ Fn และคีย์แล็ปท็อปจะไม่ได้รับการสนับสนุนเพื่อให้ความท้าทายนี้เป็นไปได้ นี่คือรายการของแป้นสำหรับรูปแบบแป้นพิมพ์ 101 มาตรฐานของสหรัฐอเมริกา: backspace tab enter right shift right ctrl …

4
ใช้การเข้ารหัสความยาวรันของ bzip2
พื้นหลัง หลังจากใช้ BWT (เท่าที่เห็นในBurrows, Wheeler และ Back ) และ MTF (ดังที่เห็นในย้ายไปยังหน้า ASCII ที่พิมพ์ได้ ) คอมเพรสเซอร์bzip2ใช้รูปแบบการเข้ารหัสที่ค่อนข้างยาว คำนิยาม สำหรับวัตถุประสงค์ของการท้าทายนี้เราได้กำหนดการเปลี่ยนแปลง BRLE ดังนี้: รับสตริงอินพุตsที่ประกอบด้วยอักขระ ASCII ที่มีจุดรหัสระหว่าง 0x20 ถึง 0x7A เท่านั้นให้ทำดังนี้: แทนที่การเรียกใช้อักขระที่เท่ากันแต่ละครั้งด้วยการเกิดขึ้นครั้งเดียวของตัวละครและจำนวนการจัดเก็บการทำซ้ำหลังจากครั้งแรก เข้ารหัสจำนวนการทำซ้ำ หลังจากที่เกิดขึ้นครั้งแรกของตัวละครโดยใช้bijective ฐานที่ 2 การคิดเลขและสัญลักษณ์และ{} จำนวนเต็มไม่เป็นลบnถูกเข้ารหัสเป็นสตริงb k … b 0เช่นนั้นn = 2 k i (b k ) + … + 2 0 i …

8
วรรณพันธ์
Fannkuchเป็นโปรแกรมมาตรฐานคลาสสิก ชื่อนี้มาจากภาษาเยอรมัน "Pfannkuchen" - แพนเค้ก - สำหรับความคล้ายคลึงของอัลกอริทึมในการพลิกกองแพนเค้ก ลำดับหมายเลข Fannkuch ถูกสร้างขึ้นดังนี้: ใช้การเรียงสับเปลี่ยนของ {1 ..... n} ตัวอย่างเช่น: {4,2,1,5,3} นำองค์ประกอบแรกมาที่นี่ 4 และกลับลำดับขององค์ประกอบ 4 รายการแรก: {5,1,2,4,3} ทำซ้ำจนกว่าองค์ประกอบแรกจะเป็น 1 ดังนั้นการพลิกจะไม่เปลี่ยนแปลงอะไรอีก: {3,4,2,1,5}, {2,4,3,1,5}, {4,2,3 1,5}, {1,3,2,4,5} คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งคำนวณลำดับ Fannkuch เหมือนสำหรับสตริงของตัวอักษร แทนที่จะใช้ตัวเลขเพื่อระบุองค์ประกอบของรายการที่จะพลิกแต่ละครั้งตำแหน่งของตัวอักษรในตัวอักษรควรใช้ ตัวอย่างเช่นผู้นำcจะระบุว่าคุณควรกลับลำดับของ 3 องค์ประกอบแรกในขณะที่ผู้นำaชี้ให้เห็นว่าลำดับเสร็จสมบูรณ์ อินพุต อินพุตจะถูกจัดเตรียมเป็นสตริงผ่าน stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน สตริงจะมีตัวอักษรตัวพิมพ์เล็กระหว่าง 1 ถึง 26 ตัว สตริงจะไม่มีตัวอักษรที่มีดัชนีเทียบเท่าจะทำให้อัลกอริทึม Fannkuch พลิกองค์ประกอบมากกว่าที่มีอยู่ เอาท์พุต …

1
ปัญหาการจำนำที่หายไป
ปัญหาการจำนำที่หายไป หลังจากเกมหมากรุกสิ้นสุดลงเบี้ยที่รอดตายก็ถูกทิ้งไว้เบื้องหลังแนวศัตรู มาช่วยเขาหาทางกลับบ้านให้เร็วที่สุด ปัญหาเดิมอธิบายกระดาน "หมากรุก" nXn และฟังก์ชั่นf: {1,..,n-1}X{1,..,n}X{-1,0,1} => R+ของน้ำหนัก เป้าหมายคือการหาเส้นทางที่ดีที่สุดจากบางช่องในแนว buttom ไปยัง square อื่น ๆ ใน top line ซึ่งการเคลื่อนไหวที่เป็นไปได้คือ: left-up, up, right-up และคุณไม่สามารถออกจากกระดานได้ ปัญหาค่อนข้างง่ายในการแก้ปัญหาใน O (n ^ 2) โดยใช้การเขียนโปรแกรมแบบไดนามิก แต่นี่คือ codegolf และเราไม่สนใจสิ่งที่ไร้ประโยชน์เช่นความซับซ้อนของเวลาทำงาน ... ปัญหา อินพุต:อาร์เรย์ 3 มิติ (หรือคอลเลกชันอื่น ๆ ที่คุณเลือกได้รับผ่าน stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน) สอดคล้องกับกระดานหมากรุกทั่วไปขนาด: 7X8X3 (#linePasses X #rowSize X #movePerPass) …
14 code-golf  chess 

11
ล้างสระว่ายน้ำ . . ด้วยถ้วยเดี่ยวสีแดงเท่านั้น
คุณมีสระว่ายน้ำที่เต็มไปด้วยน้ำ คุณต้องล้างมัน แต่คุณไม่สามารถคิดวิธีที่มีประสิทธิภาพได้ ดังนั้นคุณตัดสินใจที่จะใช้ถ้วยเดี่ยวสีแดงของคุณ คุณจะเติมถ้วยซ้ำ ๆ จนหมดแล้วเททิ้งไว้ข้างนอกสระ ท้าทาย ใช้เวลาในการล้างสระว่ายน้ำนานเท่าไหร่ อินพุต [shape of pool] [dimensions] [shape of cup] [dimensions] [speed] shape of poolจะเป็นหนึ่งในสายเหล่านี้: circle, หรือtriangle rectangleโปรดทราบว่าสิ่งเหล่านี้จริงอ้างถึงรูปร่าง 3 มิติ: ทรงกระบอก, ปริซึมสามเหลี่ยมและปริซึมสี่เหลี่ยม dimensions จะแตกต่างกันไปขึ้นอยู่กับรูปร่าง แวดวง: [radius] [height]. ปริมาณ = π r 2ชม [base] [height] [length]สามเหลี่ยม: ปริมาตร = 1/2 (bh) * ความยาว สี่เหลี่ยมผืนผ้า: [width] …

7
คำอธิบายไบนารีแบบเรียกซ้ำ
คำอธิบายไบนารีแบบเรียกซ้ำ เร็ว ๆ นี้ผมทำผลงานแรกของฉันที่จะ OEIS โดยการขยายและเพิ่มเป็นขแฟ้มลำดับA049064 ลำดับเริ่มต้นด้วย0จากนั้นค่าถัดไปจะได้รับจากการให้ "คำอธิบายไบนารี" ของรายการสุดท้าย ตัวอย่างเช่นเทอมที่สองจะเป็น10เพราะมีหนึ่ง0ในองค์ประกอบแรก ระยะที่สามจะเป็น1110เพราะมีผู้หญิงคนหนึ่งและเป็นหนึ่งใน1 ที่สี่จะเป็น0 11110เพราะมีสาม( 11ในไบนารี!) และหนึ่ง1 0ด้านล่างคือการแยกคำที่ห้าเพื่อทำให้กระบวนการนี้ชัดเจน: > 11110 > 1111 0 (split into groups of each number) > 4*1 1*0 (get count of each number in each group) > 100*1 1*0 (convert counts to binary) > 100110 (join each group …
14 code-golf 

3
โพลีโอมิโนเส้นรอบวงสูงสุด
นี่คือรหัสกอล์ฟ ผู้ชนะคือรหัสที่ถูกต้องและมีจำนวนไบต์น้อยที่สุด ท้าทาย รับอินพุตMและN , ความกว้างและความสูงของตารางสี่เหลี่ยมของสี่เหลี่ยม, ส่งออกรูปหลายเหลี่ยมที่ตรงตามต่อไปนี้: ขอบรูปหลายเหลี่ยมสร้างขึ้นจากขอบสี่เหลี่ยมเท่านั้น:ไม่มีขอบทแยงมุม - ทั้งหมดเป็นแนวตั้งหรือแนวนอน รูปหลายเหลี่ยมไม่มีรู:สี่เหลี่ยมด้านนอกของรูปหลายเหลี่ยมนั้นอาจถึงได้โดยขั้นตอนมุมฉากบนสี่เหลี่ยมนอกรูปหลายเหลี่ยมเริ่มจากสี่เหลี่ยมนอกรูปหลายเหลี่ยมบนขอบเขตด้านนอกของรูปสี่เหลี่ยมผืนผ้า รูปหลายเหลี่ยมนั้นไม่มีจุดตัดเอง:จากการที่ขอบจตุรัสพบกันที่จุดยอดไม่เกิน 2 อาจเป็นส่วนหนึ่งของเส้นรอบวงรูปหลายเหลี่ยม รูปหลายเหลี่ยมถูกเชื่อมต่อ:สี่เหลี่ยมใด ๆ ในรูปหลายเหลี่ยมจะต้องสามารถเข้าถึงได้จากตารางอื่น ๆ ในรูปหลายเหลี่ยมผ่านขั้นตอนมุมฉากที่อยู่ภายในรูปหลายเหลี่ยม รูปหลายเหลี่ยมมีขอบเขตสูงสุดที่เป็นไปได้:ตามสูตรที่แสดงด้านล่าง รหัสของคุณจะต้องใช้กับMและN ได้ตั้งแต่ 1 ถึง 255 สูตรสำหรับปริมณฑลสูงสุด ความท้าทายที่นี่คือการค้นหาความสามารถในการเล่นกอล์ฟของรูปหลายเหลี่ยมที่มีขอบเขตสูงสุด ขอบเขตสูงสุดนั้นถูกกำหนดโดยสูตรเสมอ: สิ่งนี้เป็นจริงเพราะในขอบเขตสูงสุดทุกจุดสุดยอดของรูปสี่เหลี่ยมจัตุรัสจะต้องอยู่บนเส้นรอบวง สำหรับจำนวนจุดยอดที่เป็นไปไม่ได้นี้เป็นไปไม่ได้และสิ่งที่ดีที่สุดที่สามารถบรรลุได้คือจุดยอดหนึ่งที่น้อยกว่า (เนื่องจากเส้นรอบวงอยู่เสมอ) เอาท์พุต แสดงรูปร่างเป็นสตริงของอักขระที่คั่นด้วยบรรทัดใหม่ ( แถวNของอักขระM ทั้งหมด ) ที่นี่ฉันกำลังใช้พื้นที่สำหรับสี่เหลี่ยมนอกรูปหลายเหลี่ยมและ '#' สำหรับกำลังสองภายในรูปหลายเหลี่ยม แต่คุณสามารถใช้อักขระสองตัวที่แตกต่างกันได้โดยให้ความหมายสอดคล้องกับอินพุตทั้งหมด คุณสามารถรวมบรรทัดใหม่ชั้นนำได้หนึ่งรายการและขึ้นบรรทัดใหม่ต่อท้ายหนึ่งรายการ หากคุณต้องการคุณสามารถส่งออกแถวM ที่มีอักขระทั้งหมดNตัวและคุณอาจเลือกMเอาต์พุต by Nสำหรับอินพุตบางตัวและเอาต์พุตNโดยMสำหรับผู้อื่น ตัวอย่าง ไม่ถูกต้องเนื่องจากมีรู: ### # …
14 code-golf  grid 

2
การระเบิดบนกระดานหมากรุก
Atomic Chessเป็นเกมหมากรุกที่สนุกมากซึ่งการจับทุกครั้งทำให้เกิด "การระเบิด", การทำลายชิ้นส่วนที่ถูกจับ, ชิ้นส่วนที่จับได้และไม่ได้จำนำในรัศมี 1 สแควร์ เป้าหมายของการท้าทายนี้ไม่ใช่เพื่อเล่นเกมหมากรุกปรมาณูทั้งเกม แต่เพื่อจำลองสิ่งที่เกิดขึ้นเมื่อมีการเคลื่อนไหวเกิดขึ้น ข้อจำกัดความรับผิดชอบ: ไม่รวมเอฟเฟกต์เสียงการระเบิด อินพุต ตำแหน่งของคณะกรรมการจะได้รับในForsyth-Edwards Notation (หรือที่รู้จักกันทั่วไปว่า FEN) แต่มีเพียงฟิลด์แรกเท่านั้น ตัวอย่างเช่นอินพุตของ: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR แสดงถึงตำแหน่งเริ่มต้น: สิ่งนี้จะต้องดำเนินการเป็นสตริงหรือเทียบเท่าภาษาของคุณ มันรับประกันว่าถูกต้อง; ตัวอย่างเช่นคุณไม่ต้องสนใจว่ามีสิบราชาหรือไม่มีกษัตริย์เลย นอกจากนี้คุณยังจะได้รับการย้ายที่คุณจะต้องจำลองซึ่งจะแสดงเป็นชื่อตารางสองชื่อ: สี่เหลี่ยมที่ชิ้นส่วนที่จะย้ายคือและสี่เหลี่ยมก็จะย้ายไป ตัวอย่างเช่นการขยับตัวรับจำนำของกษัตริย์สองช่องไปข้างหน้าในภาพด้านบนจะแสดงเป็น: e2e4 สิ่งนี้จะต้องถูกนำมาเป็นสตริง ย้ายจะเป็นที่ถูกต้องและคุณไม่จำเป็นต้องสนับสนุนcastling คุณจำเป็นต้องรองรับผู้ที่เดินทางไปไหนมาไหนซึ่งจะอธิบายรายละเอียดเพิ่มเติมในส่วนถัดไป เอาท์พุต ผลลัพธ์ของโปรแกรมของคุณควรอยู่ในรูปแบบบางส่วน -FEN เหมือนกับอินพุตโดยมีการย้ายที่ระบุ (และชิ้นส่วนใด ๆ จะระเบิดหากจำเป็น) กฎที่แน่นอนสำหรับการระเบิดคือ - เมื่อจับชิ้นส่วน: เอาชิ้นส่วนที่ถูกจับ (ซึ่งมักจะเป็นชิ้นส่วนในตารางที่สองชื่อในการป้อนข้อมูลยกเว้นเมื่อจับเป็นการกิน ) นำชิ้นส่วนที่กำลังจับภาพออก (ซึ่งจะเป็นชิ้นส่วนของสี่เหลี่ยมจัตุรัสแรกที่มีชื่ออยู่ในอินพุต) ลบทุกชิ้นนั่นคือ: ตั้งอยู่บนหนึ่งใน 8 สี่เหลี่ยมรอบหนึ่งที่จับภาพที่เกิดขึ้น (สำหรับการกินนี้เป็นตารางที่จำนำจับจะอยู่ถ้ามันไม่ระเบิด) …
14 code-golf  chess 

14
ใช้ FuzzyFinder
แรงบันดาลใจจากการเชื่อมโยงนี้ผมพบว่าเมื่อ Reddit FuzzyFinder เป็นคุณสมบัติของเครื่องมือแก้ไขข้อความหลายตัว เมื่อคุณเริ่มพิมพ์เส้นทางของไฟล์SFuzzyFinder จะเริ่มต้นและแสดงไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันที่มีสตริงที่คุณป้อนเรียงลำดับตามตำแหน่งของSไฟล์ งานของคุณคือการใช้เครื่องมือค้นหาฟัซซี่ ควรเป็นโปรแกรมหรือฟังก์ชั่นที่รับ (ผ่าน stdin, ฟังก์ชั่นอาร์กิวเมนต์หรือบรรทัดคำสั่ง) สตริงSและรายการของสตริงL, จัดรูปแบบตามที่คุณต้องการและส่งกลับหรือพิมพ์ผลลัพธ์ของการเรียกใช้โปรแกรมค้นหาฟัซซี่ การค้นหาควรคำนึงถึงขนาดตัวพิมพ์ ผลลัพธ์ที่Sอยู่ในตำแหน่งเดียวกันในหลาย ๆ สายอาจจะเรียงลำดับตามที่คุณต้องการ ตัวอย่าง: Input: mig, [imig, mig, migd, do, Mig] Output: [mig, migd, imig] OR [migd, mig, imig] นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดชนะ
14 code-golf 

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