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

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

15
หอพลังที่ไม่มีที่สิ้นสุด
ความท้าทาย ค่อนข้างง่ายรับอินพุตxคำนวณมันเป็นหอคอยพลังงานที่ไม่มีที่สิ้นสุด! x^x^x^x^x^x... สำหรับคุณที่ชื่นชอบคณิตศาสตร์ออกมีนี้เป็นxของอนันต์tetration โปรดจำไว้ว่า: x^x^x^x^x^x... = x^(x^(x^(x^(x...)))) != (((((x)^x)^x)^x)^x...) แปลกใจที่เราไม่ได้มีความท้าทายทางคณิตศาสตร์ที่ "ง่าย" ที่เกี่ยวข้องกับเรื่องนี้! * สมมติฐาน xจะเสมอมาบรรจบกัน จำนวนลบและจำนวนเชิงซ้อนควรจะสามารถจัดการได้ นี่คือโค้ดกอล์ฟดังนั้นไบต์ที่ต่ำที่สุดจึงชนะ! คำตอบของคุณควรถูกต้องเป็นทศนิยมอย่างน้อย5ตำแหน่ง ตัวอย่าง Input >> Output 1.4 >> 1.8866633062463325 1.414 >> 1.9980364085457847 [Square root of 2] >> 2 -1 >> -1 i >> 0.4382829367270323 + 0.3605924718713857i 1 >> 1 0.5 >> 0.641185744504986 0.333... …
22 code-golf  math 

12
มันมีเมฆมากอย่างไร?
ท้าทาย เมื่อรับภาพท้องฟ้าคุณจะต้องเอาเมฆปกคลุมออกใน oktas รูปภาพที่ให้มาจะเป็นไฟล์รูปภาพ (ชนิดนั้นขึ้นอยู่กับคุณ) และเอาต์พุตควรเป็น STDOUT Oktas ในอุตุนิยมวิทยา okta เป็นหน่วยการวัดที่ใช้เพื่ออธิบายปริมาณการปกคลุมของเมฆที่ตำแหน่งใด ๆ เช่นสถานีอากาศ สภาพท้องฟ้ามีการประเมินในแง่ของจำนวนแปดสิบของท้องฟ้าที่ปกคลุมไปด้วยเมฆตั้งแต่ 0 oktas (ท้องฟ้าใสสมบูรณ์) ถึง 8 Oktas (มืดครึ้มอย่างสมบูรณ์) ท้องฟ้ามักจะเป็นภาพจากประมาณเที่ยงวัน (ดังนั้นท้องฟ้าสีฟ้าไม่ใช่ท้องฟ้าสีแดง / กลางคืน) สีของคลาวด์จะเป็นสีที่ตามรูปแบบต่อไปนี้: #ABCDEF ที่ไหนAB >= C0, และCD >= C0EF >= C0 หรือใน RGB: (A, B, C) ที่ไหนA >= 192, และB >= 192C >= 192 นี่คือเปอร์เซ็นต์การครอบคลุมที่เกี่ยวข้องกับ oktas: …

12
ระบายสีเสาให้ฉัน
ให้บอกว่างานของคุณคือการทาสีเสาและลูกค้าขอให้คุณวาดเสาที่มี 4 ส่วนสีแดงและ 3 ส่วนสีเหลือง คุณสามารถทำได้โดยง่ายดังนี้ r y r y r y r มีแถบสีเหลืองและสีแดง ตอนนี้ช่วยบอกลูกค้าของคุณขอให้คุณวาดเสามี 2 ส่วนสีแดง 2 ส่วนสีเหลืองและ1 ส่วนสีเขียว มีสองวิธีที่คุณสามารถทาสีเสาของคุณ g y r y r y g r y r y r g y r y r y g r y r y r g g r y r …

