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

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

6
Golff y Côd - ทรีกลาด
อ่าน yng Nghymraeg นี้ ท้าทาย ให้คำในภาษาเวลส์ส่งออกรูปแบบคำที่กลายพันธุ์ทั้งหมดที่เป็นไปได้ การกลายพันธุ์ การกลายพันธุ์คือการเปลี่ยนแปลงของตัวอักษรตัวแรกของคำเมื่อทำตามคำบางคำหรือในบริบททางไวยากรณ์ที่แน่นอน ในภาษาเวลส์รายการต่อไปนี้ถูกพิจารณาเป็น "พยัญชนะ": b c ch d dd f ff g ng h l ll m n p ph r rh s t th โปรดทราบว่าพยัญชนะหลายตัวเช่น ch, ng และ rh จะนับเป็นตัวอักษรหนึ่งในภาษาเวลส์ดังนั้นจึงมีพยัญชนะหนึ่งตัว ตัวอักษรอื่น ๆ ในตัวอักษรเวลส์เป็นเสียงสระดังด้านล่าง: a e i o u w y ดูด้านล่างการกลายพันธุ์ทั้งหมดที่มีตัวอักษรต้นฉบับทางด้านซ้ายและตัวกลายพันธุ์ที่เกิดขึ้นทางด้านขวา: Original | …

11
เอาต์พุต“ Lorem ipsum” ที่มีจำนวนอักขระน้อยที่สุด
ฉันจำคนที่บอกว่าขนาดรหัสควรวัดเป็นไบต์ไม่ใช่ตัวอักษรเพราะเป็นไปได้ที่จะเก็บข้อมูลด้วยอักขระ Unicode แปลก ๆ ซึ่งไม่มีความหมายภาพ มันจะเลวร้ายแค่ไหน? ในการท้าทายนี้คุณควรส่งออกข้อความ Lorem Ipsum ต่อไปนี้ซึ่งนำมาจากWikipedia : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure …

11
สุ่มสะกดคำ
แรงบันดาลใจจากคำถาม CR นี้ (โปรดอย่าฆ่าฉันสำหรับการเรียกดู CR) สเป็ค ความน่าจะเป็นของการสะกดคำคือ: 1/3 ของเวลาไม่เปลี่ยนเอาต์พุต 1/3 ของเวลาลบอักขระแบบสุ่ม 1/3 ของเวลาซ้ำอักขระแบบสุ่ม โอกาสในการลบ / ทำซ้ำอักขระที่กำหนดในอินพุตควรเหมือนกันสำหรับตัวอักษรทั้งหมด หากอักขระสองตัวที่ต่อเนื่องกันเป็นตัวเดียวกัน (ตัวพิมพ์เล็ก - ใหญ่) ความน่าจะเป็นของตัวละครหนึ่งตัวที่กำลังถูกดัดแปลงควรจะเหมือนกันกับตัวละครตัวนั้น AAนั่นคือผลลัพธ์สำหรับ(ซึ่งเป็นAAหรือAหรือAAA) ควรมีความน่าจะเป็นเหมือนกัน ข้อมูลที่ป้อนจะประกอบด้วยตัวอักษรเพื่อความเรียบง่ายเท่านั้น ตัวอย่าง บรรทัดแรกคืออินพุตบรรทัดต่อไปนี้คือการสะกดที่เป็นไปได้ทั้งหมด แต่ละบรรทัดควรมีความน่าจะเป็นเหมือนกันกับการส่งออกอินพุตไม่รวมอยู่ในตัวอย่าง แต่ควรมีความน่าจะเป็นที่ 1/3 ของเอาต์พุต foo fo oo ffoo fooo PPCG PPC PPG PCG PPPCG PPCCG PPCGG

