การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

7
pssssssssssssst
บทนำ อันนี้ตรงไปตรงมาทีเดียว เราจะวาดงูใน ascii เกมนี้ได้รับแรงบันดาลใจมาจากเกมงูตัวเก่าที่คุณต้องเก็บผลไม้และเติบโตอย่างต่อเนื่อง คำนิยาม กำหนดจำนวนเต็มบวก N ที่แทนความยาวของงูวาดงูเพื่อให้มีร่างกายของ n บวกหัวและหาง อะไหล่: หัว: <, >, ^, v หาง: @ แนวตั้ง: | horizonal: - มุมทั้งหมดควรมีความพึงพอใจกับ\หรือ/ตามลำดับ เว้นเสียแต่ว่าศีรษะจะปิดที่มุมซึ่งในกรณีนี้หัว<, >, ^, vจะให้ความสำคัญในทิศทางที่งูขดตัว นั่นคือสำหรับความยาว 1 ตัวอย่างมันจะหมุนทวนเข็มนาฬิกาและดังนั้นหัวหันไปทางนั้น >สำหรับการแก้ปัญหาตามเข็มนาฬิกามันจะไปทางขวา งูจะต้องเริ่มตรงกลางด้วยหาง แต่มันอาจออกไปข้างนอกในทิศทางใดก็ได้ที่คุณเลือกตามเข็มนาฬิกาหรือทวนเข็มนาฬิกา มันจะต้องพันรอบตัวเองอย่างแน่นหนาเมื่อมันขยายออกไปเป็นวงกลม ตัวอย่าง /--\ |/\| ||@| |\-/ \---> ตำแหน่งที่@เป็นหางและตำแหน่งเริ่มต้น ดังที่เห็นด้านบนหางเริ่มตรงกลางขึ้นไปทางซ้ายในการหมุนทวนเข็มนาฬิกาออกไปด้านนอก นี่คือความยาว19บวกหางและหัว เป็นอีกตัวอย่างนี่คือความยาว1: <\ @ การชนะ นี่คือ code-golf …

30
ค้นหาผลรวมของตัวเลขทั้งหมดด้านล่าง n ซึ่งเป็นชุดของตัวเลขบางชุด
เกือบเทียบเท่ากับคำถามแรกของ Project Euler: หากเราแสดงจำนวนธรรมชาติทั้งหมดต่ำกว่า 10 ที่เป็นทวีคูณของ 3 หรือ 5 เราจะได้ 3, 5, 6 และ 9 ผลรวมของทวีคูณเหล่านี้คือ 23 ค้นหาผลรวมของทวีคูณทั้งหมดของ 3 หรือ 5 ด้านล่าง 1,000 ท้าทาย: ป.ร. ให้ไว้เป็นจำนวนเต็มบวกNและชุดของจำนวนเต็มบวกอย่างน้อยหนึ่งAการส่งออกรวมของจำนวนเต็มบวกทั้งหมดน้อยกว่าที่มีหลายรายการอย่างน้อยหนึ่งสมาชิกของNA ตัวอย่างเช่นสำหรับกรณี Project Euler อินพุตจะเป็น: 1000 3 5 กรณีทดสอบ: Input : 50, [2] Output: 600 Input : 10, [3, 5] Output: 23 Input : 28, …

