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

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

23
ปริศนา Chiral
รูปร่างเป็นchiralถ้าไม่มีจำนวนการหมุนสามารถทำให้ดูเหมือนภาพสะท้อนของกระจก ในปริศนานี้เราจะเขียนโปรแกรมคอมพิวเตอร์ chiral สำหรับปริศนานี้เราจะคิดว่าโปรแกรมเป็นเมทริกซ์สี่เหลี่ยมของตัวละคร ดังนั้นโซลูชันทั้งหมดสำหรับความท้าทายนี้ต้องเป็นรูปสี่เหลี่ยมผืนผ้า (นั่นคือทุกบรรทัดต้องมีความยาวเท่ากัน) เราสามารถหมุนโปรแกรมเหล่านี้ได้ทีละไตรมาส ตัวอย่างเช่นโปรแกรม The quickish fish lept deftly rightwards เมื่อหมุนหนึ่งในสี่ทิศตามเข็มนาฬิกาจะดูเหมือน T h r e i glq heu tpi wtc a k rdi des sfh t lf yi s h เรายังสามารถสะท้อนโปรแกรมเหล่านี้ นี่คือโปรแกรมเดียวกันที่สะท้อนเหนือแกนตั้ง: hsif hsikciuq ehT yltfed tpel sdrawthgir โปรแกรม chiral เป็นโปรแกรมที่เมื่อหมุนไปกี่ครั้งก็จะออก " left" อย่างไรก็ตามเมื่อการสะท้อนสร้างโปรแกรมที่ส่งออก "right " …

26
prOGraMMIng PuZZleS & cOde ____
อินพุต สตริงเข้ารหัสไม่ว่างเปล่าประกอบด้วยตัวอักขระ ASCII (อยู่ในช่วง 32-126) _ซึ่งบางตัวอักษรที่ขาดหายไปได้ถูกแทนที่ด้วย เอาท์พุต สตริงถอดรหัสที่มีความยาวเท่ากันโดยมีตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็กรวมถึงสตริงที่หายไป อย่างไร? แก้ไข: ตามที่ระบุไว้โดย @Deusovi ในความคิดเห็นนี้เป็นตัวแปรของตัวเลขเบคอน รวบรวมตัวอักษรทั้งหมดในสตริงเดิมและจัดกลุ่มตาม 5 ตัวอักษรเพิ่มเติมที่ไม่พอดีกับกลุ่มเต็ม 5 จะถูกละเว้น แปลงแต่ละกลุ่มเข้าไบนารี: พิมพ์เล็ก = 0 , พิมพ์ใหญ่ = 1 สิ่งนี้นำไปสู่รายการจำนวนเต็ม ใช้ค่าแต่ละค่าNในรายการนี้เพื่อแทนที่แต่ละค่า_ในสตริงเดิมด้วยตัวอักษรN -th ของตัวอักษร (ดัชนี 0) ตามลำดับการปรากฏ ตัวอย่าง: prOGraMMIng PuZZleS & cOde ____ prOGr --> 00110 --> 6 --> 7th letter = 'g' aMMIn …

30
ทำแท่งน้ำแข็งคำ
เนื่องจากข้อ จำกัด ทางเทคนิคของการแลกเปลี่ยนสแต็คชื่อเรื่องจะแสดงอย่างไม่ถูกต้อง ที่ถูกต้องชื่อสำหรับความท้าทายนี้อยู่ ทำ Word Icicle! Word Icicle Word cicle ord cicle ord icle ord i le or i le or i l or l or r ความท้าทายในวันนี้คือการทำให้คำหยั่งรู้ออกมา กำหนดสตริงของASCII ที่พิมพ์ได้ทั้งหมดและอย่างน้อย 2 อักขระที่ไม่ใช่ช่องว่างให้ทำตามขั้นตอนต่อไปนี้: พิมพ์สถานะปัจจุบันของสตริง แทนที่อักขระที่เล็กที่สุดของคำ (นอกเหนือจากช่องว่าง) ด้วยช่องว่าง หากมีเน็คไทให้เปลี่ยนตัวละครซ้ายสุด ทำซ้ำในบรรทัดที่ต่อเนื่องกันจนกว่าสตริงจะมีอักขระที่ไม่ใช่ช่องว่างเพียง 1 ตัว สิ่งนี้จะสร้างเอฟเฟกต์ที่สตริงอินพุตดูเหมือนว่ากำลังละลาย ... I'm Melting!!! I'm Melting !! I'm Melting …