14
ตัวเลขที่ไม่ใช่ Palindromic
จำนวนอย่างเคร่งครัดไม่ใช่ palindromic N เป็นตัวเลขที่ไม่ได้เป็น palindrome ในใด ๆฐาน (ฐาน 2 ถึง N-2) หมายเลขเหล่านี้มีการระบุไว้ในOEIS ยกตัวอย่างเช่นตัวเลข19ในฐาน 2,3,4,5,6 ... 17: 10011, 201, 103, 34, ...31 12ไม่มีการรับรองเหล่านี้คือ palindromic ดังนั้นตัวเลขจึงไม่ใช่แบบ palindromic สำหรับความท้าทายนี้คุณจะต้องส่งคืนค่าที่เป็นจริงหากจำนวนนั้นไม่ใช่ค่า palindromic มิฉะนั้นจะเป็นค่าที่ผิดพลาด คุณอาจถือว่าจำนวนที่ส่งให้คุณมากกว่าหรือเท่ากับ 0 โปรแกรมของคุณควรใช้งานได้กับค่าสูงสุดถึงขนาดจำนวนเต็มของภาษาของคุณ กรณีทดสอบ: Truthy: 0 1 2 3 4 6 11 19 47 53 79 103 389 997 1459 Falsy: 5 …

6
ม้วน ASCII die
ในการท้าทายรหัส - กอล์ฟนี้คุณจะต้องแสดงผล ascii-art ของมู่เล่แบบสุ่ม แบบนี้: ________ /\ \ / \ 6 \ { 4 }-------} \ / 5 / \/_______/ โปรดทราบว่า: ________ /\ \ / \ 3 \ { 4 }-------} \ / 5 / \/_______/ เป็นเอาต์พุตที่ไม่ถูกต้องเพราะนั่นไม่ใช่ผลลัพธ์ที่เป็นไปได้ในการตาย มี6(faces that could be up)*4(faces that could be the left face after …

19
กล่องขยายอัตโนมัติ
บทนำ บางครั้งกล่องของฉันเล็กเกินไปที่จะใส่อะไรลงไป ฉันต้องการให้คุณทำกล่องขยาย! ดังนั้นสิ่งที่ทำให้กล่องกล่องในความท้าทายนี้ OOOO O O O O O O OOOO มุมของกล่องเป็นช่องว่างเสมอ ตัวกล่องสามารถสร้างขึ้นมาจากตัวละครเดียวกัน อักขระนั้นสามารถเป็นอักขระ ASCII ที่พิมพ์ได้ยกเว้นช่องว่าง ดังนั้นนั่นคือตัวละครเหล่านี้: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ความยาวด้านข้างของกล่องข้างต้นเป็น4, 3 คุณอาจจะคิดว่ามีความยาวด้านข้างอยู่เสมอในเชิงบวก นั่นหมายความว่านี่คือกล่องที่เล็กที่สุดที่คุณต้องจัดการ: # # # # ในการขยายกล่องคุณจำเป็นต้องเพิ่มความยาวแต่ละด้าน ลองทำอย่างนี้ทีละขั้นตอนกับตัวอย่างข้างต้น ก่อนอื่นเราเอาส่วนบนของกล่องซึ่งก็คือ: OOOO เราขยายมันทีละรายการดังนั้นเราจึงได้รับ: OOOOO นี่คือส่วนบนและล่างของกล่องตอนนี้ หลังจากนั้นเราทำเช่นเดียวกันกับด้านข้างทางซ้ายและขวา: O O O กลายเป็น: O O O O ตอนนี้เรารวมกันอีกกล่องซึ่งเป็น: OOOOO O O O O O …

12
จำลองลิ้นชักถุงเท้า
พื้นหลัง ฉันมีชุด "ถุงเท้าวันทำงาน" ซึ่งเป็นถุงเท้าเจ็ดคู่ที่ติดป้ายชื่อโดยวันในสัปดาห์ เมื่อฉันล้างถุงเท้าของพวกเขาพวกเขาจบลงด้วยกองและฉันต้องจัดให้พวกเขาเป็นคู่ที่ถูกต้องก่อนที่จะนำพวกเขาเข้าไปในตู้เสื้อผ้า กลยุทธ์ของฉันคือดึงถุงเท้าแบบสุ่มหนึ่งอันออกจากกองพร้อมกันแล้ววางลงบนลิ้นชัก เมื่อใดก็ตามที่มีถุงเท้าคู่ที่ตรงกันบนลิ้นชักฉันผูกพวกเขาเข้าด้วยกันและวางไว้ในตู้เสื้อผ้า งานของคุณคือการจำลองกระบวนการสุ่มนี้และคืนจำนวนการจับที่ต้องการเพื่อหาคู่แรกที่จับคู่ อินพุต ข้อมูลของคุณเป็นจำนวนเต็มN ≥ 1 มันหมายถึง "จำนวนวันในหนึ่งสัปดาห์": มีNคู่ของถุงเท้าในกองและแต่ละคู่มีป้ายชื่อที่แตกต่างกัน หากจำเป็นคุณอาจใช้เมล็ดพันธุ์ PRNG เป็นอินพุตได้ เอาท์พุต ผลลัพธ์ของคุณคือจำนวนถุงเท้าที่ฉันต้องวาดก่อนที่จะพบคู่แรกที่ตรงกัน 2ตัวอย่างเช่นถ้าทั้งสองถุงเท้าแรกแล้วแบบคู่จับคู่ออกเป็น แน่นอนว่าผลลัพธ์เป็นแบบสุ่มและขึ้นอยู่กับลำดับการวาด เราคิดว่าคำสั่งซื้อรูปวาดทั้งหมดมีโอกาสเท่ากันดังนั้นในแต่ละครั้งที่มีการดึงถุงเท้าตัวเลือกจะเหมือนกันและเป็นอิสระจากตัวเลือกอื่น ๆ ทั้งหมด ตัวอย่าง ให้N = 3 , เพื่อให้เรามี 6 ถุงเท้ารวมป้ายAABBCC หนึ่งในการทำงานที่เป็นไปได้ของ "sock-drawing protocol" มีดังต่อไปนี้: | Pile | Drawer | Pairs Begin | AABBCC | - | - …
16 code-golf  random 

17
รถไฟเกียร์หมุน
Gears ถ่ายโอนความเร็วที่แตกต่างกันขึ้นอยู่กับขนาดของเฟืองตาข่าย แจ็คมีเครื่องจักรที่หมุน Gear Train แต่คุณไม่รู้ความเร็วของเกียร์สุดท้าย โชคดีที่คุณเป็นนักกอล์ฟที่ยอดเยี่ยมดังนั้นคุณสามารถช่วยเขาได้! ดังนั้นฉันควรทำอย่างไร แต่ละเกียร์จะมีตัวเลข 2 ตัวรัศมีของเกียร์ภายในและรัศมีของเกียร์ด้านนอก ถ้าเกียร์Aเป็น[a,b]เกียร์Bเป็น[c,d]แล้วอัตราส่วนระหว่างความเร็วของAและความเร็วของการจะเป็นBc:b รับรายการของเกียร์ (รายการของ 2-tuples), ส่งออกความเร็วของเกียร์สุดท้าย คุณสามารถสมมติความเร็วของเกียร์แรก1ได้ ทำงานออกมาเป็นตัวอย่าง [[6,12],[3,10],[5,8]]สมมติว่าการป้อนข้อมูลของเราคือ เกียร์แรกจะมีความเร็วของ[6,12]1 จากนั้นเกียร์ที่สองจะมีความเร็วของ[3,10]1*12/3 = 4 จากนั้นเกียร์ที่ผ่านมาจะมีความเร็วของ[5,8]4*10/5 = 8 Testcases input output [[1,1],[2,2]] 0.5 (1/2) [[1,2],[1,2],[1,2]] 4 (2/1*2/1) [[6,12],[3,10],[5,8]] 8 (12/3*10/5) กฎระเบียบ ใช้กฎพื้นฐานของรหัสกอล์ฟ
16 code-golf 

2
ประโยคปกติ
เขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับสายเข้าและค่าเบี่ยงเบนมาตรฐานσผลผลิตที่สตริงตามเส้นโค้งการแจกแจงแบบปกติที่มีค่าเฉลี่ยส่วนเบี่ยงเบนมาตรฐาน0σ เส้นโค้งการแจกแจงปกติ yพิกัดของตัวละครแต่ละตัวcคือ: ที่σจะได้รับเป็น input และสถานที่ที่xเป็นแกนประสานงานของxc อักขระที่อยู่ตรงกลางของสตริงมี x = 0ตัวละครในใจกลางของสตริงมีหากความยาวของสตริงเป็นเลขคู่สามารถเลือกอักขระกลางสองตัวใดตัวหนึ่งเป็นกึ่งกลาง ตัวละครจะถูกคั่นด้วยขั้นตอนของ0.1(เช่นตัวละครทางด้านซ้ายของศูนย์หนึ่งมีx = -0.1ตัวละครหนึ่งทางด้านขวาของกลางมีx = 0.1ฯลฯ ) การพิมพ์สตริง 0.1สายเช่นตัวอักษรจะถูกคั่นด้วยขั้นตอนของ ตัวละครแต่ละตัวจะพิมพ์อยู่บนบรรทัดที่มีyค่าที่ใกล้เคียงกับของตัวเองyค่า (ถ้ามีค่าเป็นแม่นยำในระหว่างค่าของทั้งสองสายให้เลือกอย่างใดอย่างหนึ่งที่มีค่าที่ใหญ่ที่สุด (เช่นเดียวกับวิธีการที่roundมักจะให้ผลตอบแทน1.0สำหรับ0.5)) ตัวอย่างเช่นถ้าyพิกัดของค่ากลาง (เช่นค่าสูงสุด) เป็น0.78และyพิกัดของตัวอักษรตัวแรกเป็น0.2แล้วจะมี 9 สาย: ตัวศูนย์ถูกพิมพ์บนเส้นและตัวอักษรตัวแรกถูกพิมพ์ในบรรทัด08 อินพุตและเอาต์พุต คุณสามารถรับทั้งอินพุต (สตริงและσ) เป็นอาร์กิวเมนต์ของโปรแกรม, ผ่านSTDIN, อาร์กิวเมนต์ของฟังก์ชันหรือสิ่งอื่นที่คล้ายกันในภาษาของคุณ สตริงจะมีASCIIอักขระที่พิมพ์ได้เท่านั้น สตริงสามารถว่างเปล่า σ > 0. คุณสามารถพิมพ์ผลลัพธ์ไปยังSTDOUTในไฟล์หรือส่งคืนจากฟังก์ชัน ( ตราบเท่าที่มันเป็นสตริงและไม่พูดรายการของสตริงสำหรับแต่ละบรรทัด) บรรทัดใหม่ต่อท้ายเป็นที่ยอมรับ ช่องว่างต่อท้ายเป็นที่ยอมรับตราบใดที่ไม่ทำให้บรรทัดยาวเกินกว่าความยาวบรรทัดสุดท้าย (ดังนั้นจึงไม่มีช่องว่างต่อท้ายที่ยอมรับได้ในบรรทัดสุดท้าย) กรณีทดสอบ σ String 0.5 Hello, World! …
16 code-golf  math  string 

26
แปลงสตริง n ความยาว m เป็นสตริง m ยาว n
เขียนโปรแกรมที่กำหนดจำนวน 'n' ของสตริงที่มีความยาว 'm' ส่งคืนจำนวน 'm' ของสตริง 'n'-length ด้วยเงื่อนไขนี้: ทุกสายใหม่ควรมีตัวอักษรที่ดัชนีเดียวกันของสายอื่น ๆ ตัวอย่างเช่นสตริงขาออกแรกต้องมีตัวอักษรตัวแรกของสตริงอินพุตทั้งหมดสตริงเอาต์พุตที่สองต้องมีตัวอักษรตัวที่สองของสตริงอินพุตทั้งหมดและอื่น ๆ ตัวอย่าง (ตัวเลขใต้ตัวอักษรเป็นดัชนีของสตริง): input: "car", "dog", "man", "yay" 012 012 012 012 output: "cdmy", "aoaa", "rgny" 0000 1111 2222 input: "money", "taken", "trust" 01234 01234 01234 output: "mtt", "oar", "nku", "ees", "ynt" 000 111 222 333 444 สมมติว่าอินพุตถูกต้องทุกครั้ง …
16 code-golf  string 

5
ทิ้งข้อความไว้
งาน: ทำโปรแกรมที่แสดงความคิดเห็นในคำถามนี้ 1234567890123456เนื้อหาที่ควรจะ การแก้ไข: คุณสามารถออกจากชื่อผู้ใช้และรหัสผ่านของคุณเป็นUและPถ้าคุณใช้ชื่อผู้ใช้และรหัสผ่าน (ถ้ามี) ไม่มีตัวย่อ URL (ถ้ามี) คุณไม่สามารถใช้คอนโซลเบราว์เซอร์

8
ลูกบอล ASCII ที่ตกลงมา
อินพุต คุณจะได้รับแผนที่ 2D พร้อมลูกบอลและพื้นดิน ดูเหมือนว่านี้: 1 5 2 3 4 __________________________ แต่ละหมายเลขคือลูกบอลและ_ระดับพื้นดิน ห้ามใช้_อักขระขีดล่างในบรรทัดอื่นที่ไม่ใช่บรรทัดระดับพื้นดิน มีช่องว่างบรรทัดใหม่และตัวเลขที่0-9อนุญาตเหนือระดับพื้นดิน คุณไม่สามารถสรุปได้ว่าบรรทัดสุดท้ายคือระดับพื้นดิน - อนุญาตให้มีบรรทัดว่างด้านล่างระดับพื้นดิน คุณยังสามารถเพิ่มช่องว่างเพื่อเติมบรรทัดว่างถ้าสิ่งนั้นช่วยคุณได้ ลูกบอลสามารถมีตัวเลขจาก0ถึง9สามารถวางเหนือกัน แต่ไม่สามารถอยู่ใต้พื้นดินได้ หมายเลขของลูกบอลจะไม่ซ้ำกัน สมมติว่าตัวละครแต่ละตัวเป็นหนึ่งเมตร รับแผนที่จาก pastebin! กรณีทดสอบ 1 - ควรบางสิ่งบางอย่างที่ส่งออกเช่นนี้ กรณีทดสอบ 2 - ควรผลิตผลเช่นเดียวกับแผนที่แรก ท้าทาย ความท้าทายของคุณคือการอ่านแผนที่แบบนั้นจากไฟล์หรือจากstdin- คุณได้รับอนุญาตให้ใช้cat balls.txt | ./yourexecutable- และความเร็วการส่งออกของลูกบอลแต่ละลูกเมื่อกระทบกับพื้น นี่คือสูตรสำหรับความเร็ว: สมมติว่าhเป็นความแตกต่างระหว่างหมายเลขบรรทัดหมายเลขบรรทัดพื้นดินและหมายเลขบรรทัดลูกและที่เท่าเทียมกันg10m/s^2 เอาท์พุต คุณควรส่งออกลูกบอลแต่ละหมายเลขและความเร็วในm/sระดับพื้นดิน ตัวอย่างเช่นN - Vm/sที่ไหนNคือหมายเลขบอลและVความเร็วของมัน คุณยังสามารถส่งออกอาร์เรย์ถ้าคุณต้องการ การเข้ารหัสที่มีความสุข! :)

