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

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

23
ทำให้ฉันเป็นกระโจมที่เลื่อนได้
บทนำ จำ 80 คำราม? ฉันหมายถึงคุณรู้ไหมเหมือนเมื่อ 30 ปีก่อน? ไม่มีโทรศัพท์มือถือไม่มีอินเทอร์เน็ตไม่มีตู้ ATM เสื้อผ้าเรืองแสง (นั่นคืออะไร?!) และการเลื่อนของ marqee ! ไม่ไม่ไม่! ไม่ใช่คนออนไลน์ แต่เป็นคนจริงด้วยไฟ LED เนื่องจากฉันอยู่ในอารมณ์ที่คิดถึงฉันอยากให้คุณสร้างกระโจมเลื่อน ท้าทาย สร้างโปรแกรมที่คุณสามารถป้อนสตริงหนึ่งบรรทัด โปรแกรมของคุณจำเป็นต้องสร้างตัวอักษรกระโจมกว้าง 80 ตัวเพื่อทำซ้ำข้อความหากจำเป็น กฎระเบียบ ผู้ใช้จะต้องสามารถป้อนสตริงลงในโปรแกรมของคุณเป็นอินพุต สตริงสามารถเป็นพารามิเตอร์บรรทัดคำสั่งหรือสตริงที่ป้อนขณะเรียกใช้โปรแกรม โปรแกรมของคุณจะต้องพิมพ์สตริงที่มีอักขระ 80 ตัว (ที่มองเห็นได้) อย่างต่อเนื่อง สตริงจะต้องได้รับการอัพเดตทุก ๆ 0.1 วินาที (มากหรือน้อยกว่านั้นฉันจะไม่จับเวลา) เลื่อนตัวละครทุกตัวซ้ำหนึ่งตำแหน่งไปทางซ้าย สตริง "หมุน" ในตอนท้ายของสตริงที่ผู้ใช้ระบุอินสแตนซ์อื่นของสตริงต้องปรากฏขึ้น โปรแกรมของคุณจะต้องพิมพ์มันออกในหนึ่งบรรทัดโดยไม่ต้อง linefeeds (ใช้ '\ r' แทน '\ n') โปรแกรมของคุณจะต้องเรียกใช้infinitumจนกว่าผู้ใช้จะขัดจังหวะ …
15 code-golf 

4
คำนวณ A (N) / B (N) ด้วยตัวเลข C (N)
พิจารณาสามลำดับหมายเลขA, BและC: A: ลำดับบนพื้นฐานของความสัมพันธ์ที่เกิดขึ้นอีก, เริ่มต้นด้วยf(n) = f(n-1)+f(n-2) f(1) = 3, f(2) = 4ดังนั้นลำดับเริ่มต้นดังนี้:3 4 7 11 18 29 47 76 ... B: ตัวเลขรวมที่เป็นจำนวนเต็มทั้งหมดที่ไม่ใช่เฉพาะ (หรือ 1):4 6 8 9 10 12 14 15 16 ... C: ตัวเลขของ Pi: 3 1 4 1 5 9 2 6 5 ... รับจำนวนเต็มบวกN < 50ไม่ว่าจะเป็นอาร์กิวเมนต์ของฟังก์ชันหรือ …

16
ตัวเลขสำหรับตัวอักษร
มีตัวเลขที่ง่ายมากที่แทนที่ตัวอักษรด้วยตำแหน่งของมันในตัวอักษร ตัวอย่างเช่นabcจะกลายเป็น1 2 3ตัวเลขนี้ ความท้าทายนี้เป็นอีกทางเลือกสำหรับรหัสนี้ ความท้าทาย สร้างโปรแกรมที่รับอินพุตอักขระ ASCII และส่งออกสตริงที่คั่นด้วยช่องว่างของ: จำนวนเต็ม-26ผ่าน26 ตัวอักษรaผ่านj ผลลัพธ์ควรมาจาก STDOUT หรือภาษาอื่นที่ใกล้เคียงที่สุดของคุณ ข้อมูลจำเพาะ ตัวอักษรพิมพ์ใหญ่ควรถูกทำให้ไร้ผล เมืองหลวงDตัวอย่างเช่นจะเป็น-4ในขณะที่ตัวพิมพ์เล็กจะเป็นd4 ควรเปลี่ยนตัวเลขเป็นเลขอัลฟ่าของพวกเขา 1เป็นaและอื่น ๆ เลขใด ๆ jในการป้อนข้อมูลจะเป็น ควรละเว้นอักขระที่ไม่ใช่ตัวอักษรและตัวเลข (ยกเว้นช่องว่าง) ช่องว่างคือ 0มีช่องว่าง ช่องว่างที่อยู่ติดกันในผลลัพธ์ควรลดลงเป็นช่องว่างเดียว Input: You + Me Correct Output: -25 15 21 0 -13 5 Incorrect Output: -25 15 21 0 0 0 -13 5 …