30
แยกสตริงที่เกิดขึ้นครั้งแรกของตัวละครแต่ละตัว
ที่เกี่ยวข้อง กำหนดสตริง ASCII ที่พิมพ์ได้แบ่งเป็นรายการสตริงที่ไม่ว่างโดยมีสตริงย่อยใหม่เริ่มต้นทุกครั้งที่มีอักขระซึ่งไม่เคยเห็นมาก่อนในกรณีเดียวกันเกิดขึ้น ตัวอย่าง "mississippi" → ["m","i","ssissi","ppi"] "P P & C G" → ["P"," P ","& ","C ","G"] "AAA" → ["AAA"] "Adam" → ["A","d","a","m"] "" → [] บันทึกย่อ : ผลลัพธ์จะมีองค์ประกอบระหว่าง 0 ถึง 95 สตริงย่อยลำดับที่ 95 จะต้องดำเนินการต่อไปจนสิ้นสุดเนื่องจาก ณ จุดนั้นอักขระ ASCII ที่พิมพ์ได้ทั้งหมดได้เริ่มต้นสตริงย่อยดังนั้นอักขระเพิ่มเติมทุกตัวจะเกิดขึ้นก่อนและจึงไม่สามารถทำให้สตริงย่อยใหม่เริ่มต้นได้

19
สร้างสี่เหลี่ยมที่มีขนาดเพิ่มขึ้นโดยจำลองรหัสเริ่มต้น
งานที่ได้รับมอบหมายของคุณคือการเขียนโปรแกรมที่มีความยาวเท่ากันซึ่งจะพิมพ์สี่เหลี่ยม ASCII-art (อธิบายไว้ด้านล่าง) ซึ่งจะเพิ่มความยาวด้านโดย1หน่วยในแต่ละครั้งที่มีการวางรหัสต้นฉบับลงตรงกลางของรหัสปัจจุบัน มันค่อนข้างยากสำหรับฉันที่จะกำหนดงานนี้เป็นอย่างดีดังนั้นฉันจะให้ตัวอย่าง: สมมติว่ารหัสเริ่มต้นของคุณคือCODEและพิมพ์: 0 จากนั้นแทรกCODEตรงกลาง: รหัสของคุณจะกลายเป็นCOCODEDEและควรพิมพ์: 00 00 ใส่CODEรหัสตรงกลางอีกครั้ง: รหัสของคุณกลายเป็นCOCOCODEDEDE และควรพิมพ์: 000 000 000 และอื่น ๆ คำตอบของคุณควรทำงานตามหลักเหตุผลหลังจากทำซ้ำจำนวนเท่าใดก็ได้ แต่ฉันเข้าใจว่าเนื่องจากข้อ จำกัด ด้านประสิทธิภาพของภาษา กฎบางอย่าง: คุณสามารถใช้ASCII ที่พิมพ์ได้ (32-127) เป็นอักขระที่จะใช้สำหรับสี่เหลี่ยมจัตุรัสของคุณ ตัวเลือกของคุณจะต้องคงที่ (คุณควรใช้อักขระเดียวกันสำหรับการทำซ้ำแต่ละครั้ง) ตารางการส่งออกเริ่มต้นต้องมีด้านยาวด้านละ1 ตาราง ascii-art ถูกกำหนดเป็นสตริงที่มีNบรรทัด (คั่นด้วยN-1 linefeeds / ขึ้นบรรทัดใหม่) และแต่ละบรรทัดมีNสำเนาของอักขระที่เลือก การส่งออกของคุณไม่ได้รับอนุญาตให้มีช่องว่างที่ไม่เกี่ยวข้องใด ๆ นอกเหนือจากการขึ้นบรรทัดใหม่ คุณสามารถใช้ค่าเริ่มต้นสำหรับอินพุตและเอาต์พุต (อนุญาตให้โปรแกรมหรือฟังก์ชั่น แต่ตัวอย่างไม่ได้) กลางของรหัสของคุณถูกกำหนดให้เป็นจุดที่รหัสที่มาสามารถแบ่งออกเป็นสองส่วนดังกล่าวว่าทั้งสองมีค่าเท่ากัน คำตอบของคุณจะได้รับคะแนนตามความยาวของโปรแกรมต้นฉบับของคุณเป็นไบต์ จำนวนไบต์ต่ำสุดชนะ ในกรณีที่มีเน็คไทคำตอบที่ถูกส่งไปก่อนหน้านี้ชนะ คุณสามารถใช้โปรแกรมนี้เพื่อใช้การแทรกโดยไม่ต้องทำด้วยมือ

