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

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

16
จำนวนเฉพาะเป็นจำนวนมาก
ให้เป็นจำนวนมาก (ในฐาน 10) เช่น 1234567891011121314151617 ให้หา "subnumbers" ที่สำคัญในนั้น Prime "หมายเลขย่อย" คือลำดับของตัวเลขที่ต่อเนื่องกัน (นำมาจากอินพุต) ซึ่งแสดงถึงจำนวนเฉพาะ (ในฐาน 10) อินพุต : ตัวเลข (ทั้งสตริงไฟล์หรืออะไรก็ได้ที่คุณต้องการ) เอาท์พุท : หมายเลขย่อยหลักทั้งหมดแยกออกจากกัน (ในรายการไฟล์สตริงที่คั่นด้วยเครื่องหมายจุลภาค ... ) หากผลลัพธ์ว่างเปล่าคุณสามารถใช้การประชุมที่คุณชอบ (สตริงฮาร์ดโค้ดสตริงว่างเปล่าซึ่งพูดพล่อยๆ แต่โปรแกรมไม่ควร ชน ตัวอย่าง 1234 -> 2, 3, 23 6542 -> 5, 2 14 -> [.. เอาต์พุตที่ว่างเปล่า] นี่คือรหัสกอล์ฟ โปรแกรมที่สั้นที่สุดชนะ! [แก้ไข]: กฎเพิ่มเติมต้องอธิบายโปรแกรม! ไม่ใช่ทุกคนที่สามารถใช้ภาษาเยลลี่ได้อย่างคล่องแคล่ว :)