30
สร้าง UUID แบบสุ่ม
ฉันต้องการ UUID งานของคุณคือการสร้าง canonical UUID (Universally Unique IDentifier) ​​เป็นเลขฐานสิบหก 32 หลักพร้อมเครื่องหมายขีดคั่นในบางจุดโปรแกรมควรแสดงผลตัวเลขฐานสิบหก 32 (128 บิต) ในรูปแบบของxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx( 8-4-4-4-12หลัก) ซึ่งxเป็นเลขฐานสิบหกแบบสุ่ม สมมติว่า PRNG ของภาษาคุณสมบูรณ์แบบผลลัพธ์ที่ถูกต้องทั้งหมดจะต้องมีความน่าจะเป็นเหมือนกัน TL; DR สร้างตัวเลขฐานสิบหกแบบสุ่ม 32 หลักในรูปแบบ8-4-4-4-12หลัก รหัสที่สั้นที่สุดชนะ แก้ไข: ต้องเป็นเลขฐานสิบหก การสร้างทศนิยมเพียงอย่างเดียวไม่ถูกต้องเสมอไป แก้ไข 2: ไม่มีบิวด์อิน นี่ไม่ใช่ GUID เพียงแค่เลขฐานสิบหกทั่วไป ตัวอย่างผลลัพธ์: ab13901d-5e93-1c7d-49c7-f1d67ef09198 7f7314ca-3504-3860-236b-cface7891277 dbf88932-70c7-9ae7-b9a4-f3df1740fc9c c3f5e449-6d8c-afe3-acc9-47ef50e7e7ae e9a77b51-6e20-79bd-3ee9-1566a95d9ef7 7b10e43c-3c57-48ed-a72a-f2b838d8374b อินพุตและช่องโหว่มาตรฐานไม่ได้รับอนุญาต นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ นอกจากนี้อย่าลังเลที่จะขอคำชี้แจง
15 code-golf  random 

1
เลขคณิต… tock …ติ๊ก… tock
คำถามนี้นำมาให้คุณโดยเกมที่ฉันชอบเล่นเมื่อติดอยู่ในการประชุมทางโทรศัพท์ที่ยาวนาน ให้สองเท่าจากนาฬิกา 24 ชั่วโมง (จาก 00:00 ถึง 23:59) จะสามารถสร้างสมการทางคณิตศาสตร์ที่ถูกต้องได้กี่ครั้งโดยใช้การดำเนินการทางคณิตศาสตร์พื้นฐานเท่านั้น อินพุต:สตริงสองสี่หลัก (ไม่มีโคลอน) แทนเวลาที่ถูกต้องในรอบ 24 ชั่วโมง ตัวอย่าง: สำหรับอินพุต = 0000, 1300 03:26 produces: "0+3*2=6" and "03*2=6" etc. 11:10 produces quite a few, including: "1*1=1+0" and "1=1=1^0" and "1=11^0" etc. 12:24 produces: "1/2=2/4" and "1=(2*2)/4" etc. การดำเนินการที่ถูกต้องคือ: ส่วนที่เพิ่มเข้าไป การลบ การคูณ ส่วน (จุดลอย) การยกกำลัง …