22
ฟังก์ชั่นแปลกอะไร
งานของคุณในที่นี้คือการใช้ฟังก์ชัน1ที่สร้างการเปลี่ยนรูปแบบของจำนวนเต็มบวก (bijection จากจำนวนเต็มบวกเข้าสู่ตัวเอง) ซึ่งหมายความว่าจำนวนเต็มบวกแต่ละค่าควรปรากฏขึ้นหนึ่งครั้งในการเปลี่ยนแปลง ฟังก์ชัน Catch ของคุณควรมีความน่าจะเป็นในการแสดงผลเป็นเลขคี่มากกว่าจำนวนคู่ ตอนนี้อาจดูแปลกหรือเป็นไปไม่ได้ แน่นอนว่ามีตัวเลขคี่เป็นจำนวนเท่า ๆ กันใช่ไหม? และในขณะที่สัญชาตญาณนี้ถูกต้องสำหรับเซต จำกัด จริง ๆ แล้วมันไม่ถือสำหรับเซตอนันต์ ตัวอย่างเช่นใช้การเปลี่ยนแปลงต่อไปนี้: 1 3 2 5 7 4 9 11 6 13 15 8 17 19 10 21 23 12 25 27 14 29 31 16 33 35 18 37 39 20 41 43 22 …

30
มีคนรู้จักกันมากมาย
โดนัลด์รัทมสเฟลด์อดีตรัฐมนตรีกลาโหมของสหรัฐอเมริกาซึ่งเป็นที่รู้จักอย่างแพร่หลายในวลี ที่นี่เรากำลังจะกลั่นความคิดเห็นของเขาลงในบทที่สี่บรรทัด เอาท์พุทข้อความนี้โดยเฉพาะ: known knowns known unknowns unknown knowns unknown unknowns การใช้อักษรตัวพิมพ์ใหญ่ไม่สำคัญ (ตัวอย่างเช่นใช้ได้Known unKnowns) และบรรทัดใหม่ต่อท้ายบรรทัดเดียวเป็นที่ยอมรับ แต่ไม่อนุญาตการเปลี่ยนแปลงการจัดรูปแบบอื่น ๆ นั่นหมายความว่ามีช่องว่างเดียวระหว่างคำและLF(59 ไบต์) หรือCR/LF(62 ไบต์) ระหว่างบรรทัด กฎระเบียบ ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น หากฟังก์ชั่นคุณสามารถส่งคืนผลลัพธ์มากกว่าการพิมพ์ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการเล่นกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ

