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

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

17
Poking พิกเซลแบบสุ่ม
งานของคุณง่าย: เขียนโปรแกรมที่จะแทนที่พิกเซลแบบสุ่มในสี่เหลี่ยมสีดำ 16px * 8px (ความกว้างคูณความสูง) ด้วยพิกเซลสีขาว หลุมจะต้องสุ่มอย่างสม่ำเสมอและคุณควรส่งออกภาพ 16px คูณ 8 px โดยใส่พิกเซลสีขาว แทนที่เพียง 1 พิกเซลต่อคอลัมน์ (รวม 16 พิกเซลที่ถูกแทนที่) คุณไม่ต้องป้อนข้อมูลใด ๆ และคุณไม่สามารถพึ่งพาภาพที่จัดเก็บไว้ที่อื่นบนคอมพิวเตอร์ นี่คือรหัสกอล์ฟเพื่อให้โปรแกรมที่มีจำนวนไบต์สั้นที่สุดชนะ!

7
ตัวอย่างลำดับแบบไม่ลด
อินพุต:สองจำนวนเต็ม n และ k ที่กำหนดในรูปแบบใด ๆ ที่สะดวกสำหรับรหัสของคุณ เอาท์พุทลำดับที่ไม่ลดลงแบบสุ่มของจำนวนเต็ม k แต่ละค่าในช่วง 1 ถึง n ควรเลือกตัวอย่างอย่างสม่ำเสมอจากลำดับที่ไม่ลดจำนวนทั้งหมดของ k จำนวนเต็มด้วยจำนวนเต็มในช่วง 1 ถึง n เอาต์พุตสามารถอยู่ในรูปแบบที่สมเหตุสมผลที่คุณเห็นว่าสะดวก คุณสามารถใช้เครื่องกำเนิดไฟฟ้าแบบสุ่มหลอกสิ่งที่คุณชื่นชอบห้องสมุด / ภาษาให้ เราสามารถสรุปได้ว่าจำนวนเต็ม n, k> 0 ตัวอย่าง พูดว่า n, k = 2 ลำดับที่ไม่ลดลงคือ 1,1 1,2 2,2 แต่ละลำดับควรมีความน่าจะเป็น 1/3 ของผลลัพธ์ การ จำกัด รหัสของคุณควรทำงานในไม่เกินสองสามวินาทีสำหรับ k = 20 และ n = 100 …

3
ปอกเปลือกมันฝรั่ง
นี่คือมันฝรั่ง: @@ @@@@ @@@@@@ @@@@@@ @@@@ @@ โดยทั่วไปมันฝรั่งขนาด N ถูกกำหนดให้เป็นรูปร่างดังต่อไปนี้: ถ้า N เป็นเลขคู่จะมี@สัญลักษณ์อยู่ตรงกลาง 2 สัญลักษณ์ตามด้วย@สัญลักษณ์ศูนย์กลาง 4 อันตามด้วย@สัญลักษณ์ศูนย์กลาง 6 อันจนถึง@สัญลักษณ์ที่อยู่กึ่งกลาง N ทั้งหมด จากนั้น@สัญลักษณ์กึ่งกลาง N ตามด้วยสัญลักษณ์กึ่งกลางN-2 @ไปจนถึง 2 หาก N เป็นเลขคี่มันฝรั่งขนาด N จะถูกสร้างขึ้นในลักษณะเดียวกับที่อธิบายข้างต้น แต่เราเริ่มต้นด้วย 1 @สัญลักษณ์แทนที่จะเป็น 2 . มันฝรั่งถูกปอกเปลือกโดยเริ่มต้นที่มุมขวาบนและลบหนึ่ง@ป้ายในแต่ละขั้นตอนไปในรูปแบบทวนเข็มนาฬิกา ตัวอย่างเช่นการปอกมันฝรั่งขนาด 3 ออกมาเป็นแบบนี้: @ @@@ @@@ @ ​ @@@ @@@ @ ​ @@ …