30
ทำให้ภาษาของคุณเป็นส่วนใหญ่ไม่สามารถใช้งานได้ (ด้ายของ Robber)
แรงบันดาลใจจากความคิดเห็นนี้ ... ขอขอบคุณผู้ใช้Step Hen , Wheat-WizardและDennis ที่ช่วยฉันสร้างความแข็งแกร่งให้กับสเปคของความท้าทายนี้ก่อนโพสต์มัน! นี่คือเธรดของ Robber! สำหรับด้ายของตำรวจไปที่นี่ ในความท้าทายนี้คุณจะได้รับมอบหมายให้ใช้งานโค้ดบางอย่างเพื่อให้ภาษาของคุณไม่เป็นไปตามเกณฑ์การเป็นภาษาการเขียนโปรแกรมอีกต่อไป ในการท้าทายนั้นหมายถึงการทำให้ภาษาไม่สามารถ ... รับอินพุตและเอาต์พุตตัวเลข เพิ่มตัวเลขสองตัวเข้าด้วยกัน ทดสอบว่าจำนวนหนึ่งเป็นจำนวนเฉพาะหรือไม่ นี่เป็นความท้าทายของตำรวจและโจรที่มีความท้าทายสองประการที่แตกต่างกันโดยมีวัตถุประสงค์ที่แตกต่างกันสองประการ: ตำรวจจะพยายามเขียนโค้ดบางอย่างที่ทำให้ภาษาใช้งานไม่ได้เป็นส่วนใหญ่และโจรจะพยายามหาวิธีแก้ปัญหาที่ซ่อนอยู่ เพื่อกู้คืนภาษาของพวกเขา ตำรวจจะเขียนโค้ดสองชุด: ภาษาที่ทำให้ภาษาส่วนใหญ่ใช้ไม่ได้เช่นลบฟังก์ชั่นในตัวเพื่อรับอินพุต / เอาต์พุตและการดำเนินการเชิงตัวเลข รหัสนี้ไม่ได้รับอนุญาตให้ผิดพลาดหรือออก มันควรจะเป็นไปได้ที่จะเพิ่มรหัสการสิ้นสุดของข้อมูลโค้ดนี้และรหัสที่จะได้รับการประเมิน และ ตัวอย่างของรหัสที่ใช้ตัวเลขสองตัวเป็นอินพุตเพิ่มเข้าด้วยกันและส่งออกผลรวมของพวกเขา ตัวอย่างนี้จะต้องทำงานอย่างถูกต้องแม้หลังจากเรียกใช้ข้อมูลโค้ดแรกแล้ว เมื่อรวมข้อมูลโค้ดสองรายการเข้าด้วยกันพวกเขาจะต้องสร้างโปรแกรมเต็มรูปแบบที่เพิ่มตัวเลขสองตัวหรือกำหนดฟังก์ชั่นที่เพิ่มตัวเลขสองตัว ตัวอย่างนี้อาจขึ้นอยู่กับพฤติกรรมที่คลุมเครือและหายาก ตำรวจก็จะเลือกการใดวิธีการมาตรฐานของอินพุตและเอาต์พุต อย่างไรก็ตามพวกเขาจะต้องเปิดเผยว่ารูปแบบใด (อินพุตและเอาต์พุต) ที่ใช้ เพื่อให้คุณแคร็กคำตอบคุณต้องทำตามรูปแบบอินพุต / เอาท์พุตเดียวกันมิฉะนั้นการแตกของคุณจะไม่นับ ตำรวจตอบเสมอจะเปิดเผย แรกข้อมูลโค้ด (ไม่ชัดที่สอง) ภาษา (รวมถึงรุ่นรองเนื่องจากการส่งส่วนใหญ่อาจขึ้นอยู่กับกรณีขอบแปลก ๆ ) รูปแบบ IO รวมถึงไม่ว่าจะเป็นฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ โจรต้องใช้รูปแบบเดียวกันเพื่อเป็นรอยแตกที่ถูกต้อง กรณีขอบแปลก ๆ …