12
แยกมัน. แต่ไม่ใช่ทั้งหมด!
แรงบันดาลใจจากคำถาม StackOverflow นี้ การป้อนข้อมูล: เราจะรับสามอินพุต: อักขระตัวคั่นที่Dจะแยก ตัวละครIระหว่างสองตัวที่เราไม่สนใจอักขระตัวคั่น (ฉันรู้ว่ามันฟังดูคลุมเครือ แต่ฉันจะอธิบายด้านล่าง) สตริง S เอาท์พุท: รายการ / อาร์เรย์ที่มีสตริงย่อยหลังจากการแยก ตัวอย่าง: Input: D = ',' I = '"' S = '11020199,"Abc ",aduz,,444,bieb,dc,2 ,2222.00,whatever 5dc,222.22,22.00,"98,00","12,000,000",21-09-2018, 06:00,",-,"' Output: ['11020199', 'Abc ', 'aduz', '', '444', 'bieb', 'dc', '2 ', '2222.00', 'whatever 5dc', '222.22', '22.00', '98,00', '12,000,000', '21-09-2018', ' …
11 code-golf  string 

9
เกมการพนันในเทศกาลไหว้พระจันทร์
พรุ่งนี้เป็นเทศกาลกลางฤดูใบไม้ร่วงและด้วยจิตวิญญาณของวันหยุดฉันจะแนะนำเกมการพนันที่เรา (ผู้คนจากเซียะเหมิน ) เล่นในช่วงวันหยุด! กฎระเบียบ เกมนี้เล่นโดยใช้ลูกเต๋า 6 ลูก 6 ด้าน การรวมกันของตัวเลขต่างกันมีอันดับที่แตกต่างกันโดยเน้นเป็นพิเศษทั้งสี่และคน งานของคุณคือการเขียนโปรแกรม / ฟังก์ชั่นที่จะจัดอันดับมือให้ได้รับ 6 ลูกเต๋า นี่คืออันดับ (ฉันได้แก้ไข / ลดความซับซ้อนของกฎเล็กน้อย): ฉันเดาว่ามีเพียงคนจีนเท่านั้นที่สามารถทำสิ่งนี้ได้! โอเคนี่เป็นคำอธิบายภาษาอังกฤษ 0: 4 fours และ 2 คน 1: 6 fours 2: 6 รายการ 3: 6 ของทุกชนิดยกเว้นสี่และคน 4: 5 fours 5: 5 ทุกชนิดยกเว้นสี่ 6: 4 fours 7: ตรง (1-6) 8: …
11 code-golf  game 

5
Centrosymmetrization น้อยที่สุด
ที่เกี่ยวข้องกัน วัตถุประสงค์:รับเมทริกซ์ของจำนวนเต็มบวกให้เอาท์พุตเมทริกซ์สมมาตรที่เล็กที่สุดซึ่งมี (เมทริกซ์นี้อาจมีจำนวนเต็มบวกที่ไม่เป็นบวก)เอ็มMMMMMM เมทริกซ์ centrosymmetric เป็นเมทริกซ์จตุรัสที่มีสมมาตรการหมุนของคำสั่งที่ 2 นั่นคือเมทริกซ์ยังคงเหมือนเดิมหลังจากหมุนสองครั้ง ยกตัวอย่างเช่นเมทริกซ์แบบสมมาตรมีองค์ประกอบด้านบนซ้ายเหมือนกับด้านล่างขวาและองค์ประกอบด้านบนตรงกลางเหมือนกับด้านล่างตรงกลาง ภาพข้อมูลที่มีประโยชน์สามารถพบได้ที่นี่ เพิ่มเติมอย่างเป็นทางการได้รับเมทริกซ์ผลิตเมทริกซ์จัตุรัสดังกล่าวว่าเป็น centrosymmetric และและไม่มีอื่นใดอีกตารางเมทริกซ์ดังกล่าวว่าNN N M ⊆ N K ติ่มซำK &lt; dim NMMMNNNNNNM⊆NM⊆NM\subseteq NKKKdimK&lt;dimNdim⁡K&lt;dim⁡N\dim K<\dim N AAAคือเซตย่อยของ (สัญกรณ์: ) หากแต่ละค่าปรากฏที่ดัชนีสำหรับคู่ของจำนวนเต็มบางคู่นายก)BBBA⊆BA⊆BA\subseteq BAi,jAi,jA_{i,j}Bi+i′,j+j′Bi+i′,j+j′B_{i+i^\prime,j+j^\prime}(i′,j′)(i′,j′)(i^\prime, j^\prime) หมายเหตุ : เมทริกซ์บางตัวมีวิธีแก้ปัญหาหลายอย่าง (เช่น[[3,3],[1,2]]การแก้ไขตาม[[2,1,0],[3,3,3],[0,1,2]]หรือ[[3,3,3],[1,2,1],[3,3,3]]); คุณต้องแสดงผลลัพธ์อย่างน้อยหนึ่งในโซลูชันที่ถูกต้อง กรณีทดสอบ input example output [[1, 2, 3], [4, 5, 6]] [[1, 2, 3, 0], …

4
ลำดับชุดการเพิ่มที่เพิ่มมากขึ้น
พื้นหลัง ลำดับชุดอดีตที่เพิ่มขึ้นของการสั่งซื้อถูกกำหนดให้เป็นลำดับของชุดจำนวนเต็มซึ่งตอบสนองความต่อไปนี้:S 1 , S 2 , ⋯ , S nยังไม่มีข้อความยังไม่มีข้อความNS1, S2, ⋯ , SnS1,S2,⋯,SnS_1,S_2,\cdots,S_n แต่ละเป็นส่วนหนึ่งที่ไม่ว่างเปล่าของ{ 1 , 2 , ⋯ , N }SผมSผมS_i{ 1 , 2 , ⋯ , N}{1,2,⋯,ยังไม่มีข้อความ}\{1,2,\cdots,N\} สำหรับ ,กล่าวคือชุดที่ต่อเนื่องกันสองชุดไม่มีองค์ประกอบที่เหมือนกัน1 ≤ i &lt; n1≤ผม&lt;n1\le i<nSผม∩ Sฉัน+ 1= ∅Sผม∩Sผม+1=∅S_i \cap S_{i+1} = \varnothing สำหรับค่าเฉลี่ย (ค่าเฉลี่ย) ของเป็นอย่างเคร่งครัดน้อยกว่าที่1}S i S …