13
การคูณซิป
บทนำ ให้มีกำหนดดำเนินการเกี่ยวกับคณิตศาสตร์ใหม่ซึ่งผมเรียกคูณซิป หากต้องการซิปคูณจำนวนเต็มสองค่าที่ไม่ใช่ค่าลบคุณจะต้องเพิ่มศูนย์นำหน้าเพื่อทำการจับคู่ความยาวคูณตัวเลขฐาน 10 หลักที่สอดคล้องกันเพิ่มศูนย์นำหน้าไปยังผลลัพธ์เพื่อรับตัวเลข 2 หลักต่อกันและวางศูนย์นำหน้า นี่คือตัวอย่างที่มีA = 1276และB = 933024 : 1. Add leading zeros A = 001276 B = 933024 2. Multiply digit-wise A = 0 0 1 2 7 6 B = 9 9 3 0 2 4 -> 0 0 3 0 14 24 3. …

11
ค้นหาประมุข!
เอมิรัลนั้นเป็นไพรเมอร์ที่ไม่ใช่พาลินโดรมิกซึ่งเมื่อกลับกันก็จะเป็นไพร์มด้วยเช่นกัน รายชื่อของฐาน 10 emirps ที่สามารถพบได้ในOEIS หกคนแรกคือ: 13, 17, 31, 37, 71, 73 อย่างไรก็ตามเนื่องจากกฎการกลับรายการ emirps จะแตกต่างกันในแต่ละฐาน ตัวอย่างเช่น emirps ไบนารีหกตัวแรกคือ: Bin | 1011, 1101, 10111, 11101, 101001, 100101 Dec | (11 , 13 , 23 , 29 , 37 , 41 ) ... และในฐานสิบหกพวกเขาคือ: Hex | 17, 1F, 35, 3B, 3D, 53 …

5
ป้ายแสดงเวลาเปิดทำการของร้านกาแฟ
คุณอาจเห็นสัญญาณเหล่านี้ที่ประตูของร้านค้าต่างๆ: เวลาทำการ จันทร์ - ศุกร์ 0900-1800 เสาร์ - อาทิตย์ 1100-1530 ภารกิจที่นี่คือการสร้างสัญญาณเช่นนั้นจัดกลุ่มวันติดต่อกันด้วยเวลาเปิดทำการเดียวกันจากรายการเวลาทำการตลอดทั้งสัปดาห์ โปรดทราบว่าสัปดาห์ "ล้อมรอบ" สำหรับสิ่งที่ถือว่าต่อเนื่องกัน การป้อนข้อมูล: 7 องค์ประกอบซึ่งแสดงเวลาเปิดทำการของแต่ละวันในหนึ่งสัปดาห์เริ่มต้นด้วยวันจันทร์ แต่ละองค์ประกอบเป็นสตริงบนฟอร์ม XXXX-XXXX อินพุตตัวอย่าง: 0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500 มันก็โอเคที่จะส่งอินพุตเป็นอาร์เรย์ (เช่นอินพุทไปยังฟังก์ชั่นถ้าคุณไม่ได้อ่านจาก stdin) เอาท์พุท: รายการของเวลาทำการที่วันติดต่อกันที่มีเวลาเปิดทำการเดียวกันแสดงเป็นช่วง โปรดทราบว่าวันอาทิตย์ (วันสุดท้าย) และวันจันทร์ (วันแรก) ก็เป็นวันที่ติดต่อกันเช่นกัน วันที่วันนั้นไม่มีเวลาทำการเหมือนกันกับวันก่อนหรือหลังถูกพิมพ์ด้วยตัวเอง วันที่ระบุไว้เป็นตัวอักษรตัวเล็กสามตัว: จันทร์อังคารพุธพฤหัสบดีเสาร์อาทิตย์ โปรดจำไว้ว่าองค์ประกอบแรกในอินพุตที่สอดคล้องกับจันทร์ถัดจากอังคาร ฯลฯ เวลาเปิดทำการจะปรากฏในอินพุท ตัวอย่างสองตัวอย่าง mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, …
20 code-golf 