6
Telegraphy Golf: ถอดรหัส Baudot Code
พื้นหลัง ในปี 1870 Émile Baudot ได้คิดค้นBaudot Codeซึ่งเป็นการเข้ารหัสอักขระที่มีความยาวคงที่สำหรับโทรเลข เขาออกแบบรหัสที่จะป้อนจากแป้นพิมพ์คู่มือด้วยปุ่มเพียงห้าปุ่ม สองมือดำเนินการด้วยมือซ้ายและสามมือขวา: สิทธิดัชนีกลางและแหวนนิ้วมือทำงานผม , IIและ IIIปุ่มตามลำดับและดัชนีด้านซ้ายและนิ้วกลางดำเนิน IVและⅤ (ต่อจากนี้ไปฉันจะใช้เลขอารบิคตะวันตกของพวกเขาคือ 1ถึง5 ) อักขระจะถูกป้อนเป็นคอร์ด ในการป้อนตัวอักษร "C" ผู้ดำเนินการกด1 , 3และ4ปุ่มพร้อมกันโดยที่แขนแปรงหมุนจะอ่านแต่ละคีย์ตามลำดับและส่งกระแสไฟฟ้าหรือสำหรับปุ่มที่ไม่ได้กดลงจะไม่มีกระแสไฟฟ้า ผลที่ได้คือในแง่ที่ทันสมัย 5 บิตอย่างน้อยอย่างมีนัยสำคัญบิตแรกเข้ารหัสไบนารีซึ่งในตัวอย่างของเรา "C" 10110จะถูกเข้ารหัสเป็น 5 บิต คุณอาจกำลังคิดว่า 5 บิตซึ่งสามารถแสดงสัญลักษณ์ที่ไม่ซ้ำกันมากที่สุดได้ไม่เกิน 32 ตัวนั้นไม่เพียงพอสำหรับตัวอักษรและตัวเลขภาษาอังกฤษทั้งหมดแม้กระทั่งการพูดถึงเครื่องหมายวรรคตอน Baudot มีอุบายแขนเสื้อของเขาแม้ว่า: ชุดอักขระของเขาเป็นจริงสองชุดที่แตกต่าง: ตัวอักษรและ ตัวเลขและเขากำหนดสองรหัสพิเศษเพื่อสลับระหว่างพวกเขา การเลื่อนตัวอักษรซึ่งเปลี่ยนไปใช้โหมดตัวอักษรเปิดใช้งานโดยการกดปุ่ม5เพียงอย่างเดียว ( 00001) และการเลื่อนรูปถูกเปิดใช้งานด้วย ปุ่ม4 ( 00010) ท้าทาย ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ถอดรหัสการรับส่งสัญญาณของ Baudot …

19
ใช้แท็บเสร็จสมบูรณ์
การทำให้แท็บสมบูรณ์เป็นคุณสมบัติที่มีประโยชน์ที่ทำให้คำสั่งที่เขียนบางส่วนเสร็จสมบูรณ์โดยอัตโนมัติ คุณกำลังจะใช้งานมัน ตัวอย่างเช่นถ้าคำสั่งที่ใช้ได้อยู่['apply','apple','apple pie','eat']แล้วaจะเสร็จสมบูรณ์จะ applเป็นทั้งหมดของคำสั่งที่เริ่มต้นด้วยนอกจากนี้ยังเริ่มต้นด้วยaappl Input / Output คุณต้องใส่สตริง A และชุดสตริง B คุณต้องแสดงคำนำหน้าทั่วไปที่ยาวที่สุดของ B ทั้งหมดที่ขึ้นต้นด้วย A หากไม่มีตัวเลือกใดขึ้นต้นด้วย A ให้ส่งคืน A คุณสามารถสันนิษฐานได้ว่า B นั้นไม่นับไม่ได้และสตริงทั้งหมดนั้นจะไม่ว่างเปล่า คุณไม่สามารถสันนิษฐานได้ว่าตัวเลือกใด ๆ ที่เริ่มต้นด้วย A และคำนำหน้าทั่วไปจะยาวกว่า A คุณสามารถคำนึงถึงขนาดตัวพิมพ์หรือตัวพิมพ์เล็กและตัวพิมพ์เล็ก คุณจะต้องจัดการกับ ASCII ที่พิมพ์ได้ บิวด์อินที่อนุญาตงานนี้อย่างชัดเจน กรณีทดสอบ: 'a' ['apply','apple','apple pie','eat'] => 'appl' 'a' ['apple pie'] => 'apple pie' 'apple' ['eat','dine'] => 'apple' …
31 code-golf  string 

19
วาดกราฟของ
ท้าทาย ได้รับการป้อนข้อมูลของจำนวนเต็มnnn (ที่ ) การส่งออกกราฟของจากการรวม0&lt;n&lt;500&lt;n&lt;500<n<50y=Re((−n)x)y=Re((−n)x)y=\mathrm{Re}((-n)^x)x=−3x=−3x = -3x=3x=3x = 3 ที่ไหนเป็นส่วนที่แท้จริงของจำนวนเชิงซ้อนพีRe(p)Re(p)\mathrm{Re}(p)ppp โปรดทราบว่าRe((−n)x)=nxcos(πx)Re((−n)x)=nxcos⁡(πx)\mathrm{Re}((-n)^x) = n^x \cos{(\pi x)} เอาท์พุต ผลลัพธ์อาจอยู่ในรูปแบบที่คุณต้องการ (เช่นรูปภาพหรือหน้าต่างเป็นต้น) ศิลปะ ASCII ไม่ได้รับอนุญาต กราฟไม่จำเป็นต้องมีแกน (เพื่ออนุญาตภาษาที่ไม่มีฟังก์ชั่นการสร้างกราฟในตัวเพื่อแข่งขัน) หากภาพถูกส่งออกแต่ละภาพจะต้องยาวเกิน 500 พิกเซล ในทำนองเดียวกันเนื้อเรื่องจะต้องเติมภาพให้ดีที่สุดเท่าที่จะทำได้ ช่วงเวลาต่ำสุดระหว่างแปลงคือ 0.05 อนุญาตให้ใช้กราฟิกแบบเวกเตอร์ ตัวอย่าง สำหรับอินพุตของ2: สำหรับอินพุตของ1: คุณต้องใส่ผลลัพธ์ที่สอดคล้องกันในคำตอบของคุณ (n = 1 และ n = 2) การชนะ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