5
ติดตามวัตถุในพื้นที่ 2d
ลักษณะ งานของความท้าทายนี้คือการประดิษฐ์โปรแกรมหรือฟังก์ชั่นที่ติดตามวัตถุได้รับในn × nn×nn×nพื้นที่ I / O โปรแกรมของคุณจะได้รับ 3 อินพุตซึ่งอาจใช้วิธีการที่เหมาะสม : nจะมีขนาดเท่ากับด้านข้างของเครื่องบิน (ดังนั้นสำหรับn = 5n=5n=5เครื่องบินของคุณจะเป็น5 × 55×55×5 ) คุณอาจคิดว่าnจะเป็นจำนวนเต็มคี่เสมอ sจะเป็นตำแหน่งเริ่มต้นของวัตถุที่กำหนดเป็นคู่ของ(x,y)(x,y)(x, y)พิกัด Dจะเป็นเวกเตอร์ของคู่ที่สั่ง Dจะเป็นไปตามรูปแบบD=[(d0,t0),(d1,t1),...,(dn,tn)]D=[(d0,t0),(d1,t1),...,(dn,tn)]D = [(d_0,t_0),(d_1,t_1),...,(d_n,t_n)]ซึ่งdkdkd_kจะเป็นหนึ่งของ'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'สำหรับพระคาร์ดินัลและทิศทาง intercardinal หลักและtktkt_kจะเป็นจำนวนเต็มสำหรับจำนวนของ 'เห็บฯ เมื่อได้รับอินพุตเหล่านี้โปรแกรมของคุณจะต้องส่งออกการติดตามวัตถุในระนาบ กฎระเบียบ เอาท์พุทจะต้องมีขอบเขตของเครื่องบิน เช่น: - 21012 + + ┌─────┐ 2││ 1││ 0││ 1││ 2││ -└─────┘ …