9
การตรวจสอบสัญญาณเมทริกซ์สำรอง
เมทริกซ์สลับสัญญาณเป็นnโดยnเมทริกซ์ที่ประกอบด้วยตัวเลข -1, 0, 1, ดังกล่าวว่า: ผลรวมของแต่ละแถวและคอลัมน์คือ 1 รายการที่ไม่ใช่ศูนย์ในแต่ละแถวและคอลัมน์สลับกันลงชื่อเข้าใช้ เมทริกซ์เหล่านี้พูดคุยเรื่องเมทริกซ์การเปลี่ยนรูปแบบและจำนวนเมทริกซ์เช่นnนี้สำหรับดอกเบี้ยที่ได้รับในบางครั้ง พวกมันเกิดขึ้นเองตามธรรมชาติในระหว่างวิธีการควบแน่นของ Dodgson ของเมทริกซ์ดีเทอร์มิแนนต์ปัจจัย นี่คือตัวอย่างบางส่วนของเมทริกซ์สัญญาณ 4 คูณ 4: 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 -1 1 1 0 -1 1 1 0 …

12
ภาษา Geobitsian
ภาษา Geobitsianเป็นใหม่ที่บิดเบือนภาษาอังกฤษซึ่งคำแตกออกเป็นส่วน ๆ ซึ่งแต่ละส่วนจะต้องเริ่มต้นด้วยตัวอักษรที่แตกต่างกัน จากนั้นทุกครั้งที่ตัวอักษรเริ่มต้นตัวใดตัวหนึ่งปรากฏในสตริงอื่นตัวอักษรนั้นจะถูกแทนที่ด้วยส่วนที่สอดคล้องกันทั้งหมดของมัน กระบวนการนี้เรียกว่าGeobitsizing ตัวอย่างเช่นคำว่า " Geobits " อาจแบ่งออกเป็นgeo bitsและบทกวีไร้สาระ Algy met a Bear A Bear met Algy The Bear was bulgy The bulge was Algy จะถูก Geobitsized ด้วย Algeoy met a Bitsear A Bitsear met Algeoy The Bitsear was bitsulgeoy The bitsulgeoe was Algeoy เพราะทุกgกลายเป็นgeoทุกคนG(แม้จะมีผู้ใด) จะกลายเป็นGeoทุกคนbจะกลายเป็นbitsและทุกกลายเป็นBBits โปรดทราบว่าการทดแทนแต่ละครั้งจะดำเนินการตามสตริงเดิมไม่ใช่ขั้นตอนกลางใด …
16 code-golf  string 