30
แสดงนาฬิกาดิจิตอล
แสดงนาฬิกาดิจิตอล (ฉันเห็นว่ามีความท้าทายเกี่ยวกับนาฬิกามากมายฉันได้ลองอ่านพวกเขาทั้งหมดฉันค่อนข้างแน่ใจว่านี่ไม่เหมือนใคร) เขียนโค้ดบางส่วนที่ปรับปรุงอย่างต่อเนื่องนาฬิกาดิจิตอลแสดงในรูปแบบh:m:sที่h, mและsสามารถครอบครอง 1 หรือ 2 ตัวละครแต่ละคน ข้อ จำกัด ในแง่ง่าย ๆ เป็น @BlueEyedBeast ใส่ไว้ฉันต้องการให้มันแทนที่เวลาที่แสดง ไม่อนุญาตให้ขึ้นบรรทัดใหม่ อนุญาตให้เว้นวรรคต่อท้าย ไม่อนุญาตให้ใช้อักขระต่อท้ายอื่น ๆ ไม่ควรพลาดเป็นวินาที (57 -> 59 ไม่อนุญาต) อนุญาตให้ใช้หมายเลขที่ขึ้นต้นด้วย "0" ได้ตราบใดที่ตัวเลขเหล่านั้นมีอักขระไม่เกิน 2 ตัว รหัสจะต้องไม่ยอมรับอินพุตใด ๆ หากภาษาของคุณไม่สามารถรับเวลาปัจจุบันโดยไม่มีการป้อนข้อมูลคุณอาจใช้สำหรับการป้อนข้อมูลสูงสุด 8 ไบต์ในวิธีที่ได้รับอนุญาตมาตรฐาน เอาต์พุตต้องเป็น stdout นี่คือ codegolf ดังนั้นคำตอบที่สั้นที่สุดชนะ! ตัวอย่าง ฉันกำลังทำงานกับภาษาที่ชื่อ *> <> (ปลาดาว) เพราะโปรแกรมแบบนี้เป็นไปไม่ได้ใน> <> (แค่รอไฟล์ i / o) …
20 code-golf 