3
ให้เส้นทาง
ท้าทาย คุณได้มอบแผนที่ให้กับเพื่อนที่มีลักษณะดังนี้: | / | / | \ | \ D แผนที่ง่าย ๆ ที่เริ่มต้นที่ด้านบนและสิ้นสุดที่ด้านล่าง น่าเศร้าที่เพื่อนของคุณไม่เข้าใจ คุณสามารถถอดรหัสแผนที่เพื่อให้เขาอ่านได้หรือไม่? อินพุต การป้อนข้อมูลที่เป็นสายอักขระประกอบด้วย|, /, \, D, ^, Y, (เว้นวรรค)และการขึ้นบรรทัดใหม่ | บอกให้อยู่ในคอลัมน์เดียวกัน \ บอกให้ย้ายไปที่คอลัมน์ด้านขวาและลง 1 / บอกให้ย้ายไปที่คอลัมน์ทางซ้ายและลง 1 D ทำเครื่องหมายปลายทาง ^ (ถ้ามี) บอกการแยกในเส้นทาง Y(ถ้ามี) บอกถึงการเข้าร่วมเส้นทาง |รักษามันเหมือน อินพุตจะถูกจัดเรียงเพื่อให้เป็นเส้นทางแบบ: | | \ | ^ / \ / | …
15 code-golf 

5
ค้นหาเข็มนาฬิกาที่ใกล้ที่สุด
ท้าทาย กำหนดจำนวนวินาทีที่ผ่านมาเที่ยงคืนเอาท์พุทมุมที่เล็กที่สุดระหว่างสองมือบนหน้าปัดนาฬิกาโดยใช้น้อยที่สุดเท่าที่เป็นไปได้ คุณอาจคิดว่าจำนวนวินาทีน้อยกว่า 86400 เสมอมุมอาจแสดงเป็นองศาหรือเรเดียน โซลูชันอ้างอิงอยู่ที่: http://ideone.com/eVdgC0 กรณีทดสอบ (ผลลัพธ์เป็นองศา) 0 -> 0 60 -> 0.5 600 -> 5 3600 -> 0 5400 -> 45 6930 -> 84.75 50000 -> 63.333 Clarificarions นาฬิกามี 3 เข็ม: ชั่วโมงนาทีและวินาที ทุกมือเคลื่อนไหวอย่างต่อเนื่องดังนั้นชั่วโมงและนาทีจึงสามารถพบได้ระหว่างการเรียนจบที่หน้าปัดนาฬิกา

2
เติมลูกโป่งน้ำ
ในการท้าทายนี้คุณต้องแสดงศิลปะ ASCII ของบอลลูนน้ำที่กำหนดปริมาณน้ำที่เต็มไปด้วยบอลลูน: | __||__ | | / # #\ | | |######| | | |######| | | |######| | | |######| | | |######| | | \######/ | | | | | +----------+ วิธีการวาดบอลลูน ในการแสดงบอลลูนที่มีขนาดnให้ทำตามขั้นตอนต่อไปนี้ (หมายเหตุ: เมื่อใดก็ตามที่มีการใช้สัญลักษณ์การหาร ( /) มันจะแสดงถึงการหารจำนวนเต็มปัดเศษลง): วาดคอนเทนเนอร์ที่ประกอบด้วยแถบแนวตั้งสิบแถบ ( |) ที่ด้านซ้ายและขวาเครื่องหมายขีดคั่นสิบอัน ( -) ที่ด้านล่างและเครื่องหมายบวก ( +) …