5
หัวหอมหรือไม่หัวหอม?
หัวหอม (คำเตือน: บทความหลายเรื่องเป็น NSFW) เป็นองค์กรข่าวเหน็บแนมที่ล้อเลียนสื่อข่าวแบบดั้งเดิม ในปี 2014 The Onion เปิดตัวClickHole (คำเตือน: บ่อยครั้งที่ NSFW) เว็บไซต์ข่าวเสียดสีที่ล้อเลียนเว็บไซต์ "clickbait" เช่น BuzzFeed ต้องขอบคุณกฎหมายของโพจึงเป็นเรื่องปกติที่ผู้คนจะอ่านหัวข้อข่าวของ The Onion หรือ ClickHole และเชื่อว่าพวกเขาเป็นจริงโดยไม่รู้ว่าพวกเขาตั้งใจจะเสียดสี การสนทนายังเกิดขึ้นกับข่าวจริงที่ไร้สาระทำให้เกิดเสียง - ผู้คนมักคิดว่าพวกเขาเป็นถ้อยคำเมื่อพวกเขาไม่อยู่ ความสับสนนี้ทำให้ตัวเองเป็นเกม - ได้รับพาดหัวข่าว, พยายามที่จะเดาว่ามันเป็นการเสียดสีหรือไม่ ความท้าทายนี้เกี่ยวกับการทำเช่นนั้นกับโปรแกรม รับพาดหัวข่าว (สตริงที่ประกอบด้วยอักขระ ASCII และช่องว่างที่พิมพ์ได้เท่านั้น) เอาต์พุต1หากพาดหัวเป็นถ้อยคำหรือ0หากไม่ใช่ คะแนนของคุณจะเป็นจำนวนผลลัพธ์ที่ถูกต้องหารด้วยจำนวนหัวข้อทั้งหมด ตามปกติช่องว่างมาตรฐาน (โดยเฉพาะการปรับให้เหมาะสมที่สุดสำหรับกรณีทดสอบ ) ไม่ได้รับอนุญาต ในการบังคับใช้สิ่งนี้ฉันจะเรียกใช้โปรแกรมของคุณในชุดกรณีทดสอบที่ซ่อน 200 ชุด (100 ชุดจาก The Onion, 100 จาก …

2
ขนมปังขี้เกียจ
ฉันทำงานที่ร้านเบเกอรี่ที่ให้บริการข้าวสาลีข้าวไรย์ข้าวบาร์เลย์ธัญพืชและขนมปังฝรั่งเศส แต่คนทำขนมปังแปลก ๆ เล็กน้อย - เขากองก้อนเรียงตามลำดับแบบสุ่มและบางครั้งก็ออกจากชั้นวางที่ว่าง ในแต่ละวันลูกค้ารายเดิมเข้ามาและขอขนมปังหนึ่งก้อน แต่สิ่งที่ยุ่งยากก็คือเขาเป็น germophobe ดังนั้นเมื่อฉันเติมกระเป๋าของเขาฉันไม่สามารถนำก้อนจากชั้นวางติดกันสองชั้นในการเลือกต่อเนื่อง ใช้เวลาหนึ่งวินาทีในการเดินระหว่างชั้นวางที่อยู่ติดกัน มันเป็นร้านยุ่ง สำหรับการกำหนดค่าแบบสุ่มใด ๆ ของก้อนฉันต้องการลดเวลาที่ใช้ในการรับหนึ่งในแต่ละก้อนที่ไม่ซ้ำกัน ฉันสามารถเริ่มต้นและสิ้นสุดที่ชั้นวางใดก็ได้ หากการสั่งซื้อของวันนี้เป็นW B W G F R Wเส้นทางที่เป็นไปได้0, 3, 5, 1, 4รวมเป็น 12 วินาที:abs(3-0) + abs(5-3) + abs(1-5) + abs(4-1) = 12 ( 1, 2, 3, 4, 5ใช้งานไม่ได้เนื่องจากมีการหยิบขนมปังติดต่อกันจากชั้นวางที่อยู่ติดกัน) หากB W B G B F B …

13
เกณฑ์การให้คะแนน Briscola
บทนำ Briscolaเป็นหนึ่งในเกมไพ่ยอดนิยมของอิตาลี มันเป็นเกมไพ่ที่เล่นเล่ห์เหลี่ยมเช่น Bridge Briscola เป็นที่รู้จักกันดีสำหรับระบบจุดที่แปลกประหลาด ในความท้าทายนี้เมื่อได้รับไพ่สองใบคุณจะแสดงผลไม่ว่าคะแนนแรกจะเพิ่มขึ้นน้อยลงหรือจำนวนแต้มเท่ากันเป็นอันดับที่สองในระบบคะแนนของ Briscola ท้าทาย Briscola เล่นกับสำรับไพ่ของอิตาลี มีไพ่สี่สิบใบในสำรับไพ่ 1-10 ในแต่ละชุดไพ่ทั้งสี่ใบ: ถ้วยดาบสโมสรและเหรียญ เราจะเพิกเฉยต่อความท้าทายนี้ ไพ่ 2 - 7 คือไพ่ที่เป็นตัวเลขและไพ่ 8, 9 และ 10 คือไพ่หน้า อันดับของไพ่จากมากไปน้อยคือ: +------------------------+-------------+ | Cards, by Rank | Point Value | +------------------------+-------------+ | Ace (1) | 11 | | Three (3) | 10 | | …

2
Camel Up Cup: การแข่งขันเกมกระดาน AI
Camel Up Cup 2k18 ในความท้าทายนี้เราจะเล่นเกมกระดานที่ได้รับความนิยมอย่าง Camel Up อูฐ! เป็นเกมกระดานที่มีผู้เล่นวางเดิมพันบนอูฐเพื่อชนะรอบชนะเกมหรือแพ้เกมตั้งกับดักที่มีอิทธิพลต่อการเคลื่อนไหวหรือย้ายอูฐ การตัดสินใจแต่ละครั้งจะให้รางวัลแก่คุณเมื่อมีโอกาสได้รับเงินซึ่งเป็นสิ่งที่กำหนดผู้ชนะ ผู้เล่นควรใช้ความน่าจะเป็นข้อควรพิจารณาเกี่ยวกับสถานะเกมและการครอบครองคู่ต่อสู้เพื่อทำการตัดสินใจ นี่คือวิดีโอสั้น ๆ แสดงผู้เล่นวิธีการเล่น วิธีการเล่น นี่คือความคิดคร่าวๆของวิธีการเล่น การดูวิดีโออย่างใดอย่างหนึ่งอาจมีประโยชน์มากกว่าเพราะมีภาพ :) ในเทิร์นของคุณคุณมี 4 ตัวเลือก ย้ายอูฐ นี่เป็นการเลือกอูฐจากผู้ที่ไม่ได้ย้ายและย้ายระหว่าง 1-3 ช่องว่าง คุณได้รับ 1 เหรียญ รอบสิ้นสุดเมื่ออูฐทั้งห้าเคลื่อนไหวแล้วพวกเขาก็สามารถเคลื่อนไหวได้ทั้งหมด วางกับดัก สิ่งนี้จะปรากฏบนกระดานจนกระทั่งสิ้นสุดรอบ คุณเลือก +1 กับดัก หากอูฐหรืออูฐสแต็คตกลงมาพวกมันจะเคลื่อนที่ +1 และคุณจะได้รับเหรียญ คุณไม่สามารถวางกับดักในสี่เหลี่ยมจัตุรัสคุณสามารถวางกับดักที่ที่อูฐอยู่แม้ว่ามันจะมีผลกับอูฐที่ตกลงมาบนหลังเท่านั้น เดิมพันผู้ชนะรอบ คุณเดิมพันกับผู้ชนะรอบ พวกเขาชนะคุณจะได้รับ 5/3/2/1 ทั้งนี้ขึ้นอยู่กับว่าคุณเป็นคนที่ 1/2/3 เพื่อเดิมพันกับอูฐนั้น ผู้ชนะเกม / ผู้แพ้ คุณเดิมพันว่าใครจะเป็นคนแรกหรือคนสุดท้ายในตอนท้ายของเกม คุณได้รับ …