21
หัว, ไหล่, หัวเข่าและเท้า, หัวเข่าและเท้า
บทนำ: ฉันคิดว่าเราทุกคนรู้และมันอาจถูกแปลเป็นภาษาต่าง ๆ มากมาย: เพลงเด็ก "Head, shoulders, Knees and Toes": หัว, ไหล่, หัวเข่าและเท้า, หัวเข่าและเท้า หัว, หัวเข่า, และหัวเข่าและนิ้วเท้า และตาและหูและปากและจมูก หัว, ไหล่, หัวเข่าและเท้า, หัวเข่าและเท้า วิกิพีเดีย ท้าทาย: อินพุต:จำนวนเต็มบวก เอาท์พุท:เอาท์พุทหนึ่งในคำต่อไปนี้ขึ้นอยู่กับอินพุตเป็นดัชนี n-th: head shoulders knees toes eyes ears mouth nose ส่วนต่าง ๆ ของร่างกายจะถูกผนวกเข้ากับดัชนี: Head (0), shoulders (1), knees (2) and toes (3), knees (4) and …

9
โปรแกรม Acme Canine Decoder 2000 ของศาสตราจารย์ชวาร์ตมันมาน
บทนำ เรา - โดยเฉพาะในหมู่พวกเราที่มีแนวโน้มที่จะเป็นแฟน - ทุกคนจำการ์ตูนเก่าแก่ของFar Side : เห็นได้ชัดว่าศาสตราจารย์ชวาร์ตซ์แมนสามารถแปรงทักษะการเขียนโปรแกรมของเขาได้อีกเล็กน้อยก่อนที่เขาจะใช้สิ่งประดิษฐ์ของเขา แต่คุณสามารถทำซ้ำด้วยตัวคุณเอง ... ใช้น้อยที่สุดเท่าที่เป็นไปได้? ข้อมูลจำเพาะอินพุต คุณต้องสร้างสคริปต์ที่แปลเสียงสุนัขให้เป็นเสียง "ไฮ" อย่างเหมาะสม นี่คือรหัสกอล์ฟบริสุทธิ์ จำนวนไบต์ต่ำสุดชนะ ข้อมูลที่คุณป้อนจะประกอบด้วยโทเค็นต่อไปนี้รวมกัน: Bark, Baark, Baaark, Baaaark... (นั่นคือB*rk มีอย่างน้อย 1 aแทนที่เครื่องหมายดอกจัน) Woof, Wooof, Woooof... ( W*fอย่างน้อย2 o s เปลี่ยนเครื่องหมายดอกจัน) Grr, Grrr, Grrrr, ... , ( Gตามมาด้วยอย่างน้อย2 r s) จำนวนอักขระ.(จุด), !(เครื่องหมายอัศเจรีย์) และ / หรือ?(เครื่องหมายคำถาม) ซึ่งอาจเกิดขึ้นที่ใดก็ได้ในอินพุต …
31 code-golf  string 