2
แปล RoboCritters เป็น Brainf ***
RoboCritters ( นิรุกติศาสตร์ ) เป็นภาษาการเขียนโปรแกรมลึกลับใหม่ล่าสุด(ไม่ต้องค้นหามันฉันแค่คิดค้นมัน) มันแตกต่างจากBrainfuck (BF) ซึ่งซับซ้อนกว่าแผนทดแทนผู้ดำเนินการเล็กน้อย ทุกโปรแกรมใน RoboCritters เป็นตารางข้อความที่ประกอบด้วยอักขระเจ็ดตัวเท่านั้น. []/\|รวมถึงการขึ้นบรรทัดใหม่เพื่อกำหนดตาราง ตัวอย่างโปรแกรม RoboCritters: |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ ในการแปลโปรแกรม RoboCritters เป็น BF ให้ดูที่อักขระที่ไม่ใช่บรรทัดใหม่ในตารางตามลำดับการอ่านปกติ (จากซ้ายไปขวาจากบนลงล่างจากบนลงล่าง) เช่น |\/||./|[]||[..][][] ||/\|[..][..][..] \/\/เช่น หากส่วน 4 × 2 ของตารางขยายไปทางขวาและลงจากอักขระปัจจุบันตรงกับหนึ่งในแปดcritters หุ่นยนต์ที่ระบุไว้ด้านล่างผนวกคำสั่ง BF ที่สอดคล้องกัน( ><+-.,[]) เพื่อโปรแกรม BF (ตอนแรกว่างเปล่า) หากส่วนของกริด 4 × 2 ไม่ตรงกับส่วนใด ๆ ของหุ่นยนต์ critters …

3
Burrows, Wheeler และ Back
พื้นหลัง Burrows-Wheeler เปลี่ยน (BWT) คือการเปลี่ยนแปลงแบบพลิกกลับของตัวละครของสตริงว่าผลลัพธ์ในการทำงานที่มีขนาดใหญ่ของตัวละครที่คล้ายกันสำหรับบางประเภทของสตริงเช่นข้อความธรรมดา มันถูกใช้สำหรับตัวอย่างเช่นในขั้นตอนวิธีการบีบอัด bzip2 BWT ถูกกำหนดดังนี้: รับสตริงอินพุตเช่นcodegolfคำนวณการหมุนที่เป็นไปได้ทั้งหมดและเรียงลำดับตามคำศัพท์: codegolf degolfco egolfcod fcodegol golfcode lfcodego odegolfc olfcodeg BWT ของสตริงcodegolfคือสตริงที่ประกอบด้วยอักขระตัวสุดท้ายของแต่ละสตริงตามลำดับนั่นคือคอลัมน์สุดท้ายของบล็อกด้านบน สำหรับcodegolfผลตอบแทนfodleocgนี้ ด้วยตัวเองการแปลงนี้ไม่สามารถย้อนกลับได้เนื่องจากสตริงcodegolfและgolfcodeผลลัพธ์ในสตริงเดียวกัน อย่างไรก็ตามถ้าเรารู้ว่าสตริงนั้นลงท้ายด้วย a fมีเพียงหนึ่ง preimage ที่เป็นไปได้ งาน ใช้โปรแกรมหรือฟังก์ชั่นที่ไม่เกี่ยวข้องซึ่งอ่านสตริงเดี่ยวจาก STDIN หรือเป็นบรรทัดคำสั่งหรือฟังก์ชันอาร์กิวเมนต์แล้วพิมพ์หรือส่งคืน BWT หรืออินเวิร์สต์ของสตริงอินพุต หากสตริงอินพุตไม่มีช่องว่างการส่งของคุณควรผนวกช่องว่างเดียวกับอินพุตและคำนวณ BWT หากสตริงอินพุตมีช่องว่างอยู่แล้วควรคำนวณ preimage ของ BWT ที่มีช่องว่างต่อท้ายและตัดช่องว่างนั้น ตัวอย่าง INPUT: ProgrammingPuzzles&CodeGolf OUTPUT: fs&e grodllnomzomaiCrGgPePzu INPUT: fs&e grodllnomzomaiCrGgPePzu OUTPUT: …

