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

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

11
ต่อต้านการคาดเดาโดยอัตโนมัติประกอบเพลงที่มีพยัญชนะ
ขอบคุณ @ComradeSparklePony สำหรับชื่อเรื่อง ความท้าทายนี้น่าจะง่ายมาก คุณจะได้รับสามรายการ แรกคือรายการของชื่อในกรณีชื่อ ที่สองคือรายการของคำคุณศัพท์ในกรณีที่ต่ำกว่า ที่สามคือรายการของคำนามในกรณีที่ต่ำกว่า <Name>'s <adjective> <noun>กรุณาสุ่มเลือกชื่อคำคุณศัพท์ตัวเลือกและคำนามและเอาท์พุท อย่างไรก็ตามแต่ละคำจะต้องเริ่มต้นด้วยตัวอักษรเดียวกัน คุณสามารถสันนิษฐานได้ว่าทุกคำขึ้นต้นด้วยตัวอักษร นอกจากนี้คุณยังสามารถสมมติ (แต่จดบันทึกคำตอบของคุณหากทำ): คำทั้งหมดนั้นประกอบด้วยตัวอักษรแบบตัวอักษรเท่านั้น มีคำนามอย่างน้อยหนึ่งชื่อสำหรับแต่ละชื่อ มีอย่างน้อยหนึ่งชื่อสำหรับแต่ละคำนาม อย่างไรก็ตามคุณไม่สามารถสันนิษฐานได้ว่ามีคำคุณศัพท์สำหรับคู่ของชื่อและคำนามเนื่องจากคำคุณศัพท์เป็นตัวเลือกดังนั้นผลลัพธ์จะยังคงใช้ได้ คุณไม่จำเป็นต้องเลือกจดหมายที่ใช้ร่วมกันอย่างสม่ำเสมอแม้ว่าตัวอักษรที่มีทั้งหมดจะต้องมีโอกาสที่ไม่เกิดขึ้น อย่างไรก็ตามคุณจะต้องตรวจสอบให้แน่ใจว่าผลลัพธ์ทั้งหมดสำหรับจดหมายที่ให้นั้นมีโอกาสใกล้เคียงกันที่จะเกิดขึ้นมากที่สุดเท่าที่จะทำได้ภายในขอบเขตของตัวสร้างตัวเลขสุ่มของภาษาของคุณ ในกรณีของคำคุณศัพท์สิ่งนี้เทียบเท่ากับการมีคำศัพท์พิเศษหมายถึง "ไม่มีคำคุณศัพท์สำหรับจดหมายฉบับนี้" ซึ่งมีโอกาสเช่นเดียวกับคำคุณศัพท์ทั้งหมดสำหรับจดหมายฉบับนั้น ตัวอย่างรายการอินพุต: Joan Neil Nicola Oswald Sherman Stephanie new novel old original second silent jeep noun novel output second sheep snake ตัวอย่างเอาต์พุตสำหรับอินพุตเหล่านี้ (แต่ละบรรทัดเป็นตัวอย่างแยกต่างหาก): Stephanie's second second Sherman's …
15 code-golf  random 