20
ค้นหา "ขนาดซ้ำ" ของรายการ
แรงบันดาลใจจากค้นหา“ขนาดยังไม่ได้เปิด” ของรายการ กำหนดขนาดแบบเรียกซ้ำRSของรายการที่ไม่มีรายการตามความยาว (จำนวนรายการที่มี) และขนาดแบบเรียกซ้ำของรายการที่มีรายการใด ๆ เป็นผลรวมของความยาวและขนาดแบบเรียกซ้ำของรายการเหล่านั้น ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกขนาดซ้ำของรายการที่กำหนดในไม่กี่ไบต์เท่าที่จะทำได้ อินพุตเป็นรายการและอาจมีตัวเลขสตริง (หากภาษาของคุณมี) และรายการที่คล้ายกัน ตัวอย่างเช่น: RS([]) = 0 RS([[]]) = 1 RS([4, 5, 6]) = 3 RS(["four", "five", "six"]) = 3 RS(["[[[[]]]]", "[][][][][]", "][][[[]]][]["]) = 3 RS([[4, 5, 6]]) = 4 RS([["four", "five", "six"]]) = 4 RS([["[[[[]]]]", "[][][][][]", "][][[[]]][]["]]) = 4 RS([[4], …

12
รถคิตตี้ศิลปะ ASCII
Knight Riderซีรีย์ทีวีในยุค 80 โดดเด่นด้วยรถยนต์อัจฉริยะที่มีความใส่ใจในตัวเองเรียกว่า KITT ลักษณะที่โดดเด่นอย่างหนึ่งของรถคือแถบสแกนเนอร์ที่ติดตั้งด้านหน้าซึ่งอนุญาตให้ KITT "เห็น" (และนั่นดูคุ้นเคยกับแฟน ๆ ของทีวีซีรีส์ก่อนหน้านี้อย่างน่าสงสัย ) สแกนเนอร์มีแปดไฟตามที่เห็นในภาพนี้: ไฟ "ย้าย" ตามที่แสดงในภาพเคลื่อนไหวนี้ งานของคุณดังที่คุณได้คาดไว้ในตอนนี้มันจะสร้างแถบเครื่องสแกนขึ้นใหม่ด้วยไฟเคลื่อนที่ในรูปแบบ ASCII ความท้าทาย ให้เป็นจำนวนเต็มtเอาท์พุทสถานะของแถบสแกนเนอร์ในทันทีนั้นกำหนดดังนี้: เครื่องสแกนประกอบด้วยไฟแปดดวง ที่หนึ่งทันทีใด ๆ ของไฟคือการใช้งาน#และมีการแสดงให้เห็นว่า ไฟที่ทำงานตลอดเวลาt-1และt-2ตอนนี้หรี่แสงและแสดง+ดังนี้ เว้นแต่พวกเขาจะตรงกับที่ใช้งานอยู่ในปัจจุบัน ไฟที่เหลือปิดอยู่-และจะแสดงเป็น แสงที่ใช้งานจะเลื่อนจากซ้ายไปขวาจากนั้นเลื่อนไปทางซ้าย ผลลัพธ์ที่แน่นอนสำหรับแต่ละรายการtมีรายละเอียดด้านล่าง 0 --> #++----- % The leftmost light is active, and it just came from the right. % The two neighbouring lights …

25
หมายเลขที่เว้นช่องว่าง
ได้รับรายชื่อของจำนวนเต็มไม่เป็นลบออกตัวเลขเหล่านั้นกับแต่ละซ้ายเบาะด้วยช่องว่างกับความยาวของN N( หรือมิฉะนั้นส่งคืนรายการอักขระ / สตริง) คุณอาจคิดว่าNมากกว่าหรือเท่ากับจำนวนหลักของตัวเลขที่มากที่สุดในรายการ ช่องว่างต่อท้ายได้รับอนุญาตในการส่งออก คุณอาจใช้สตริงที่มีตัวเลขเหล่านี้ แต่Nไม่ใช่ความยาวของสตริง แต่เป็นจำนวนองค์ประกอบในรายการ ["1", "2", "3"]นอกจากนี้คุณอาจต้องใช้เวลารายการของสตริงเช่น นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ input => 'output' 0 => '0' 1 => '1' 2 3 => ' 2 3' 2 10 => ' 210' 4 5 6 => ' 4 5 6' 17 19 20 => ' 17 19 …
20 code-golf  string 

29
ค้นหาความเบี่ยงเบนสูงสุด
ปัญหานี้เกิดจาก "แรงบันดาลใจ" จากคำถามที่เคยถูกถามในQuora (ไม่ใช่สำหรับการตีกอล์ฟ) ฉันแค่อยากทำให้มันท้าทายสำหรับพวกคุณ (และการส่งปัญหาแรกของฉันที่นี่) กำหนดอาร์เรย์ขององค์ประกอบจำนวนเต็มvและจำนวนเต็มd(เราสมมติว่า d ต่ำกว่าหรือเท่ากับความยาวของอาร์เรย์) ให้พิจารณาลำดับทั้งหมดของdองค์ประกอบที่ต่อเนื่องกันในอาร์เรย์ สำหรับแต่ละลำดับคำนวณความแตกต่างระหว่างค่าสูงสุดและต่ำสุดขององค์ประกอบในลำดับนั้นและตั้งชื่อมันว่าส่วนเบี่ยงเบน งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่คำนวณค่าสูงสุดระหว่างความเบี่ยงเบนทั้งหมดของลำดับทั้งหมดที่พิจารณาข้างต้นและส่งคืนหรือส่งออกค่านั้น ตัวอย่างที่ทำงานผ่าน: v: (6,9,4,7,4,1) d: 3 The sequences of length 3 are: 6,9,4 with deviation 5 9,4,7 with deviation 5 4,7,4 with deviation 3 7,4,1 with deviation 6 Thus the maximal deviation is 6, so the output is 6. …

8
เห็นภาพการเรียงลำดับ
สมมติว่าฉันมีรายการเช่น[3, 0, 4, 2, 1]และฉันใช้การเรียงลำดับการเลือกเพื่อเรียงลำดับฉันสามารถจินตนาการได้ดังนี้: 3,0,4,2,1 |-| 0,3,4,2,1 |-----| 0,1,4,2,3 |-| 0,1,2,4,3 |-| 0,1,2,3,4 ความท้าทายนี้เกี่ยวกับการมองเห็นการจัดเรียงเช่นนี้ อินพุต ข้อมูลที่คุณป้อนจะเป็นรายการจำนวนเต็มบวกในทุกรูปแบบที่คุณต้องการ งาน การส่งของคุณควรเรียงลำดับรายการอินพุตโดยการสลับสององค์ประกอบต่อครั้งเท่านั้นและในแต่ละการสลับการส่งควรแสดงรายการและอักขระภายใต้แต่ละองค์ประกอบที่ถูกสลับ หากตัวเลขที่ถูกสลับมีมากกว่าหนึ่งหลักตัวละครสามารถอยู่ที่ใดก็ได้ที่อยู่ข้างใต้ ในตอนท้ายการส่งควรแสดงรายการเรียงลำดับ กฎอื่น ๆ การเรียงลำดับต้องใช้การสลับน้อยกว่า n 4โดยที่ n คือความยาวของรายการ การเรียงลำดับไม่จำเป็นต้องกำหนดขึ้น อักขระภายใต้การสลับสามารถเป็นอักขระใด ๆ ยกเว้นพื้นที่

6
สร้างการเรียงชิปโป๊กเกอร์ ASCII
โป๊กเกอร์มีมารยาทในการจัดเรียงชิปของคุณซึ่งมักจะบังคับใช้ในทัวร์นาเมนต์ชิปของคุณอาจไม่ถูก "ซ่อน" จากฝ่ายตรงข้ามโดยอยู่หลังผู้อื่นส่วนใหญ่จะไม่ซ่อนชิปขนาดใหญ่บางรายการ ความท้าทาย เรากำลังจะได้เล่นโป๊กเกอร์ใน ASCII ดังนั้นเราจึงจำเป็นต้องเขียนฟังก์ชั่นหรือโปรแกรมที่จะดึงดูดการจัดสแต็คชิป ASCII nของเราให้มูลค่ารวมของ อินพุต - จำนวนเต็มบวกn(สูงสุดถึง2**32-1ควรจัดการ) เอาต์พุต - การแทน ASCII ของการจัดเรียงสแต็กตามที่กำหนดไว้ด้านล่าง นี่อาจมีช่องว่างสีขาวทางด้านขวาของแต่ละบรรทัดโดยที่ไม่มีบรรทัดใดยาวเกินหนึ่งอักขระมากกว่าความยาวที่ใช้โดยอักขระที่พิมพ์ได้ในบรรทัดที่ยาวที่สุด (ด้านล่าง); สิ่งนี้อาจมีบรรทัดใหม่ต่อท้ายหนึ่งบรรทัด และ ตัวละครที่เป็นตัวแทนของชิปอาจเป็นตัวพิมพ์เล็กหากคุณต้องการ การจัดเรียงสแต็กจะ: มีชิปที่น้อยที่สุดเท่าที่จะเป็นไปได้ จะมีชิปที่มีมูลค่าเท่ากันใน "สแต็ค" (คอลัมน์) ได้รับคำสั่งให้กองที่สั้นกว่าอยู่ทางด้านขวาของกองที่สูงกว่า และ ถูกสั่งเช่นว่าสแต็คที่มีชิปขนาดใหญ่จะอยู่ทางด้านขวาของสแต็กขนาดเท่ากันของนิกายที่ต่ำกว่า ชิปจะแสดงเป็นอักขระแต่ละตัวเพื่อระบุสี: White : 1 = W Red : 5 = R Green : 25 = G Black : 100 = …


25
คำต่อท้ายที่ระเบิดได้
รับสตริง ASCII ส่งออกคำต่อท้ายที่ขยายออกมา ตัวอย่างเช่นถ้าสตริงเคยabcdeมีคำต่อท้าย 5 คำสั่งที่ยาวที่สุดถึงสั้นที่สุด: abcde bcde cde de e แต่ละคำต่อท้ายจะถูกระเบิดซึ่งหมายความว่าอักขระแต่ละตัวจะถูกคัดลอกหลายครั้งตามตำแหน่งที่จัดทำดัชนีไว้หนึ่งตัวในคำต่อท้ายนั้น ยกตัวอย่างเช่นการระเบิดของคำต่อท้ายabcde, abcde 12345 abbcccddddeeeee bcde 1234 bccdddeeee cde 123 cddeee de 12 dee e 1 e พรึบคำต่อท้ายที่ระเบิดของabcdeคือ abbcccddddeeeee bccdddeeee cddeee dee e กฎระเบียบ นี่คือโค้ดกอล์ฟเพื่อให้โค้ดที่สั้นที่สุดชนะ ข้อมูลที่ป้อนจะประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ (สิ่งนี้ไม่รวมบรรทัดใหม่ แต่มีช่องว่าง) เอาต์พุตจะมีแต่ละสตริงในบรรทัดแยกกัน อนุญาตให้ใช้ช่องว่างต่อท้ายในแต่ละบรรทัดและอาจมีการขึ้นบรรทัดใหม่พิเศษในตอนท้าย กรณีทดสอบ '' 'a' a 'bc' bcc c …
20 code-golf  string 

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