13
เวลาทศนิยมของการแปลงวัน
บทนำ เวลากำลังสับสน หกสิบวินาทีถึงหนึ่งนาที, หกสิบนาทีถึงหนึ่งชั่วโมง, ยี่สิบสี่ชั่วโมงต่อวัน (และไม่ต้องพูดถึงที่น่ารำคาญ am / pm!) ทุกวันนี้ไม่มีที่ว่างเหลืออยู่สำหรับความงี่เง่าดังนั้นเราจึงตัดสินใจเลือกทางเลือกที่เหมาะสมเพียงอย่างเดียวคือวันทศนิยม! กล่าวคือในแต่ละวันจะถือว่า 1 หน่วยทั้งหมดและสิ่งที่สั้นกว่านั้นเขียนเป็นเศษส่วนทศนิยมของวันนั้น ตัวอย่างเช่น: "12:00:00" จะถูกเขียนเป็น "0.5" และ "01:23:45" อาจถูกเขียนเป็น "0.058159" เนื่องจากต้องใช้เวลาในการทำความคุ้นเคยกับระบบใหม่คุณจึงได้รับมอบหมายให้เขียนโปรแกรมที่สามารถแปลงระหว่างทั้งสองได้ ท้าทาย เขียนโปรแกรมในภาษาที่คุณเลือกซึ่งกำหนดเวลาที่ทันสมัยในรูปแบบ ISO-8601 ของ "hh: mm: ss" จะส่งคืนหน่วยเศษทศนิยมที่เทียบเท่า ในทำนองเดียวกันเมื่อได้รับเศษทศนิยมโปรแกรมควรส่งคืนเวลาในรูปแบบทันสมัยที่ระบุไว้ในตอนแรก คุณสามารถกำหนดสมมติฐานต่อไปนี้: อินพุตและเอาต์พุตเวลาที่ทันสมัยสามารถอยู่ในช่วง "00:00:00" ถึง "24:00:00" อินพุตและเอาต์พุตเวลาทศนิยมสามารถอยู่ในช่วงตั้งแต่ "0" ถึง "1" และควรสามารถยอมรับ / ส่งออกได้อย่างน้อย 5 ตำแหน่งทศนิยม (เช่น "0.12345") ความแม่นยำมากขึ้นเป็นที่ยอมรับ โปรแกรมควรทราบทิศทางการแปลงที่จะดำเนินการตามอินพุต คุณไม่สามารถใช้ฟังก์ชัน …

9
Brainf ** k ถึง Unary และ Back
ภาษาที่มีประโยชน์มากในแหล่งที่มีข้อ จำกัด และความท้าทายอื่น ๆ คือUnaryซึ่งเป็นอนุพันธ์ของสมองที่โปรแกรมจะเขียนด้วยตัวละครเพียงตัวเดียว งานของคุณคือการเขียนโปรแกรมเพื่อแปลงโปรแกรมจาก brainfuck เป็นเอกและโปรแกรมที่จะทำตรงข้ามทั้งสองโปรแกรมในภาษาเดียวกัน คะแนนของคุณจะเป็นผลรวมของความยาวของโปรแกรมทั้งสอง คุณแปลงจาก brainfuck เป็น unary ได้อย่างไร? ก่อนอื่นแปลงโค้ด brainfuck ให้คุณเป็นไบนารี่ตามตารางนี้: ตอนนี้เชื่อมต่อรหัสเป็นเลขฐานสองยักษ์หนึ่งตัวตามลำดับของรหัส เติม a 1เข้ากับสตริงเพื่อให้แน่ใจว่าเลขฐานสองที่ไม่ซ้ำกัน แปลงจากเลขฐานสองเป็นตัวเลขโดยใช้ตัวอักษรใดก็ได้ Ex: +.จะเป็น000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (84 ศูนย์) Brainfuck -> ข้อมูลจำเพาะของนารี เนื่องจากโปรแกรมที่ได้จะมีขนาดใหญ่มากพิมพ์ไม่ได้เป็นโปรแกรมจริง แต่เป็นเพียงความยาวของโปรแกรมผลลัพธ์ ใช้โปรแกรม brainfuck เป็นสตริงผ่าน stdin, ฟังก์ชัน arg ฯลฯ และส่งออกความยาว โปรแกรมจะใช้ได้ตลอดเวลาและมีเพียง 8 ตัวอักษรในนั้น ยูนารี -> ข้อมูลจำเพาะของ Brainfuck คุณจะต้องใช้การย้อนกลับของอัลกอริทึมข้างต้น อีกครั้งเนื่องจากมีขนาดใหญ่มากคำถามอินพุตจะเป็นตัวเลขที่อธิบายความยาวของรหัสยูนารี กฎ I …