2
บล็อกพาร์ทิชันสตริง
แรงบันดาลใจ พิจารณารายการlประกอบด้วยตัวเลข กำหนดดำเนินการบล็อกที่ดัชนีiอยู่ในรายชื่อlที่จะทำหน้าที่ในการเคลื่อนย้าย 3 องค์ประกอบติดต่อกันเริ่มต้นจากiในlไปยังจุดสิ้นสุด ตัวอย่าง: l, i (1-indexing) -&gt; l (after applying block operation at index i) [1,2,3,4,5], 1 -&gt; [4,5,1,2,3] [1,2,3,4,5,6,7], 3 -&gt; [1,2,6,7,3,4,5] รับรายการที่ประกอบด้วยเพียง 0 และ 1 ความท้าทายของคุณคือการแบ่งพาร์ติชันเพื่อให้ศูนย์อยู่ข้างหน้าและรายการอยู่ด้านหลังโดยใช้การดำเนินการบล็อกเท่านั้น ผลลัพธ์ควรเป็นดัชนีตามลำดับที่ใช้กับรายการ เนื่องจากรายการนี้เป็นไปไม่ได้สำหรับ[1,0,1,0]ความยาวของรายการจึงรับประกันได้ว่าจะมีอย่างน้อย 5 รายการ กรณีทดสอบ (การจัดทำดัชนี 1 รายการ) (มีเอาต์พุตที่ถูกต้องอื่น ๆ ) [1,1,1,0,0] -&gt; [1] [0,1,0,1,0] -&gt; [1,2,1,1] [0,0,0,1,1,1,0,0,0] -&gt; …