6
เคล็ดลับสำหรับการเล่นกอล์ฟใน Kotlin
จากการประกาศเมื่อเร็ว ๆ นี้ของ Google เกี่ยวกับการสนับสนุนKotlinอย่างเป็นทางการสำหรับการพัฒนา Android ผมคิดว่าอาจถึงเวลาที่จะสำรวจชุมชนสำหรับเคล็ดลับการเล่นกอล์ฟที่ยอดเยี่ยมสำหรับภาษา JVM ที่ค่อนข้างใหม่นี้ Kotlin มีการผสมผสานคุณสมบัติที่ไม่เหมือนใครในหมู่พี่น้อง JVM ซึ่งทำให้น่าสนใจสำหรับการเล่นกอล์ฟ: ผู้ประกอบการมากไป ฟังก์ชั่นท้องถิ่น , มัดและฟังก์ชั่นส่วนขยายคงที่ สมาร์ทดุจ ผู้สร้างแบบปลอดภัยชนิด Groovy พิมพ์นามแฝง ช่วง แพคเกจคอลเลกชันการทำงานที่กว้างขวาง สนับสนุนการเขียนสคริปต์ ดังนั้นฉันจะบีบสองสามไบต์สุดท้ายออกจากโปรแกรม Kotlin ของฉันได้อย่างไร กรุณาหนึ่งเคล็ดลับต่อคำตอบ
22 code-golf  tips 

20
มันยอดเยี่ยมหรือไม่?
พื้นหลัง ซุปเปอร์สำคัญเป็นจำนวนเฉพาะที่มีดัชนีในรายการของจำนวนเฉพาะทั้งหมดยังเป็นนายก ลำดับมีลักษณะดังนี้: 3, 5, 11, 17, 31, 41, 59, 67, 83, 109, 127, 157, 179, 191, ... นี่คือA006450 ลำดับใน OEIS ท้าทาย รับจำนวนเต็มบวกกำหนดว่าเป็นยอดเยี่ยม กรณีทดสอบ 2: เท็จ 3: จริง 4: เท็จ 5: จริง 7: เท็จ 11: จริง 13: เท็จ 17: จริง 709: จริง 851: เท็จ 991: จริง เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ

3
Scrappers v0.1: โปรแกรมเมอร์ทหารรับจ้าง
ในโลกที่ว่างเปล่าสงครามที่ซึ่งเมืองถูกโจรและโจรถูกทำลายอารยธรรมได้สร้างตัวเองใหม่ในรูปแบบของสหกรณ์อุตสาหกรรมขนาดเล็กโดดเดี่ยวกระจัดกระจายไปทั่วภูมิทัศน์ที่ไม่มีคนอาศัยอยู่ก่อนหน้านี้ การมีอยู่ของชุมชนเหล่านี้ขึ้นอยู่กับทีมงานของทหารรับจ้างที่เรียกว่า "scrappers" ซึ่งค้นหาดินแดนเปลี่ยวสำหรับวัสดุที่มีค่าเพื่อขายให้กับตำรวจ เมื่อวัสดุเหล่านี้มีน้อยมากการทิ้งเป็นอาชีพที่ยากและอันตรายมากขึ้นเรื่อย ๆ คนงานที่เปราะบางส่วนใหญ่ถูกแทนที่ด้วยหุ่นยนต์ยืนห่างจากระยะไกลเรียกว่า "บอท" และทหารรับจ้างทั่วไปมีแนวโน้มที่จะเป็นโปรแกรมเมอร์ที่มีทักษะมากกว่าช่างเชื่อมติดอาวุธ เมื่อการปรากฏตัวของมนุษย์ในการทำลายล้างได้ลดลงดังนั้นความเคารพระหว่างกลุ่มทหารรับจ้างจึงมีต่อกันเช่นกัน บอทติดตั้งไม่เพียง แต่จะเก็บรวบรวมเศษเหล็ก แต่เพื่อป้องกันและในบางกรณีก็ใช้แรง โปรแกรมเมอร์ของ Bot ทำงานอย่างไม่รู้จักเหน็ดเหนื่อยเพื่อกำหนดกลยุทธ์ใหม่ ๆ เพื่อเอาชนะคู่แข่งที่ไม่พอใจส่งผลให้บอทมีความก้าวร้าวมากขึ้นและเป็นอันตรายต่อมนุษย์ที่เข้ามาอยู่นอกกำแพงชุมชนของพวกเขา (ใช่โลโก้ถูกครอบตัดอย่างสนุกสนาน) ยินดีต้อนรับสู่ Scrappers! นี่เป็นรุ่นแรก ๆ ของ Scrappers ซึ่งยังไม่มีการรวบรวมเศษซากและโรงงาน มันเป็น "shoot 'em up" คุณเป็นโปรแกรมเมอร์ทหารรับจ้างที่ได้รับมอบหมายให้สร้างโปรแกรมเพื่อจัดการบอทของคุณจากระยะไกลเพื่อชัยชนะเหนือกลุ่มสแครปเปอร์คู่ต่อสู้ บอทของคุณเป็นเครื่องจักรที่เหมือนแมงมุมซึ่งประกอบด้วยเครื่องกำเนิดไฟฟ้าและเครื่องกำเนิดไฟฟ้าที่แกนกลางของพวกเขาล้อมรอบไปด้วยอวัยวะต่าง ๆ มากมายที่มีการจับการตัดและการโจมตีอุปกรณ์ เครื่องกำเนิดไฟฟ้าสามารถผลิตพลังงาน 12 หน่วย (pu) ต่อหนึ่งขีด (หน่วยเวลาของ scrapper) คุณเป็นผู้ควบคุมวิธีการกระจายพลังนี้ท่ามกลางความต้องการหลักสามประการของบ็อต: การเคลื่อนไหว, เกราะ, และพลังยิง บอท Scrapper เป็นเครื่องจักรที่คล่องตัวเป็นพิเศษและสามารถเคลื่อนที่ข้ามใต้และรอบ ๆ สิ่งกีดขวางที่พบได้อย่างง่ายดาย …