2
แก้ไขเครื่องมือจัดฟัน ฯลฯ
ภารกิจของคุณคุณควรเลือกที่จะยอมรับมันคือการเพิ่มขั้นต่ำจำนวนวงเล็บวงเล็บและวงเล็บที่จะทำให้สตริงที่กำหนด (ที่มีวงเล็บเท่านั้นวงเล็บและวงเล็บ) มีการจับคู่รั้งที่ถูกต้อง ความสัมพันธ์ของสัญลักษณ์ที่เพิ่มเข้ามาจะต้องถูกทำลายโดยมีระยะห่างสูงสุดระหว่างเครื่องหมายปีกกาคู่ คุณต้องส่งคืนคำตอบที่ถูกต้องเพียงข้อเดียวที่ตรงกับกฎทั้งสองนี้ ความสัมพันธ์เพิ่มเติมหากมีอยู่อาจถูกทำลายในแบบที่คุณเห็นว่าเหมาะสม ตัวอย่าง: input output // Empty String is a legal input [ [] // Boring example [()] [()] // Do nothing if there's nothing to be done ({{ ({{}}) // NOT (){}{} (0 + 0 + 0). Maximum distance is 4 + 2 + 0, …

7
ฉันควรใส่ร้านอาหารไว้ที่ไหน
คุณเป็นเจ้าของร้านอาหาร คุณกำลังเปิดในพื้นที่ใหม่ใน Cartesia ที่มีถนนสายหลักเพียงเส้นเดียวเท่านั้นที่รู้จักกันในชื่อแกน y คุณต้องการวางร้านอาหารของคุณเพื่อลดระยะทางโดยรวมจากร้านอาหารและบ้านแต่ละหลังในพื้นที่นั้น อินพุต : อินพุตจะเป็น n, the number of houses house1 house2 house3 ... houseN x yซึ่งแต่ละบ้านจะประสานงานในรูปแบบ แต่ละหน่วยแสดงถึงหนึ่งกิโลเมตร คุณสามารถรับอินพุตเป็นสตริงหรือจัดเตรียมฟังก์ชันที่รับอินพุตในรูปแบบใดก็ได้ที่คุณเลือกเป็นอาร์กิวเมนต์ เอาท์พุท : พิกัด y ของร้านอาหารของคุณ (จำไว้ว่ามันจะอยู่บนแกน y) จริงๆแล้วมันจะอยู่ข้างถนน แต่ความแตกต่างนั้นเล็กน้อย โดยพื้นฐานแล้วถ้าบ้านหลังที่ n อยู่h_nและDเป็นฟังก์ชั่นระยะทางคุณจะต้องหาสิ่งkที่D(h_0, (0, k)) + D(h_1, (0, k)) + D(h_2, (0, k)) + ... + D(h_n, (0, …

4
สั่งซื้อ 40 แท่ง
เรามีความกว้าง 40 แท่งที่เหมือนกัน แต่มีความสูงต่างกัน มีวิธีใดบ้างที่สามารถจัดวางไว้ติดกันเพื่อที่ว่าเมื่อเรามองจากด้านขวาเราเห็น 10 แท่งและเมื่อมองจากซ้ายเราจะเห็นว่ามี 10 แท่งแน่นอน ตัวอย่างเช่นการสั่งซื้อคือ: แท่งสีดำซ่อนอยู่แท่งสีแดงเป็นแท่งที่คุณสามารถมองเห็นได้จากด้านซ้ายแท่งสีฟ้าเป็นแท่งที่คุณสามารถมองเห็นได้จากด้านขวาและสีม่วง (เช่นแท่งที่ยาวที่สุด) คือแท่งที่สามารถมองเห็นได้ จากทั้งสองด้าน ในกรณีทดสอบ: ถ้าเรามีจำนวนการเรียง 3 แท่งเพื่อดู 2 จากซ้ายและ 2 จากขวาคือ 2 ถ้าเรามีจำนวนการเรียง 5 แท่งเพื่อดู 3 จากซ้ายและ 3 จากขวาคือ 6 หากเรามีจำนวนการสั่งไม้ 10 ครั้งเพื่อดู 4 จากซ้ายและ 4 จากขวาคือ 90720

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