11
คำสั่งซื้อใหม่ # 2: Turn My Way
บทนำ(อาจถูกละเว้น) การใส่ตัวเลขบวกทั้งหมดในลำดับปกติ (1, 2, 3, ... ) นั้นน่าเบื่อนิดหน่อยใช่ไหม? ดังนั้นนี่คือชุดของความท้าทายรอบพีชคณิต (reshuffelings) ของจำนวนบวกทั้งหมด นี่คือความท้าทายที่สองในชุดนี้ ความท้าทายแรกสามารถพบได้ที่นี่ ในความท้าทายนี้เราใช้รหัสสีเทาเพื่อจัดเรียงหมายเลขตามธรรมชาติ รหัสสีเทาหรือ "รหัสไบนารีที่สะท้อนกลับ" เป็นการเข้ารหัสแบบไบนารีในลักษณะที่ค่าต่อเนื่องสองค่าแตกต่างกันในหนึ่งบิตเท่านั้น การประยุกต์ใช้ในทางปฏิบัติของการเข้ารหัสนี้คือการใช้ในการเข้ารหัสโรตารี่จึงอ้างอิงของฉันไป"เปิดทาง" โปรดทราบว่าการเข้ารหัสนี้จะให้อิสระในระดับหนึ่ง ตัวอย่างเช่นต่อไปนี้ไบนารี 1100 มีสี่รหัสต่อไปนี้จะเป็นไปได้: 1101 1110 1000 และ 0100. นี่คือเหตุผลที่ฉันจะกำหนด( n )เป็นที่เล็กที่สุดค่าไม่ได้ใช้ก่อนหน้านี้ว่ามีความแตกต่างเพียงตัวละครตัวหนึ่งในการเข้ารหัสแบบไบนารี ลำดับนี้สอดคล้องกับA163252a ( n )a(n)a(n) ตั้งแต่นี้เป็น "ลำดับบริสุทธิ์" ความท้าทายของงานคือการส่งออก( n )สำหรับให้nเป็น input ที่( n )เป็นA163252a ( n )a(n)a(n)nnna ( n )a(n)a(n) งาน …