12
ทำให้ฉันเป็นขนมไหว้พระจันทร์!
เทศกาลกลางฤดูใบไม้ร่วงได้เริ่มขึ้น! น่าเสียดายที่ขนมไหว้พระจันทร์ทั้งหมดของฉันถูกขโมย - พวกเขามีราคาแพงเกินไปสำหรับชาวบ้านเล็ก ๆ เช่นตัวฉันเองและฉันกลัวว่าฉันจะไม่สามารถกินได้ในปีนี้! ดังนั้นฉันหันไปขอความช่วยเหลือจากคุณ คุณจะทำให้ฉันบ้างไหม สำหรับผู้ที่ไม่รู้ให้ฉันสอนคุณเกี่ยวกับลักษณะของขนมไหว้พระจันทร์ ขนมไหว้พระจันทร์มีหลายขนาด! ดังนั้นฉันจะให้คุณป้อนของฉัน, n , เมื่อฉันต้องการหนึ่ง นี่คือตัวอย่างของผลลัพธ์ที่ฉันต้องการ: ขนมไหว้พระจันทร์ของ size n = 3: (@@@@@) (@MAF@) (@@@@@) ขนมไหว้พระจันทร์ของ size n = 6: (@@@@@@@@@@@) (@ @) (@ M @) (@ F @) (@ @) (@@@@@@@@@@@) กล่าวคือขนมไหว้พระจันทร์ขนาดnคือ: ไม่มีเส้นสูง 2n - 1 @ ความยาว ความยาว 2n + …

30
เพชรตัวอักษร
คุณเคยเห็นรูปสามเหลี่ยมตัวอักษรที่น่าทึ่งการแก้แค้นของรูปสามเหลี่ยมตัวอักษรและตอนนี้ถึงเวลาสำหรับการแก้แค้นของรูปสามเหลี่ยมตัวอักษร! แนะนำ ... เพชรอัลฟาเบ็ท! งานของคุณคือการส่งออกข้อความที่แน่นอนนี้ตัวพิมพ์เล็ก / ตัวพิมพ์ใหญ่ไม่สำคัญแม้ว่าบรรทัดใหม่ทำ: bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb cdefghijklmnopqrstuvwxyzabazyxwvutsrqponmlkjihgfedc defghijklmnopqrstuvwxyzabcbazyxwvutsrqponmlkjihgfed efghijklmnopqrstuvwxyzabcdcbazyxwvutsrqponmlkjihgfe fghijklmnopqrstuvwxyzabcdedcbazyxwvutsrqponmlkjihgf ghijklmnopqrstuvwxyzabcdefedcbazyxwvutsrqponmlkjihg hijklmnopqrstuvwxyzabcdefgfedcbazyxwvutsrqponmlkjih ijklmnopqrstuvwxyzabcdefghgfedcbazyxwvutsrqponmlkji jklmnopqrstuvwxyzabcdefghihgfedcbazyxwvutsrqponmlkj klmnopqrstuvwxyzabcdefghijihgfedcbazyxwvutsrqponmlk lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml …

30
ตัวคูณร่วมน้อย
ตัวคูณร่วมน้อยชุดของจำนวนเต็มบวกAเป็นจำนวนเต็ม postive เล็กที่สุดBเช่นว่าสำหรับแต่ละkในAมีอยู่ในเชิงบวกจำนวนเต็มดังกล่าวว่าnk*n = B รับค่าเป็นจำนวนเต็มบวกอย่างน้อยสองค่าเป็นอินพุต กฎระเบียบ อนุญาตให้สร้างบิลด์ แต่ถ้าโซลูชันของคุณใช้คุณควรสนับสนุนให้รวมโซลูชันสำรองที่ไม่ใช้ GCD / LCM ในตัว อย่างไรก็ตามโซลูชันสำรองจะไม่นับรวมกับคะแนนของคุณเลยดังนั้นจึงเป็นตัวเลือกทั้งหมด อินพุตและเอาต์พุตทั้งหมดจะอยู่ในช่วงที่สามารถจำแนกได้สำหรับภาษาของคุณ หากภาษาของคุณมีความสามารถตามจำนวนเต็มขนาดใหญ่โดยพลการโซลูชันของคุณจะต้องทำงานกับอินพุตและเอาต์พุตขนาดใหญ่โดยพลการ กรณีทดสอบ [7, 2] -&gt; 14 [8, 1] -&gt; 8 [6, 4, 8] -&gt; 24 [8, 2, 1, 10] -&gt; 40 [9, 6, 2, 1, 5] -&gt; 90 [5, 5, 7, 1, 1] -&gt; 35 …