1
Levenquine เป็นวงกลม
พื้นหลัง ในฐานะที่เป็นประจำ PPCG ส่วนใหญ่จะรู้ว่าควินเป็นโปรแกรมที่ส่งออกซอร์สโค้ดของตัวเองเมื่อทำงาน; และระยะทางของ Levenshteinระหว่างสองสายคือจำนวนขั้นต่ำของการแทรกการลบและการแก้ไขที่จำเป็นในการเปลี่ยนหนึ่งสายเป็นอีกสายหนึ่ง ในความท้าทายนี้เราได้รวมแนวคิดทั้งสองไว้ใน "levenquine": โปรแกรมที่ส่งออกซอร์สโค้ดของตัวเอง แต่มีอินสแตนซ์หนึ่งของอักขระหนึ่งตัวที่แทรกลบหรือแทนที่ด้วยอักขระอื่น (กล่าวอีกนัยหนึ่งระยะทางของ Levenshtein ระหว่างโปรแกรมและผลลัพธ์คือ 1) งาน เขียน levenquine เพื่อให้ผลลัพธ์เป็น levenquine, ผลลัพธ์ของโปรแกรมนั้นเป็น levenquine, และอื่น ๆ นอกจากนี้ในบางจุดลำดับของการรันโปรแกรมซ้ำ ๆ , การรันเอาต์พุต, การรันเอาต์พุตของเอาต์พุต, ฯลฯ ในที่สุดจะต้องกลับมาที่โปรแกรมต้นฉบับ มีข้อ จำกัด เพิ่มเติมหนึ่งข้อที่ทำให้สิ่งต่าง ๆ ยากขึ้น: จะต้องมีสองโปรแกรมที่แตกต่างกันบางแห่งในวงรอบนี้ซึ่งไม่มีตัวอักษรที่เหมือนกัน (ในคำอื่น ๆ ไม่มีตัวละครที่มีอยู่ในโปรแกรมหนึ่ง โปรแกรมของคุณจะต้องค่อยๆแปลงตัวเองเป็นชุดอักขระที่แตกต่างกันและกลับมาอีกครั้ง หากคุณกำลังใช้ภาษาการเขียนโปรแกรมซึ่งไม่จำเป็นต้องมีสำเร็จรูปสำเร็จรูปที่ต้องการในโปรแกรมใด ๆ ที่สร้างผลลัพธ์ (เช่นมีเพียงวิธีเดียวในการเขียนprintคำสั่งและไม่มีรูปแบบการส่งออกที่มีประโยชน์อื่น ๆ ) คุณอาจถือว่าสำเร็จรูปนั้นไม่มีอยู่จริง ของการพิจารณาว่าตัวละครสองตัวใดมีเหมือนกัน อย่างไรก็ตามคุณจะต้องนับจำนวนแผ่นเหล็กสำเร็จรูปเพื่อวัตถุประสงค์ในการกำหนดคุณสมบัติ Levenquine …

30
สตริงที่สาม
กำหนดสองสายเอาท์พุทสตริงที่สามที่ไม่เท่ากับหนึ่งในสองอินพุต แต่มีความยาวเท่ากัน (เป็นตัวอักษร) เหมือนกับอินพุตใด ๆ มีการรับประกันว่าจะมีเอาต์พุตที่ถูกต้องอย่างน้อยหนึ่งรายการ กรณีทดสอบ กรณีทดสอบจะถูกยกมาเพื่อแสดงว่าพวกเขาเป็นสตริง เอาต์พุตเป็นหนึ่งในหลาย ๆ input, input -> output "test", "test" -> "tttt" "do", "don't" -> "dnut_" "ye s", "yes" -> "fals" "yes", "yes" -> "noo" "maybe", "mayue" -> "false" "false", "false" -> "truee" "false", "true" -> "fatr" "1", "" -> "0" "", "t" -> …
45 code-golf  string 

19
วาด / ลงจุดกราฟหัวใจ
ความท้าทายของคุณคือการวาด / พล็อตหนึ่งในใจด้านล่าง ขนาดต้องมีอย่างน้อย 50x50 พิกเซล (กราฟิกแบบเวกเตอร์ก็โอเค) คุณสามารถเลือกรูปหัวใจที่คุณต้องการวาด / พล็อต ได้รับการยอมรับแกนเส้นกริดและอื่น ๆ ต้องมีพิกัด / จุดต่างกันอย่างน้อย 100 จุดบนกราฟ หัวใจสามารถเติมสีได้หากคุณต้องการ สมการคือ: หรือ t[-1, 1]อยู่ในช่วง หรือ หรือ นี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุด (ในแต่ละภาษา) เป็นไบต์ชนะ โปรดระบุผลลัพธ์ (หรือลิงก์ไปยังล่ามออนไลน์)

26
บิต, แทะหรือไบต์?
แรงบันดาลใจจากความท้าทายนี้ กำหนดจำนวนเต็มในช่วง0 <= n < 2**64เอาท์พุทคอนเทนเนอร์ขนาดต่ำสุดที่สามารถใส่ได้ บิต: 1 แทะ: 4 ไบต์: 8 สั้น: 16 int: 32 ยาว: 64 Testcases: 0 -> 1 1 -> 1 2 -> 4 15 -> 4 16 -> 8 123 -> 8 260 -> 16 131313 -> 32 34359750709 -> 64 นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

26
บิ๊กเบนไปบ้อง
งานของคุณคือการสร้างโปรแกรมที่จะเลียนแบบบิ๊กเบน (Twitter) งาน เมื่อใดก็ตามที่ชั่วโมงใหม่เริ่มต้นขึ้น (ตามเวลาท้องถิ่นหรือ UTC) ของคอมพิวเตอร์ของคุณคุณจะต้องแสดงผลBONGซ้ำหลายhourครั้ง (โดยมีช่องว่างระหว่างคำ) ตัวอย่างเช่นเมื่อมันเป็นนาฬิกา 3 o' BONG BONG BONGคุณมีการส่งออก รูปแบบเวลาเป็นไปตามรูปแบบเวลา 12 ชั่วโมงเช่นหลังจาก 12 นาฬิกาเรามี 1 และไม่ใช่ 13 โปรแกรม / ฟังก์ชั่นจะต้องทำงานตลอดไป ตัวอย่าง: ห้ามเอาสิ่งที่อยู่ในวงเล็บออก (start: 00:34 for example) BONG (01:00) BONG BONG (02:00) (...) BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG (12:00) …

20
ยิ่งใหญ่กว่าสิ่งที่คาว
รับสตริง N ความยาวของเครื่องหมายที่น้อยกว่าและมากกว่า ( <, >), แทรกจำนวนเต็ม 0 ถึง N ที่จุดเริ่มต้นและสิ้นสุดและระหว่างสัญญาณแต่ละคู่เช่นกันว่าความไม่เท่าเทียมกันทั้งหมดมีความพึงพอใจ เอาต์พุตสตริงผลลัพธ์ หากมีเอาต์พุตที่ถูกต้องหลายเอาต์พุตให้ส่งเอาต์พุตใด ๆ (และเพียงหนึ่ง) ของเอาต์พุต ตัวอย่างเช่น <<><><< มี 7 อักขระดังนั้นต้องใส่ตัวเลขทั้งหมดตั้งแต่ 0 ถึง 7 ผลลัพธ์ที่ถูกต้องคือ 2<3<4>1<5>0<6<7 เพราะความไม่เท่าเทียมกันทั้งหมดถูกนำมาทีละครั้ง 2<3 3<4 4>1 1<5 5>0 0<6 6<7 เป็นเรื่องจริง 2 < 3 < 4 > 1 < 5 > 0 < 6 < 7ถ้าต้องการให้การส่งออกอาจมีช่องว่างรอบสัญญาณเช่น …

30
นับโดยไม่ต้อง 3
พื้นหลัง เมื่อฉันอยู่ในโรงเรียนประถมเราเคยเล่นเกมในชั้นเรียนคณิตศาสตร์ที่มีดังต่อไปนี้ เด็กทุกคนนั่งอยู่ในวงกลมขนาดใหญ่และผลัดกันนับเริ่มต้นจาก1 อย่างไรก็ตามต้องข้ามตัวเลขต่อไปนี้ขณะนับ: เบอร์ที่มีหลายรายการที่ 3 ตัวเลขที่มี3ในการแทนทศนิยม ตัวเลข 15 อันดับแรกที่เด็กควรพูดคือ 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 เมื่อใดก็ตามที่ใครบางคนผิดตัวเลข - พูดหมายเลขที่ไม่ได้อยู่ในลำดับหรือข้ามหมายเลขนั่นคือ - เขาถูกนำออกจากวงกลม สิ่งนี้จะดำเนินต่อไปจนกว่าจะมีเด็กเหลือเพียงคนเดียว งาน คุณเล่นเกมนี้ไม่ดีคุณจึงตัดสินใจโกง เขียนโปรแกรมหรือฟังก์ชั่นที่ให้ลำดับของตัวเลขคำนวณหาลำดับถัดไป คุณไม่ต้องจัดการกับตัวเลขที่ไม่สามารถแสดงได้โดยใช้ชนิดตัวเลขดั้งเดิมของภาษาของคุณโดยที่โปรแกรมของคุณทำงานอย่างถูกต้องจนถึงอินพุต251และอัลกอริทึมของคุณทำงานกับอินพุตขนาดใหญ่โดยพลการ อินพุตและเอาต์พุตสามารถใช้ฐานใดก็ได้ที่สะดวก เมื่อคุณต้องปกปิดรหัสของคุณมันจะต้องสั้นที่สุด ความจริงแล้วนี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ กรณีทดสอบ 1 -> 2 2 -> 4 11 -> 14 22 -> …

11
เรียกใช้ Stackylogic
Stackylogic เป็นภาษาการเขียนโปรแกรมแบบลอจิกที่ฉันสร้างขึ้นซึ่งใช้เวลาในการ0's และ1' s สำหรับการป้อนข้อมูลและการส่งออกเดียว0หรือ1เมื่อเสร็จสิ้น โปรแกรม Stackylogic ประกอบด้วยเส้นที่สามารถมีตัวละครทั้งสาม01?เช่นเดียวกับว่าหนึ่ง<ในตอนท้ายของหนึ่งของเส้น สายอาจจะไม่ว่างเปล่าและบรรทัดที่มี<จะต้องมีอย่างน้อยหนึ่ง0, 1หรือ?ก่อนที่มันจะ นี่คือโปรแกรมตัวอย่างที่ (ตามที่ฉันจะอธิบาย) คำนวณNANDของสองบิต: 1 ?< 11 ? 0 ทุกบรรทัดในโปรแกรม Stackylogic ถือเป็นสแต็กโดยมีด้านล่างทางด้านซ้ายและด้านบนทางด้านขวา โดยนัยมีสแต็กเปล่า (บรรทัดว่าง) อยู่ก่อนบรรทัดแรกในโปรแกรมและหลังบรรทัดสุดท้าย <ซึ่งเราจะเรียกเคอร์เซอร์เครื่องหมายสแต็คที่จะเริ่มต้นเมื่อโปรแกรม Stackylogic มีการเรียกใช้ การดำเนินการของโปรแกรม Stackylogic ดำเนินการดังนี้: วางอักขระบนสุดออกจากสแต็กที่เคอร์เซอร์กำลังชี้ไป หากตัวละครนั้น?ให้แจ้งผู้ใช้สำหรับ0หรือหรือ1และทำราวกับว่าเป็นตัวละคร หากอักขระอยู่0ให้เลื่อนเคอร์เซอร์ขึ้นหนึ่งกอง (ไปยังบรรทัดที่อยู่เหนือบรรทัดปัจจุบัน) หากอักขระอยู่1ให้เลื่อนเคอร์เซอร์หนึ่งสแต็กลง (ไปยังบรรทัดด้านล่างบรรทัดปัจจุบัน) หากกองเคอร์เซอร์เลื่อนไปที่ว่างเปล่าเอาท์พุทค่าสุดท้ายที่โผล่ออกมาจากกอง (เสมอ0หรือหรือ1) และจบโปรแกรม มิฉะนั้นหากเคอร์เซอร์เลื่อนไปที่ไม่ว่างเปล่าให้กลับไปที่ขั้นตอนที่ 1 และทำซ้ำกระบวนการ โปรดสังเกตว่าโปรแกรม Stackylogic มักจะจบลงเพราะพวกเขาจะต้องทำให้หมดสแต็กในที่สุด ตัวอย่าง NAND ในโปรแกรม NAND เคอร์เซอร์เริ่มต้นที่?: …

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