30
เขียนฟังก์ชั่น [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 เดือนที่ผ่านมา ฉันไม่อยากเชื่อเลยว่าความท้าทายนี้ไม่มีอยู่จริง ความท้าทาย เขียนฟังก์ชั่น โดยเฉพาะ โปรแกรมของคุณต้องกำหนดฟังก์ชั่น callable บางประเภท ซึ่งรวมถึงสิ่งที่รู้จักกันทั่วไปว่าเป็นฟังก์ชันฟังก์ชันแลมบ์ดาหรือรูทีนย่อย callables ประเภทนี้ทั้งหมดจะถูกเรียกว่า "ฟังก์ชั่น" ในโพสต์นี้ อินพุตไปยังฟังก์ชันเป็นทางเลือกและไม่จำเป็น ค่าส่งคืนจากฟังก์ชั่นเป็นตัวเลือกและไม่จำเป็น แต่การควบคุมจะต้องกลับไปที่โปรแกรมการโทร ต้องกำหนดฟังก์ชั่นให้กับตัวแปรบางประเภทเพื่อให้สามารถเข้าถึงได้ในภายหลัง ซึ่งรวมถึงการมอบหมายทางอ้อม (ในภาษาทั่วไปส่วนใหญ่ที่ประกาศฟังก์ชั่นที่มีชื่อเพิ่มชื่อในขอบเขตปัจจุบันโดยอัตโนมัติ) และการมอบหมายโดยตรง (การกำหนดฟังก์ชั่นที่ไม่ระบุชื่อให้ตัวแปรโดยตรง) ไม่จำเป็นต้องตั้งชื่อฟังก์ชัน ฟังก์ชั่นจะต้องสร้างขึ้นโดยคุณ - คุณก็ไม่สามารถกำหนดฟังก์ชั่นเริ่มต้นจากภาษาให้กับตัวแปร ไม่มีช่องว่างมาตรฐานกรุณา นี่คือโค้ดกอล์ฟดังนั้นคะแนนต่ำสุดในหน่วยไบต์ชนะ

9
ม้วนพรม
คำถามนี้เป็นแรงบันดาลใจคำถามเควิน Cruijssen ของ ตอนนี้เราวางพรมออกแล้ว งานของคุณคือการเขียนโปรแกรมที่ใช้สตริงและส่งกลับเกลียวที่ทำจากสายนี้ (แสดงถึงพรมที่ถูกรีดจากด้านข้าง) ขั้นตอนสำหรับการรีดพรมหนึ่งขั้นตอนมีดังต่อไปนี้ มีตัวอย่างเพื่ออธิบายสิ่งที่ฉันหมายถึง ขอให้สังเกตว่าตัวอย่างเริ่มต้นด้วยพรมรีดบางส่วนเพื่อความเข้าใจที่ดีขึ้น: ac rpet แยก "หัว" ออกจาก "หาง" ของพรม: หัวคือสิ่งที่ได้รับการม้วนจนถึงหางเป็นสิ่งที่เหลืออยู่จะต้องรีด Head: ac Tail: rp et หมุนหัว 90 °ตามเข็มนาฬิกา Rotated head: ra Tail (unchanged): pc et ถ้าความกว้างของหัวใหม่ (ที่นี่2) น้อยกว่าหรือเท่ากับความยาวของหาง (ที่นี่2) จากนั้นวางไว้บนหาง มิฉะนั้นพรม (เหมือนที่จุดเริ่มต้นของขั้นตอน) ถูกรีด New carpet: ra pc et ทำซ้ำขั้นตอนซ้ำหลาย ๆ ครั้งตามต้องการ สองตัวอย่างแสดงขั้นตอนทั้งหมดของการกลิ้งพรม: carpet …
15 code-golf  string 

22
แจกการ์ดให้กับผู้เล่น
คืนนี้เป็นคืนการ์ดเกม! คุณเป็นตัวแทนจำหน่ายและงานของคุณคือการเขียนโปรแกรมเพื่อแจกไพ่ให้ผู้เล่น เมื่อมีอาร์เรย์ของการ์ดและจำนวนของผู้เล่นคุณจะต้องแบ่งไพ่ออกเป็นมือสำหรับผู้เล่นแต่ละคน กฎระเบียบ โปรแกรมของคุณจะได้รับอาเรย์ไม่ว่างเปล่าเช่นเดียวกับที่ไม่ใช่ศูนย์จำนวนเต็มบวกA nอาเรย์จะถูกแบ่งออกเป็นnสองส่วน หากความยาวของสตริงไม่สามารถหารด้วยnการ์ดที่เหลือใด ๆ ในตอนท้ายควรแจกจ่ายให้เท่า ๆ กัน หากn==1คุณจะต้องส่งกลับอาร์เรย์ของอาร์เรย์ด้วยAเนื่องจากเป็นองค์ประกอบเท่านั้น หากnมากกว่าความยาวAคุณจะต้องกลับมือทุกครั้งและมือเปล่า ถ้าn = 4และarray A = [1,2,3]คุณควรจะกลับหรือ[[1],[2],[3]] [[1],[2],[3],[]]คุณมีอิสระในการจัดการมือเปล่าด้วยเปล่า, ไม่ได้กำหนดหรือเป็นโมฆะ อาร์เรย์สามารถมีชนิดใดก็ได้แทนที่จะเป็นตัวเลข คุณไม่ควรเปลี่ยนลำดับของอาเรย์ขณะทำการซื้อขาย ตัวอย่างเช่นif n = 2และA= [1,2,3]ผลลัพธ์ใด ๆ ที่มากกว่า[[1,3],[2]]จะไม่ถูกต้อง กรณีทดสอบ n A Output 1 [1,2,3,4,5,6] [[1,2,3,4,5,6]] 2 [1,2,3,4,5,6] [[1,3,5],[2,4,6]] 3 [1,2,3,4,5,6] [[1,4],[2,5],[3,6]] 4 [1,2,3,4,5,6] [[1,5],[2,6],[3],[4]] 7 [1,2,3,4,5,6] [[1],[2],[3],[4],[5],[6]] // …

9
การค้นหาช่องว่างในช่วงวันที่
ได้รับรายชื่อของช่วงวันที่rเป็นนำเข้าส่งออกหรือกลับช่วงใด ๆ rที่ไม่พบใน เพื่อประโยชน์ของตัวอย่างนี้อินพุตจะอยู่ในYYYY-MM-DDรูปแบบ สมมติว่าคุณมีช่วงวันที่สามช่วง: [2019-01-01, 2019-02-01] [2019-02-02, 2019-04-05] [2019-06-01, 2019-07-01] คุณจะเห็นว่ามีช่องว่างในระหว่างและ2019-04-052019-06-01 ผลลัพธ์จะเป็นช่องว่าง: [2019-04-06, 2019-05-31] กฎระเบียบ อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบวันที่หรือรูปแบบการรวบรวมใด ๆ ที่สมเหตุสมผลตราบใดที่สอดคล้องกัน สมมติว่าอินพุตไม่ได้รับคำสั่ง ช่วงวันที่ของคุณไม่จำเป็นต้องทำ[latest, earliest]แต่ต้องปฏิบัติตามกฎ 2 สมมติว่าไม่มีวันที่ทับซ้อนกันในอินพุต กรณีทดสอบ: การป้อนข้อมูล: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-04-05],[2019-06-01, 2019-07-01]] เอาท์พุท: [[2019-04-06, 2019-05-31]] การป้อนข้อมูล: [[2019-01-01, 2019-02-01],[2018-02-02, 2018-04-05],[2019-06-01, 2019-07-01]] เอาท์พุท: [[2018-04-06, 2018-12-31], [2019-02-02, 2019-05-31]] การป้อนข้อมูล: [[2019-01-01, 2019-02-01],[2019-02-02, 2019-03-02],[2019-03-03, 2019-07-01]] เอาท์พุท: [] …
15 code-golf  date 