14
วาดปิรามิดลูกหลาน (เพิ่มเติม)
ท้าทาย กำหนดลำดับของจำนวนเต็มแบบไม่ลบให้สร้างฟังก์ชันที่ส่งออกปิรามิดลูกหลานโดยที่เด็ก ๆ จะเป็นผลรวมของทั้งจำนวนผู้ปกครอง \tผลที่ได้คือเอาท์พุทเป็นสตริงโดยใช้แท็บ หมายเหตุ: ไม่จำเป็นต้องใช้แท็บต่อท้ายในแต่ละบรรทัด 1\t\t2\t\t3\n\t3\t\t5\t\n\t\t8\t\t results in 1 2 3 3 5 8 ผลลัพธ์ที่เป็นทางเลือกสามารถถูกเอาต์พุตเป็นอาร์เรย์โดยใช้ตำแหน่งว่างเป็นช่องว่าง [[1,,2,,3], [,3,,5,], [,,8,,]] ตัวอย่าง: ให้4,5,7,3,4,2เอาท์พุท: 4 5 7 3 4 2 9 12 10 7 6 21 22 17 13 43 39 30 82 69 151 กฎระเบียบ ใช้กฎมาตรฐานของกอล์ฟ อินพุตสามารถเป็นสตริงโดยใช้ตัวคั่นใด ๆ หรืออาร์เรย์ ขึ้นบรรทัดใหม่นำหน้าและต่อท้ายและแท็บได้รับอนุญาต (แต่ไม่จำเป็นตราบใดที่เอาต์พุตเป็นปิรามิดแบบกลับด้าน) …
11 code-golf 

1
ไม่ใช่แค่ตัวต่อสี่ตัวเท่านั้น
ในตัวแปรสี่ตัวต่อปริศนานี้คุณควรใช้มากถึงx x's(และไม่มีตัวเลขอื่น) และชุดปฏิบัติการที่กำหนดไว้เพื่อให้ถึงทุกหมายเลขตั้งแต่ 0 ถึง 100 หากx = 4คุณสามารถใช้งานได้มากถึงสี่4sและคำถามนี้จะกลายเป็นสี่แบบคลาสสิก ตัวต่อ (ยกเว้นคุณสามารถใช้ 4s ได้สูงสุดสี่ตัวแทนที่จะต้องใช้สี่อันอย่างแน่นอน) 1 &lt; x &lt;= 9เราคิด ในรุ่นนี้อนุญาตเฉพาะผู้ประกอบการดังต่อไปนี้: การบวก ( +) การลบ ( -) การคูณ ( *) การหาร ( /) 5/2 = 2.5หมายเหตุนี้เป็นส่วนหนึ่งที่แท้จริงเพื่อที่ว่า การยกกำลัง (เช่น 4 ^ 4) เนื่องจากจะไม่มีสัญลักษณ์พิเศษหากเขียนด้วยมือตามปกติ xsคุณสามารถทำให้จำนวนเต็มใหม่โดยการเชื่อมโยง 4, 44, 444, 4444เช่นคุณสามารถทำให้จำนวนเต็ม นอกจากนี้คุณยังสามารถใช้วงเล็บเป็นหมายเลขกลุ่มเพื่อควบคุมลำดับการประเมินของผู้ดำเนินการ ตัวอย่างเช่นคุณไม่สามารถรวมวงเล็บเข้ากับการต่อข้อมูล(4/4)(4/4) = (1)(1) = …

13
เป็นคนแรกเป็นคนแรก
ท้าทาย งานง่าย รับอาร์เรย์และค่าแรกและสุดท้าย: คืนค่าแรกของสุดท้ายหลังจากที่แรกและสุดท้ายของก่อนก่อนที่สุดท้าย หรือเพียงแค่: รับอาร์เรย์, var1, var2 อาร์เรย์ตัวอย่าง: [var2,, var1,, var2,, var2, var1, var2,] กลับ: ดัชนีของ var2 แรกทางด้านขวาของ var1 แรกที่ปรากฏในอาร์เรย์ [var2,, first var1 ,, var2 แรก , var2 ที่สอง, var1, var2 ที่สาม] ดัชนีของ var1 แรกทางด้านซ้ายของ var2 ล่าสุดที่ปรากฏในอาร์เรย์ [var2,, var1 ที่สอง,, var2,, var2, var1 แรก , var2 ล่าสุด ,] อินพุต …

12
ผลรวมของเมทริกซ์ที่จำลองแบบแล้ว
รับรายการตัวเลข[ a 1 a 2 ... a n ]คำนวณผลรวมของเมทริกซ์ทั้งหมดAᵢโดยที่Aᵢถูกนิยามดังนี้ ( mคือค่าสูงสุดของaᵢทั้งหมด): 1 2 ⋯ (i-1) i (i+1) ⋯ n +---------------------------- 1 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ 2 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ . . . . . . . . . . …

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