7
ส่งสายจักรวาล
โทรจักรวาลเป็นข้อความที่ส่งเข้ามาในพื้นที่ในปี 1999 และปี 2003 มันทำจาก 23 127 * 127px ภาพขาวดำบิตแมปที่ระบุรายละเอียดที่นี่ ภารกิจของคุณคือการเขียนโปรแกรมที่แสดงข้อความ 127 * 2921px ทั้งหมดไม่ว่าจะเป็นข้อความ (ทำจากศูนย์ศูนย์และตัวแบ่งบรรทัด) หรือเป็นรูปภาพ (วาดบนหน้าจอหรือบันทึกไว้ในดิสก์) จะมีผู้ชนะสองประเภท: หนึ่งประเภทสำหรับข้อความและอีกหนึ่งประเภทสำหรับรูปภาพ เทคนิคทั้งหมดได้รับอนุญาตยกเว้นช่องโหว่ทั่วไป อนุญาตให้ส่งออก 23 หน้าแยกกัน อนุญาตให้เขียนโปรแกรมได้สูงสุด 23 โปรแกรม (เช่นเดียวสำหรับแต่ละหน้า) และรวมขนาดเพื่อกำหนดคะแนนของคุณ ได้รับอนุญาตให้ใช้ไฟล์ไบนารีได้สูงสุด 23 ไฟล์ข้างๆโปรแกรมของคุณ น้ำหนักของพวกเขาจะถูกนับในคะแนนของคุณ รหัสที่สั้นที่สุด (เป็นไบต์) ชนะ ที่ 1 บิตต่อพิกเซลภาพประกอบด้วย 127 * 127 * 23/8 = 46370 ไบต์ + 7 บิตของข้อมูล …

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