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

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

2
การป้อนข้อความด้วยคีย์บอร์ดเสมือน
สำหรับเกมคอนโซลที่ทันสมัยและอุปกรณ์อื่น ๆ ที่ไม่มีแป้นพิมพ์แบบดั้งเดิมการพยายามป้อนข้อความเป็นฝันร้าย การพิมพ์ด้วยปุ่มเพียงไม่กี่ปุ่มและจอยสติกบนคีย์บอร์ดเสมือนนั้นน่ารำคาญและฉันชอบที่จะทำการกดปุ่มหรือเคลื่อนไหวให้น้อยที่สุดเท่าที่จะทำได้ แป้นพิมพ์ที่คุณจะใช้ดูเหมือนว่า: +---+---+---+---+---+---+---+---+---+---+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | +---+---+---+---+---+---+---+---+---+---+ | q | w | e | r | t | y | u | i | o | p | +---+---+---+---+---+---+---+---+---+---+ …

15
คำนวณพาร์ติชันของ N
ความท้าทายของคุณเป็นเรื่องง่าย: รับจำนวนเต็มN , ouput รายการของจำนวนเต็มบวกทุกคนที่จำนวนเงินที่จะไม่มี ตัวอย่างเช่นถ้าอินพุตเป็น 5 คุณควรส่งออก [1, 1, 1, 1, 1] [1, 1, 1, 2] [1, 1, 3] [1, 2, 2] [1, 4] [2, 3] [5] รายการเหล่านี้ไม่จำเป็นต้องส่งออกตามลำดับใด ๆ หรือตัวเลขภายในแต่ละรายการ ตัวอย่างเช่นนี่จะเป็นผลลัพธ์ที่ยอมรับได้สำหรับ '5': [1, 1, 1, 2] [5] [3, 1, 1] [2, 1, 2] [4, 1] [1, 1, 1, 1, …

20
ย้อนกลับและลบ
คำอธิบายการท้าทาย ลองใช้จำนวนเต็มบวกnกลับตัวเลขเพื่อรับrev(n)และรับค่าสัมบูรณ์ของผลต่างของตัวเลขสองตัวนี้: |n - rev(n)|(หรือabs(n - rev(n))) ตัวอย่าง: n = 5067 rev(n) = 7605 |n - rev(n)| = |5067 - 7605| = |-2538| = 2538 หลังจากทำซ้ำการดำเนินการนี้หลายครั้งเพียงพอตัวเลขส่วนใหญ่จะกลายเป็น0(ดังนั้นการยกเลิกการวนซ้ำ) ... 5067 -> 2538 -> 5814 -> 1629 -> 7632 -> 5265 -> 360 -> 297 -> 495 -> 99 -> 0 ... แม้ว่าตัวเลข …

5
การแลกเปลี่ยน 27 ฟังก์ชัน
บทนำ ลองกำหนดฟังก์ชั่น ternaryเป็นฟังก์ชั่นจากชุดสามองค์ประกอบS = {0,1,2}กับตัวเองมันจะเชื่อมโยงไปยังองค์ประกอบของแต่ละองค์ประกอบของผู้อื่นS Sตัวอย่างหนึ่งของฟังก์ชั่นประกอบไปด้วยfคือ f(0) = 0; f(1) = 2; f(2) = 0 มีฟังก์ชั่นตรง 27 ternary ที่แตกต่างกันและเราเป็นตัวแทนของพวกเขาด้วยจำนวนเต็ม 0-26: ฟังก์ชั่นจะถูกเข้ารหัสเป็นf f(0) + 3*f(1) + 9*f(2)ฟังก์ชั่นตัวอย่างข้างต้นถูกเข้ารหัสเป็นหมายเลข 6 เราสามารถใช้ฟังก์ชั่นสอง ternary fและgในลำดับและถ้าf(g(k)) == g(f(k))ถือหุ้นทั้งหมดkในSนั้นฟังก์ชั่นการเดินทาง งานของคุณคือการตรวจสอบว่าเป็นกรณีนี้หรือไม่ อินพุต อินพุตของคุณเป็นจำนวนเต็มสองจำนวนในช่วงรวมจาก 0 ถึง 26 พวกเขาเป็นตัวแทนสองฟังก์ชันประกอบไปด้วยfและ gต้องป้อนข้อมูลในรูปแบบทศนิยมฐานสองหรือ1รูปแบบสตริง (สตริง) เอาท์พุต ผลลัพธ์ของคุณเป็นค่าความจริงหากfและการgเดินทางและค่าความผิดพลาดหากพวกเขาไม่ คุณอาจไม่คิดว่าอินพุตจะถูกเรียงลำดับ ตัวอย่าง พิจารณาอินพุต 5 และ 16 ซึ่งเข้ารหัสฟังก์ชันที่ประกอบไปด้วย …

12
Polynomialception
โปรแกรมสองฟังก์ชันf,gของคุณควรประเมินพหุนามแรกในพหุนามที่สอง f(g(x))(aka องค์ประกอบ (fog)(x)ของสองชื่อประกอบด้วยหลายชื่อ) รายละเอียด อนุญาตให้สร้างเครื่องได้ คุณสามารถสมมติว่าการจัดรูปแบบที่เหมาะสมเป็นอินพุต / เอาต์พุต แต่รูปแบบอินพุตและเอาต์พุตควรตรงกัน เช่นการจัดรูปแบบเป็นสตริง x^2+3x+5 หรือเป็นรายการของค่าสัมประสิทธิ์: [1,3,5] or alternatively [5,3,1] นอกจากนี้ชื่อพหุนามสามารถคาดเดาได้ว่าจะขยายอย่างเต็มที่และคาดว่าจะขยายออกอย่างเต็มที่ ตัวอย่าง A(x) = x^2 + 3x + 5, B(y) = y+1 A(B(y)) = (y+1)^2 + 3(y+1) + 5 = y^2 + 5y + 9 A(x) = x^6 + x^2 + 1, B(y) …

2
ค้นหาสมบัติในคุกใต้ดิน 2D
คุณอยู่ในคุกใต้ดินหนึ่งชั้น มีสมบัติที่ได้รับการปกป้องจากประตูที่ถูกล็อค ประตูสามารถเปิดได้โดยการค้นหากุญแจที่เกี่ยวข้อง เป้าหมายของคุณคือค้นหาเส้นทางที่สั้นที่สุดสู่ขุมทรัพย์ อินพุต อินพุตจะเป็นตารางสองมิติที่แสดงเค้าโครงเริ่มต้นของดันเจี้ยน ########### #$ # g# # # #### ###G## # # ####C# #c @ # ########### นี่คือคุณ: @ นี่คือกำแพง: # นี่คือสมบัติ: $ ประตูที่ถูกล็อคเป็นตัวพิมพ์ใหญ่: A... Z แต่ละประตูมีคีย์ตัวพิมพ์เล็กที่ตรงกัน: a...z จะมีหนึ่ง@และหนึ่ง$เสมอ ดันเจี้ยนจะเป็นรูปสี่เหลี่ยมผืนผ้าเสมอ ไม่รับประกันว่าขอบด้านนอกของดันเจี้ยนจะเป็นกำแพง นี่คือกรุที่ถูกต้อง: $ A## @ a ไม่รับประกันว่าสมบัติจะเข้าถึงได้ ดันเจี้ยนบางตัวอาจไม่สามารถแก้ไขได้ อาจมีประตูที่ไม่มีกุญแจและอาจมีกุญแจที่ไม่เปิดประตู จะไม่มีประตูหรือกุญแจซ้ำกัน เอาท์พุต โปรแกรมของคุณควรพิมพ์ลำดับของR, L, U, D(หรือ 4 …

24
เรียงชื่อวงดนตรี
คำอธิบายการท้าทาย คุณมีคลังเพลงที่มีหลายแทร็คที่บันทึกโดยหลาย ๆ วงแต่ละที่มีชื่อเช่นQueen, Aerosmith, ,Sunny Day Real Estate The Strokesเมื่อเครื่องเล่นเพลงแสดงไลบรารีของคุณตามลำดับตัวอักษรโดยชื่อแบนด์มันมักจะข้ามTheส่วนที่เป็นชื่อวงดนตรีจำนวนมากเริ่มต้นด้วยTheทำให้ง่ายต่อการนำทางผ่านคอลเลกชันสื่อของคุณ ในความท้าทายนี้เมื่อได้รับรายการ (อาร์เรย์) ของสตริงคุณต้องเรียงลำดับแบบนั้น (นั่นคือไม่ใช้Theคำที่จุดเริ่มต้นของชื่อ) คุณสามารถเขียนวิธีการหรือโปรแกรมทำงานเต็มรูปแบบได้ ตัวอย่างอินพุต / เอาท์พุต [Queen, Aerosmith, Sunny Day Real Estate, The Strokes] -> [Aerosmith, Queen, The Strokes, Sunny Day Real Estate] [The Ramones, The Cure, The Pixies, The Roots, The Animals, Enrique Iglesias] -> [The …

6
ลำดับตัวอักษรภาษาสเปนเก่า
ก่อนปี 1994, พจนานุกรมภาษาสเปนที่ใช้ตามลำดับตัวอักษรที่มีความไม่ชอบมาพากล : digraphs llและchได้รับการพิจารณาหากพวกเขาเป็นตัวอักษรเดียว chตามทันทีcและทันทีตามll lเพิ่มตัวอักษรñซึ่งตามมาnในภาษาสเปนคำสั่งนั้น: a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z ตั้งแต่ปี 1994 llและchได้รับการพิจารณาเป็นกลุ่มของตัวอักษรสองตัว ( l, lและc, hตามลำดับ) ñและจึงตามลำดับตัวอักษรเป็นเช่นเดียวกับในภาษาอังกฤษมีข้อยกเว้นของตัวอักษร คำสั่งเดิมแน่นอนมากขึ้นที่น่าสนใจ ความท้าทาย ป้อนรายการคำที่เป็นศูนย์หรือมากกว่าแล้วเอาท์พุทรายการที่เรียงลำดับตามลำดับตัวอักษรภาษาสเปนเก่า การเรียงลำดับอยู่ระหว่างคำ (ไม่ใช่ระหว่างตัวอักษรภายในคำ) …

3
ติดตามจุดต่างๆ
ความท้าทาย รับกริดของอักขระ ABCDE FGHIJ KLMNO PQRST และกริดที่มีขนาดของจุดและช่องว่างเหมือนกัน . . . . . . . . . . . เอาท์พุทสตริงที่สร้างขึ้นโดยทำตามจุดผ่านตารางเริ่มต้นที่มุมซ้ายบน ตัวอย่างนี้จะให้ผลABGLQRSNIJE หมายเหตุ คุณอาจใช้กริดอินพุตเป็นอาร์เรย์สองมิติหรือทางเลือกที่ใกล้เคียงที่สุดในภาษาของคุณแทนที่จะเป็นสตริงหลายบรรทัด คุณสามารถใช้ค่า NULL ของภาษาของคุณแทนช่องว่าง แต่คุณต้องใช้จุดเพื่อทำเครื่องหมายเส้นทาง คุณไม่จำเป็นต้องแยกจุดในบรรทัดเดียวกันด้วยช่องว่าง ฉันเพิ่งเพิ่มพวกเขาเพื่อให้สามารถอ่านได้ กริดที่เล็กที่สุดที่เป็นไปได้มีขนาด 1x1 จุดเริ่มต้นและจุดสิ้นสุดจะมีเพื่อนบ้านเพียงคนเดียว จุดระหว่างพวกเขามักจะมีสองเพื่อนบ้านแนวตั้งหรือแนวนอนที่แน่นอน สิ่งนี้รับประกันได้ว่าเส้นทางนั้นไม่น่าสงสัย เส้นทางจะไม่ไปในแนวทแยง อักขระในตารางจะเป็นอักขระตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กทั้งหมดในช่วงที่[a-z]คุณสะดวกที่สุด เส้นทางจะเริ่มต้นที่มุมซ้ายบนเสมอ กฎระเบียบ อนุญาตให้ใช้ฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ กฎเริ่มต้นสำหรับอินพุต / เอาต์พุต ช่องโหว่มาตรฐานใช้ นี่คือcode-golfดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงชนะ Tiebreaker เป็นการส่งก่อนหน้า กรณีทดสอบ กริด # 1 ABCABCW …
22 code-golf  string  grid 

3
เบอร์โฮเลีย
เมื่อเราเรียนรู้จากหมายเลขศักดิ์สิทธิ์มีตัวเลขศักดิ์สิทธิ์ 5 หลัก ( 0, 4, 6, 8, 9) และจำนวนเต็มบวกซึ่งประกอบด้วยตัวเลขเหล่านั้นล้วนเป็นศักดิ์สิทธิ์ นอกจากนี้ความศักดิ์สิทธิ์ของตัวเลขคือผลรวมของหลุมในจำนวน ( +2สำหรับทุกคน0หรือ8และ+1อื่น ๆ ) ขณะนี้มีทรัพย์สินเพิ่มเติมที่ต้องคำนึงถึงเพื่อแสดงถึงความบริสุทธิ์ของตัวเลขอย่างแท้จริงและถูกต้อง คุณเห็นไม่ใช่แค่จำนวนของรูในหลักที่สำคัญ แต่ยังรวมถึงตำแหน่งที่มันเกิดขึ้นด้วย 88พิจารณาจำนวน 4โดยกฎเดิมของเราก็จะมีความศักดิ์สิทธิ์ของ แต่นั่นไม่ค่อยยุติธรรม! 8ด้านซ้ายจะทำงานมากขึ้นกว่าที่อื่น ๆ8- 10 ครั้งการทำงาน! ควรได้รับรางวัลสำหรับการทำงาน เราจะให้รางวัลกับความบริสุทธิ์พิเศษเท่ากับจำนวนความศักดิ์สิทธิ์ทั้งหมดของตัวเลขทางด้านขวา (รวมถึงคะแนนความบริสุทธิ์พิเศษที่ได้รับจากกฎนี้เป็นตัวเลขทางด้านขวา) ลบ 1 นี่คือตัวอย่างเพิ่มเติมที่ต้องพิจารณา: Number: 8080 Digital holiness: (2 + 7 - 1) + (2 + 3 - 1) + (2 + 1 …

12
เสียงสระจากสระ
คำอธิบายงาน บางครั้งคุณต้องพอดีกับสิ่งที่คุณเขียนในพื้นที่เล็ก ๆ มันอาจจะเป็นการดึงดูดให้ทิ้งสระและ wrt lk ths - และความล้มเหลวนั้นใครต้องการช่องว่างจริงๆ? Thssprfctlrdbl! † เขียนฟังก์ชั่นหรือโปรแกรมที่เอาตัวพิมพ์เล็กสระaeiouและช่องว่างแล้วและจากนั้นใด ๆตัวละครจากสายป้อน นอกจากนี้ทุกครั้งที่คุณลบตัวอักษรมันจะต้องเป็นตัวละครที่เหมาะสมที่สุดที่จะถูกลบ มันจะต้องทำซ้ำขั้นตอนนี้จนกว่าสตริงคือไม่เกินระยะเวลาในการป้อนข้อมูลบางส่วนที่ได้รับ †“ นี่อ่านได้อย่างสมบูรณ์แบบ!” แต่ถ้าคุณอ่านเชิงอรรถนี่อาจจะไม่ใช่ ... จริง ๆ :) ตัวอย่าง ที่นี่คุณสามารถเห็นกระบวนการนี้ใช้กับขนาดอินพุตที่เล็กลงอย่างต่อเนื่อง: 23: Hello, Code Golf World! 22: Hello, Code Golf Wrld! 21: Hello, Code Glf Wrld! 20: Hello, Cod Glf Wrld! 19: Hello, Cd Glf Wrld! 18: …
22 code-golf  string 

30
จำนวนเต็มที่น้อยที่สุดหลังจาก N หารด้วย 2, 3 และ 4
ให้เครดิตกับผู้ที่เป็นเครดิตเนื่องจาก วัตถุประสงค์ป.ร. ให้ไว้เป็นจำนวนเต็มN > 0ออกเลขที่เล็กที่สุดA, BและCเพื่อที่: ทั้งหมดจากA, BและCเข้มงวดมากกว่าN; 2หารA; 3หารB; และแบ่ง4C นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ คุณสามารถใช้ภาษาที่สร้าง / อัปเดตหลังจากความท้าทายนี้ แต่ไม่ได้แข่งขันอย่างเคร่งครัด กรณีทดสอบ N => A, B, C 1 => 2, 3, 4 4 => 6, 6, 8 43 => 44, 45, 44 123 => 124, 126, 124 420 => 422, 423, 424 31415 => 31416, …
22 code-golf  math  number 

25
พิมพ์หมายเลข non-palindromic ของ Nth
จำนวน palindromic (ในกรณีที่คุณไม่ทราบ) เป็นตัวเลขที่อ่านไปข้างหน้าและข้างหลังเหมือนกัน (ตัวอย่าง 11) ครั้งแรก 15 ตัวเลขที่ไม่ใช่ palindromic 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26คือ: นี่คือA029742 ฉันต้องการตัวเลขเหล่านี้อย่างต่อเนื่อง แต่แผ่นบันทึกย่อของฉันมีขนาดเล็กมากดังนั้นรหัสของคุณจะต้องสั้นที่สุด กฎระเบียบ การส่งแต่ละครั้งจะต้องเป็นโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบ (เช่นใน C คุณไม่สามารถกำหนดฟังก์ชั่นที่ไม่มีส่วนหัวได้ แต่คุณสามารถกำหนดฟังก์ชั่นที่มีส่วนหัวที่จำเป็น) หากเป็นไปได้ให้ระบุลิงค์ไปยังเว็บไซต์ที่สามารถทดสอบโปรแกรมของคุณได้ STDERRโปรแกรมของคุณไม่ต้องเขียนอะไรไป คุณสามารถป้อนเป็นอาร์กิวเมนต์หรือจากSTDIN(หรือเป็นทางเลือกที่ใกล้เคียงที่สุดในภาษาของคุณ) โปรแกรมมีคะแนนตามไบต์ ชุดอักขระปกติคือ UTF-8 หากคุณใช้ตัวอื่นโปรดระบุ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม กรณีทดสอบ 1 ==> 10 ----- 5 ==> 15 …

9
พิมพ์ตัวเลข Super Collatz
Collatz ลำดับ (ที่เรียกว่าปัญหา 3x + 1) เป็นที่ที่คุณเริ่มต้นด้วยจำนวนเต็มบวกใด ๆ สำหรับตัวอย่างนี้เราจะใช้ 10 และใช้ชุดของขั้นตอนไปนี้: if n is even: Divide it by 2 if n is odd: Multiply it by 3 and add 1 repeat until n = 1 10 คือเลขดังนั้นเราหารด้วย 2 เพื่อให้ได้ 5 5 จึงแปลกเราจึงคูณด้วย 3 และเพิ่ม 1 เพื่อได้ 16 16 เท่ากับดังนั้นตัดครึ่งให้ได้ 8 …

30
ย้อนกลับการทำงานในเชิงบวก
อินพุต การป้อนข้อมูลของคุณคือรายการของตัวเลขหลักเดียวในรูปแบบที่เหมาะสมรวมถึงสตริงตัวเลข อินพุตจะไม่ว่างเปล่า เอาท์พุต ผลลัพธ์ของคุณจะเป็นรายการอินพุต แต่ด้วยการรันตัวเลขสูงสุดที่ไม่ใช่ศูนย์แต่ละครั้งจะถูกย้อนกลับ ตัวอย่าง พิจารณาอินพุต 95883007414830 <---> <----> ที่ที่ไม่ใช่ศูนย์วิ่งถูกทำเครื่องหมายด้วยลูกศร ย้อนกลับการทำงานเหล่านี้แต่ละครั้งเราจะได้รับผลลัพธ์ 38859003841470 กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต ความท้าทายนี้เกี่ยวข้อง แต่มีความซับซ้อนมากกว่าเนื่องจากมีการประมวลผลสตริงเพิ่มเติม กรณีทดสอบ 4 -> 4 00 -> 00 123 -> 321 0010 -> 0010 12000345 -> 21000543 18161604 -> 61618104 95883007414830 -> 38859003841470 010230456078912 -> 010320654021987 357509902003550 -> 575309902005530 2492882377675046 -> 5767732882942064 …

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