8
การบีบอัดตารางละติน
ละตินตารางเป็นตารางที่ไม่มีสัญลักษณ์ในแถวหรือคอลัมน์ซ้ำ: 13420 21304 32041 04213 40132 และอย่างที่ผู้เล่นซูโดกุหลายคนรู้คุณไม่จำเป็นต้องใช้ตัวเลขทั้งหมดเพื่ออนุมานตัวเลขที่เหลืออยู่ ความท้าทายของคุณคือการบีบอัดตารางละตินลงในไม่กี่ไบต์เท่าที่จะทำได้ คุณต้องจัดเตรียมหนึ่งหรือสองโปรแกรมที่บีบอัด / คลายการบีบอัด ข้อมูลต่างๆ: หมายเลขที่ใช้มักจะเป็น0..N-1ที่NมีความยาวของขอบของตารางและN&lt;=25 ในการคลายการบีบอัดตารางละตินต้องเหมือนกับอินพุต โปรแกรมของคุณควรที่จะ (de) บีบอัดลาตินสแควร์ใด ๆ (ภายในขนาดสี่เหลี่ยมจัตุรัสสูงสุด) ไม่ใช่เฉพาะที่ฉันให้ไว้ อัตราส่วนการบีบอัดควรจะคล้ายกันเช่นกัน คุณต้องทำการบีบอัดและคลายการบีบอัดเพื่อให้ได้คะแนนของคุณ (ไม่มีจุดสิ้นสุดของจักรวาล) กรณีทดสอบสามารถพบได้บนGitHub คะแนนของคุณคือขนาดรวมของกรณีทดสอบที่บีบอัด แก้ไข: ตั้งแต่วันที่ 20:07 ในวันที่ 7 กรกฎาคมฉันได้อัปเดตกรณีทดสอบ (เพื่อแก้ไขปัญหาการสร้าง) โปรดรันโปรแกรมของคุณอีกครั้งในกรณีทดสอบใหม่ ขอบคุณAnders Kaseorg

20
ฟาโรสับเปลี่ยนอาเรย์
ฟาโรสับเปลี่ยนเป็นเทคนิคที่ใช้บ่อยโดยนักมายากลที่ "สับ" ดาดฟ้า เพื่อทำการสับไพ่แบบแฟโรคุณต้องตัดเด็คเป็น 2 ส่วนเท่ากันก่อน ตัวอย่างเช่น [1 2 3 4 5 6 7 8] แฟโรสับเป็น [1 5 2 6 3 7 4 8] สามารถทำซ้ำได้หลายครั้ง น่าสนใจพอถ้าคุณทำซ้ำครั้งนี้มากพอคุณจะกลับมาที่อาร์เรย์เดิมเสมอ ตัวอย่างเช่น: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

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

20
ขยายการยกกำลัง
รับจำนวนเต็มสองจำนวนมากกว่าหนึ่ง A และ B เอาท์พุทนิพจน์ทางคณิตศาสตร์สี่นิพจน์ในลำดับนี้: นิพจน์ธรรมดา A ^ B (A ถึงกำลัง B) เช่น A = 2 และ B = 3 2^3ถ้า การขยายตัวของ ^ B 2*2*2ในแง่ของการคูณซ้ำของเอเช่น การขยายตัวของ A ^ B ในแง่ของการเพิ่มซ้ำของ A. เช่น 2+2+2+2ในแง่ของการเพิ่มซ้ำของเอเช่น การขยายตัวของ ^ B 1+1+1+1+1+1+1+1ในแง่ของการเพิ่มซ้ำเช่น นิพจน์ทั้งสี่นั้นอาจแสดงผลลัพธ์ในลักษณะที่สมเหตุสมผลใด ๆ ตราบใดที่ยังมีความเป็นระเบียบและชัดเจน ตัวอย่างเช่นคุณอาจวางไว้ในรายการหรือพิมพ์ลงในบรรทัดที่แยกกัน 2^3 2*2*2 2+2+2+2 1+1+1+1+1+1+1+1 หรือบางทีในบรรทัดเดียวคั่นด้วยเครื่องหมายเท่ากับ: 2^3=2*2*2=2+2+2+2=1+1+1+1+1+1+1+1 ช่องว่างอาจแทรกถัดจากตัวดำเนินการทางคณิตศาสตร์ดังนั้น 2^3 = …

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