8
การหมุนลายนิ้วมือคงที่
ลองนึกภาพเรามีบางpolyominoและต้องการที่จะระบุตัวตนของพวกเขา แต่ polyominos สามารถหมุนเพื่อสุ่มสี่สุ่มห้า hashing พวกเขาจะไม่ให้เราลายนิ้วมือเหมือนกันสำหรับชิ้นส่วนและการหมุนดังกล่าว (ทั่วไป) ตัวอย่างเช่นถ้าเรามี L-tetromino x x xx เราต้องการให้มีลายนิ้วมือเหมือนกับสิ่งเหล่านี้: xx x x xxx xxx , x or x หมายเหตุ:เราอนุญาตให้มีการหมุนบนเครื่องบินได้เท่านั้น (เช่นเป็นโพลีมิโนด้านเดียว) และดังนั้นโพลีโนมิโนต่อไปนี้จะเป็นอีกอันหนึ่ง: x x xx ท้าทาย ภารกิจสำหรับความท้าทายนี้คือการใช้ฟังก์ชั่นลายนิ้วมือ / โปรแกรมซึ่งใช้บูลีน / - เมทริกซ์ที่มีค่า / รายการของรายการ / สตริง / .. เข้ารหัสโพลีโน่และส่งกลับสตริง - ลายนิ้วมือของ polyomino ลายนิ้วมือจะต้องเท่ากันสำหรับการหมุนที่เป็นไปได้ทั้งหมด (โดยทั่วไป 4)m × nม.×nm\times …

4
Code Golf: Letter-Ception
ความท้าทาย: สำหรับอินพุตของตัวอักษร X หนึ่งตัว (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กจาก A ถึง Z) และหนึ่งหลัก N (0-9) พิมพ์ตัวอักษร X ที่สอดคล้องกันที่ทำจาก N * X จดหมายต้องมาจากรายการนี้: AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H A A B B C D D E F G H H AAAAA BBBB C D D EEEE FFFF G GG HHHHH A …

16
ดอกเบี้ยทบต้น ... ด้วยเงินของพ่อมด
Gringotts ไม่ได้เป็นเพียงแค่ตู้นิรภัย แต่สถาบันการเงินที่มีชื่อเสียงและพ่อมดต้องการสินเชื่อเช่นกัน เนื่องจากคุณไม่ต้องการถูกเมาโดยก๊อบลิน Gringotts คุณตัดสินใจว่ามันเป็นความคิดที่ดีที่จะเขียนโปรแกรมเพื่อคำนวณดอกเบี้ย คิดดอกเบี้ยทบต้นเพียงปีละครั้ง งานของคุณคือการคำนวณจำนวนเงินที่ค้างชำระทั้งหมดหลังจากดอกเบี้ยที่ได้รับเงินต้นอัตราดอกเบี้ยและเวลา (ทั้งปี) การดำเนินงานในเงินทั้งหมดของตัวช่วยสร้างเงินปัดเศษลงเป็น Knut ทั้งหมดที่ใกล้ที่สุด มีน็อตบรอนซ์ 29 อันในเคียวเงินและ 17 เคียวเกิลในโกลด์กัลเลียน ตัวอย่าง Loan taken out: 23 Knuts 16 Sickles 103 Galleons @ 7.250% For 3 years Total owed after interest: 24 Knuts 4 Sickles 128 Galleons หมายเหตุและกฎ อินพุตและเอาต์พุตอาจอยู่ในรูปแบบที่สะดวก คุณต้องใช้ Knuts, Sickles, Galleons, อัตราดอกเบี้ยและเวลา ทั้งหมด …
15 code-golf  math 