18
พับสตริงเป็นรูปสามเหลี่ยม
รับสตริงที่มีความยาวหารด้วย 4 ทำสามเหลี่ยมตามตัวอย่างด้านล่าง หากสตริงเป็นabcdefghijklดังนั้นรูปสามเหลี่ยมจะเป็น: a b l c k defghij หากสตริงเป็นiamastringwithalengthdivisiblebyfourดังนั้นรูปสามเหลี่ยมจะเป็น: i a r m u a o s f t y r b i e n l gwithalengthdivisib หากสตริงเป็นthisrepresentationisnotatriangleดังนั้นรูปสามเหลี่ยมจะเป็น: t h e i l s g r n e a p i r r esentationisnotat หมายเหตุ สตริงจะประกอบด้วยอักขระตั้งแต่aถึงzเท่านั้น ช่องว่างนำหน้า / …

29
ยุบรายการที่อยู่ติดกัน
ท้าทาย ให้ลิสต์ของจำนวนเต็มคืนค่าลิสต์ของจำนวนเต็มเหล่านี้ซ้ำ ๆ หลังจากลบคู่ที่เท่ากันทุกรายการ โปรดทราบว่าหากคุณมีตัวเลขที่มีความยาวเท่ากันหนึ่งในนั้นจะยังคงอยู่ไม่ได้เป็นส่วนหนึ่งของคู่ ตัวอย่าง: [0, 0, 0, 1, 2, 4, 4, 2, 1, 1, 0] ครั้งแรกที่คุณควรลบ0, 0, 4, 4และ1, 1จะได้รับ: [0, 1, 2, 2, 0] ตอนนี้คุณควรลบ2, 2: [0, 1, 0] และนี่คือผลลัพธ์สุดท้าย กรณีทดสอบ [] -> [] [1] -> [1] [1, 1] -> [] [1, 2] -> [1, 2] [11, …

1
ขยายปัญหาเด็กนักเรียนของ Kirkman
สำหรับคนที่ไม่คุ้นเคยปัญหาเด็กนักเรียนของเคิร์กแมนมีดังนี้: หญิงสาวสิบห้าคนในโรงเรียนเดินออกจากกันสามครั้งเป็นเวลาเจ็ดวันติดต่อกัน: จะต้องจัดให้พวกเขาทุกวันเพื่อไม่ให้สองคนเดินเคียงข้างกันสองครั้ง เราสามารถดูรายการแบบซ้อน3จาก5 (หรือเมทริกซ์): [[a,b,c] [d,e,f] [g,h,i] [j,k,l] [m,n,o]] เป็นหลักเป้าหมายของปัญหาเดิมคือการคิดออก 7 วิธีที่แตกต่างกันที่จะจัดเมทริกซ์ดังกล่าวข้างต้นเพื่อให้ตัวอักษรสองตัวไม่เปิดเผยแถวมากกว่าหนึ่งครั้ง จาก MathWorld (ลิงก์ด้านบน) เราพบโซลูชันนี้: [[a,b,c] [[a,d,h] [[a,e,m] [[a,f,i] [[a,g,l] [[a,j,n] [[a,k,o] [d,e,f] [b,e,k] [b,h,n] [b,l,o] [b,d,j] [b,i,m] [b,f,g] [g,h,i] [c,i,o] [c,g,k] [c,h,j] [c,f,m] [c,e,l] [c,d,n] [j,k,l] [f,l,n] [d,i,l] [d,k,m] [e,h,o] [d,o,g] [e,i,j] [m,n,o]] [g,j,m]] [f,j,o]] [e,g,n]] [i,k,n]] …

14
พิมพ์หมายเลข Fibonacci ที่ n ที่มีหมายเลข Fibonacci ที่ n!
ท้าทาย คุณต้องเขียนโปรแกรมที่รับจำนวนเต็มบวกnเป็นอินพุตและส่งออกnหมายเลขฟีโบนักชี (ตัดให้สั้นลงเหมือน Fib # ตลอด) ที่มีฟิปส์n# เป็นตัวหาร สำหรับวัตถุประสงค์ของการท้าทายนี้, 1ลำดับฟีโบนักชีเริ่มต้นด้วย นี่คือตัวอย่างบางส่วนที่คุณสามารถใช้เป็นกรณีทดสอบหรือเพื่อเป็นตัวอย่างในการอธิบายความท้าทาย (สำหรับกรณีหลังโปรดแสดงความคิดเห็นลงด้านล่างเพื่ออธิบายสิ่งที่คุณพบว่าไม่ชัดเจน) n=1 Fib#s: 1 ^1 1st Fib# that contains a 1 (1st Fib#) Output: 1 n=2 Fib#s: 1, 1 ^1 ^2 2nd Fib# that contains a 1 (2nd Fib#) Output: 1 n=3 Fib#s: 1, 1, 2, 3, 5, 8, …

19
CSI: รายการ Minecraft
Minecraft 1.12จะวางจำหน่ายในวันพรุ่งนี้ดังนั้นเรามาฉลองกัน! เขียนโค้ดที่ใช้ในเชิงลบจำนวนเต็ม N ซึ่งหมายถึงจำนวนของรายการของบางสิ่งบางอย่างในMinecraft เอาท์พุทมันในทางที่เป็นประโยชน์มากขึ้นกับผู้เล่นให้จำนวนหีบสมบัติกองซ้อนและรายการ N เทียบเท่า ใช้รูปแบบ XcYsZi ที่ไหน X คือจำนวนหีบสมบัติที่คุณสามารถเติมให้สมบูรณ์ได้ด้วย N รายการ Y คือจำนวนของสแต็คที่คุณสามารถเติมด้วยไอเท็มที่เหลือหลังจากเติมหีบ Z หากจำนวนรายการที่เหลือหลังจากกรอกหีบและกอง โปรดทราบว่า: 64 รายการพอดีในสแต็ก (เราจะเพิกเฉยรายการที่ซ้อนกันถึง 16 หรือไม่ซ้อนกัน) 27 กองพอดีในหน้าอก (นี่คือหีบเดี่ยวไม่ใช่หีบคู่) ดังนั้นจะไม่มีเหตุผลถ้าYมากกว่า 26 หรือZมากกว่า 63 ข้อแม้ที่มีรูปแบบคือหากไม่มีสิ่งใดเป็นศูนย์คำนั้นจะไม่ถูกพิมพ์ ดังนั้นสำหรับตัวอย่างเช่นถ้าYเป็นศูนย์Xและไม่ใช่ศูนย์รูปแบบจะมีลักษณะอย่างไรZXcZi ในทำนองเดียวกันถ้าYและZเป็นศูนย์และไม่ใช่ศูนย์รูปแบบจะเป็นXXc ข้อยกเว้นที่นี่คือเมื่อ N เป็นศูนย์ จากนั้น0iเป็นผลลัพธ์แทนที่จะเป็นสตริงว่าง คุณสามารถสมมติว่ารายการ N ทั้งหมดเป็นประเภทเดียวกันจึงสามารถวางซ้อนกันได้ทั้งหมด คุณไม่สามารถส่งออกรายการหรือทูเปิลของตัวเลขสามตัว คุณต้องให้สตริงพร้อมสัญกรณ์ "csi" ที่แน่นอนตามลำดับโดยไม่มีช่องว่างหรือเครื่องหมายจุลภาค สำหรับการอ้างอิงนี่เป็นหีบที่เต็มไปด้วยไอเทมทั้งหมด: Testcases in -> …

19
ตัวเลขต่างกันน้ำหนักเดียวกัน
พื้นหลัง น้ำหนัก Hammingของจำนวนเต็มคือจำนวนของคนในการเป็นตัวแทนไบนารี สำหรับความท้าทายนี้จำนวนเต็มจะถูกแทนด้วย 32 บิตและไม่ได้ลงนาม ท้าทาย กำหนดจำนวนเต็มตั้งแต่ 0 ถึง 2 ^ 32-1 (ไม่รวม) ส่งออกจำนวนเต็มที่แตกต่างกันในช่วงเดียวกันและยังมีน้ำหนัก Hamming เดียวกัน ตัวอย่าง Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal) 46 | 0b0010 1110 | 4 | 15 12 | 0b0000 1100 | 2 | 3 1 | 0b0000 0001 …

24
สร้างไม้บรรทัดไบนารี
รับตัวเลขnสร้างคอลัมน์nแรกของรูปแบบนี้: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ################################ ... ความสูงของคอลัมน์ที่ (ทำดัชนี 1) nคือจำนวน0บิตต่อท้ายในการแสดงเลขฐานสองของnบวกหนึ่ง เป็นผลให้เลเยอร์ด้านล่างมีทุกคอลัมน์ที่กรอกข้อมูลในชั้นที่สองทุกคอลัมน์ที่สองชั้นที่สามทุกคอลัมน์ที่สี่ ฯลฯ กฎระเบียบ คุณสามารถอินพุตและเอาต์พุตด้วยวิธีมาตรฐานใด ๆ คุณอาจสมมติว่าการป้อนข้อมูลเป็นจำนวนเต็มระหว่าง 1 ถึง 999 รวม ผลลัพธ์อาจมีช่องว่างจำนวนเท่าใดก็ได้ตราบใดที่รูปแบบยังคงอยู่ รูปแบบต้องมีการจัดทำดัชนี …

30
การเรียกใช้หลายตัวที่เล็กที่สุดคือ 9 จากนั้นตามด้วยตัวเลือกการรัน 0
ได้รับจำนวนเต็มบวกหาเล็ก ๆ ของมันหลายจำนวนเต็มบวกซึ่งเป็นระยะที่ 9 ตามด้วยการดำเนินการที่ไม่จำเป็นของ 0. ในคำอื่น ๆ พบว่ามีขนาดเล็กที่สุดหลายจำนวนเต็มบวกซึ่งจะถูกจับคู่โดย /^9+0*$/regex ตัวอย่างเช่นถ้าจำนวนเต็มบวกที่ได้รับคือ 2 แล้วกลับ 90 ตั้งแต่ 90 เป็นจำนวนเต็มบวกของ 2 และเป็นที่เล็กที่สุดซึ่งมีการจับคู่โดย /^9+0*$/regex กรณีทดสอบ: n f(n) 1 9 2 90 3 9 4 900 5 90 6 90 7 999999 8 9000 9 9 10 90 11 99 12 900 13 999999 14 …

30
สร้างกล่องแบบไดนามิก
ความท้าทาย: วาดสี่เหลี่ยมผืนผ้าของกล่อง ASCII: [] กฎระเบียบ: รับความกว้างและความสูง คุณสามารถสมมติว่าทั้งสองนี้เป็นตัวเลข ต้องสร้างสตริงที่มีอักขระบรรทัดใหม่ \ n ตัวอย่าง: 2, 2: [][] [][] 2, 3: [][] [][] [][] Bytes Fewest ชนะ

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