13
มีพยางค์กี่ตัวในจำนวนนั้น?
ฉันชอบที่จะใช้ตัวเลขและรู้ว่ามีกี่พยางค์ที่อยู่ในนั้นเมื่อพูดเป็นภาษาอังกฤษ ลอง จำกัด ให้เป็นจำนวนเต็มบวกซึ่งน้อยกว่าหนึ่งพัน ฉันเป็นคนอังกฤษดังนั้นเราจะไปตามคอลัมน์นับร้อยด้วย 'และ' เมื่อมีตัวเลขที่ไม่ใช่ศูนย์หลังจากนั้น ความท้าทาย เขียนโค้ดบางส่วนที่จะยอมรับจำนวนเต็มบวกที่ต่ำกว่า 1,000 และส่งออกจำนวนพยางค์ในคำที่เป็นตัวแทนของตัวเลขนั้นในภาษาอังกฤษแบบอังกฤษ มันไม่จำเป็นต้องสร้างคำเพื่อแสดงตัวเลขเพียงจำนวนพยางค์ที่มี มันคือรหัสกอล์ฟพยายามที่จะทำให้สำเร็จในจำนวนไบต์น้อยที่สุด ใช้ภาษาที่คุณชอบ ห้ามช่องโหว่มาตรฐาน กรณีทดสอบ | N | In words | Syllables | | 1 | one | 1 | | 2 | two | 1 | | 3 | three | 1 | | 4 | four | …

10
แปลงรหัสวันที่ของ Excel เป็น“ date”
รับรหัสวันที่ในรูปแบบ Excel ที่ไม่เป็นลบจำนวนเต็มคืนค่า "วันที่" ที่สอดคล้องกันในรูปแบบที่สมเหตุสมผลซึ่งแสดงปีเดือนและ "วัน" อย่างชัดเจน เล็กน้อยคุณอาจคิดว่า คุณสังเกตเห็น "คำพูดที่ทำให้ตกใจ" หรือไม่? ฉันใช้สิ่งเหล่านี้เพราะ Excel มีข้อผิดพลาดบางอย่าง Excel นับวันที่มีจำนวน 1 มกราคม 1 ST 1900 แต่เป็นถ้า 1900 มี 0 มกราคมปีบริบูรณ์และ 29 กุมภาพันธ์ปีบริบูรณ์จึงควรระมัดระวังมากที่จะลองกรณีทดสอบทั้งหมด: Input → Output (example format) 0 → 1900-01-00 Note: NOT 1899-12-31 1 → 1900-01-01 2 → 1900-01-02 59 → 1900-02-28 60 → …

7
ปัญหาคำขี้เกียจ
สรุป มีการบอกให้ครูเตรียมปัญหาคำศัพท์สำหรับนักเรียน เธอได้รับรายการสมการและบอกให้เขียนเป็นปัญหาคำที่เกี่ยวข้อง อย่างไรก็ตามเธอขี้เกียจมากเธอจึงไม่ใส่ความคิดสร้างสรรค์ลงไปมากนัก แต่เธอเขียนมันอย่างแท้จริง ตัวอย่างเช่นเมื่อเธออ่าน1+1เธอเขียนone plus one, 47 * 2จะกลายเป็นforty seven times twoและจะกลายเป็น 56.2 / 7.4fifty six point two divided by seven point four เขียนรหัสเพื่อช่วยครูขี้เกียจคนนี้ รายละเอียด ตัวเลขอาจมีจุดทศนิยมและเครื่องหมายลบ ตัวเลขควรเขียนในระดับสั้น (เช่น1,000,000,000คือone billion) ตัวเลขสามารถเพิ่มได้สูงสุด 999,999,999,999,999,999 ( nine hundred ninety nine quadrillion...nine hundred ninety nine) กลุ่มของศูนย์จะต้องถูกปล่อยออกไป เช่น1,000,000เป็นไม่ได้one millionone million zero thousand zero hundred …
15 code-golf  string 

9
ซ่อนสิ่งปลูกสร้าง
เวอร์ชั่นสั้นของChallenge ตึกระฟ้า งาน เมื่อกำหนดความสูงของอาคารและจำนวนเต็มบวกkให้ค้นหาการเรียงสับเปลี่ยนทั้งหมด (โดยไม่ซ้ำกัน) ของความสูงดังกล่าวเพื่อให้kอาคารสามารถมองเห็นได้ สิ่งปลูกสร้างใด ๆ จะซ่อนสิ่งปลูกสร้างที่เตี้ยกว่าหรือเท่ากับ รูปแบบใด ๆ สำหรับอินพุตและเอาต์พุตนั้นถูกต้อง อาร์เรย์อินพุตจะไม่ว่างเปล่า ในกรณีที่เป็นไปไม่ได้ที่จะเห็นอาคารหลายหลังให้ส่งสิ่งที่ไม่สามารถตอบได้ แต่ไม่มีข้อผิดพลาด ตัวอย่าง: (ความยาวของเอาต์พุตถูกแสดงสำหรับเอาต์พุตที่ยาวมาก แต่เอาต์พุตของคุณควรเป็นพีชคณิตที่เป็นไปได้ทั้งหมด) input:[1,2,3,4,5],2 output: 50 input:[5,5,5,5,5,5,5,5],2 output: [] input:[1,2,2],2 output:[(1,2,2)] Seeing from the left, exactly 2 buildings are visible. input:[1,7,4],2 output:[(4, 7, 1), (1, 7, 4), (4, 1, 7)] input:[1,2,3,4,5,6,7,8,9],4 output:67284 input:[34,55,11,22],1 output:[(55, 34, …

11
สร้างตัวเลขคร่าวๆ
พื้นหลัง จำนวนnสามารถอธิบายเป็นB-rough ถ้าทั้งหมดของปัจจัยที่สำคัญของการอย่างเคร่งครัดเกินnB ความท้าทาย รับจำนวนเต็มบวกสองตัวBและkเอาท์พุทk Bตัวเลขผ่านครั้งแรก ตัวอย่าง อนุญาตf(B, k)เป็นฟังก์ชั่นที่ส่งกลับชุดที่มีk Bตัวเลขที่ผ่านครั้งแรก > f(1, 10) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 > f(2, 5) 1, 3, 5, 7, 9 > f(10, 14) 1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59

8
อินนิ่งคืออะไร
เป้าหมาย ในแง่ของ World Series ที่อยู่ใกล้ ๆ ฉันต้องการโปรแกรมที่สามารถอ่านคะแนนกล่องและบอกฉันว่ามันคืออะไร มีความซับซ้อนเล็กน้อยเนื่องจากเบสบอลใช้วิธีแปลก ๆ ในการบันทึกคะแนน พวกเขาไม่ได้เขียนคะแนนของทีม at-bat สำหรับโอกาสจนกว่าพวกเขาจะได้คะแนน (และยังคงดำเนินต่อไป) หรือจบ at-bat ดังนั้น 0 บนสกอร์บอร์ดจะหมายถึงค้างคาวที่เสร็จแล้วเสมอ ตัวอย่างเช่น: Example A: Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9| Them| 0| 0| 0| 0| 0| 2| | | | Us| 0| 0| 2| 0| 0| 0| | …
15 code-golf 

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