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

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

6
ค้นหาค่าสัมประสิทธิ์ของฟังก์ชั่นการสร้างเหตุผล
หากเราเขียนลำดับของตัวเลขเป็นค่าสัมประสิทธิ์ของชุดพลังงานชุดพลังงานนั้นจะเรียกว่า (ธรรมดา) ฟังก์ชันสร้าง (หรือ Gf) ของลำดับนั้น นั่นคือถ้าสำหรับฟังก์ชันF(x)และชุดของจำนวนเต็มa(n)เรามี: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) จากนั้นเป็นหน้าที่ของการสร้างF(x) aตัวอย่างเช่นชุดรูปทรงเรขาคณิตบอกเราว่า: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) ดังนั้นการสร้างฟังก์ชั่นของการมี1, 1, 1, ... 1/(1-x)หากเราแยกความแตกต่างทั้งสองข้างของสมการข้างบนและคูณด้วยxเราจะได้ความเสมอภาคต่อไปนี้: x + 2x^2 + 3x^3 + 4x^4 + ... = …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

16
Bounce-modulo สองตัวเลข
กราฟของการดำเนินการโมดูโล ( Y= xพอควรky=xmodky = x \mod k ) มีลักษณะดังนี้: นี่เป็นฟังก์ชั่นที่มีประโยชน์มากเพราะมันช่วยให้เราสร้างพฤติกรรม "การห่อ" อย่างไรก็ตามมันยุ่งยากมากเมื่อฉันต้องการใช้มันเพื่อสร้างรูปลักษณ์ของ "แสง" ระหว่างกำแพงทั้งสอง กราฟของฟังก์ชั่น "เด้ง" ( Y= bounce ( x , k )y=bounce(x,k)y = \text{bounce} (x, k) ) มีลักษณะดังนี้: ระยะเวลาของกราฟของมีkระยะเวลาของกราฟของคือเนื่องจากมันเลื่อนขึ้นสำหรับหน่วยแล้วเลื่อนลงไปอีกหน่วยก่อนที่จะกลับไปที่จุดเริ่มต้น สำหรับทั้งสองฟังก์ชั่นค่าต่ำสุดสำหรับคือ 0 และสูงสุดคือ (ที่จริงแล้วสำหรับฟังก์ชั่นโมดูลัสที่มีอินพุทอินทิกรัลคือ ) นอกจากนี้สำหรับทั้งสองฟังก์ชันค่าที่คือ 0k y = bounce ( x , k ) 2 k k …

10
ลำดับ Lehmer-Comtet
ลำดับ Lehmer-Comtet เป็นลำดับดังกล่าวว่าA (n)เป็นn TH อนุพันธ์ของf (x) = x xด้วยความเคารพxประเมินที่x = 1 งาน ใช้จำนวนเต็มแบบไม่ลบเป็นอินพุตและเอาต์พุตคำที่nของลำดับ Lehmer-Comtet นี่คือcode-golfดังนั้นคุณควรลดขนาดไฟล์ของซอร์สโค้ดของคุณให้เล็กที่สุด กรณีทดสอบ OEIS 5727 นี่คือคำศัพท์คู่แรกที่เรียงลำดับ (คัดลอกมาจาก OEIS) 1, 1, 2, 3, 8, 10, 54, -42, 944, -5112, 47160, -419760, 4297512, -47607144, 575023344, -7500202920, 105180931200, -1578296510400, 25238664189504, -428528786243904, 7700297625889920, -146004847062359040, 2913398154375730560, -61031188196889482880

17
บันไดสตริงที่ต่อยอด
กำหนดสตริงsและจำนวนเต็มบวกNค่อยๆทำซ้ำอักขระแต่ละตัวมากขึ้นเรื่อย ๆ จนกว่าจะNซ้ำกันจากนั้นพักที่Nซ้ำกันจนกระทั่งNตัวละครอยู่ห่างจากจุดสิ้นสุดจากนั้นก้าวลงอีกครั้ง ตัวอย่างเช่นที่กำหนดabaloneและ3: a we start with 1 copy bb then 2 copies aaa then 3 copies, which is our second parameter lll so we continue using 3 copies ooo until we reach the end nn where we use 2 copies e and then finally 1 copy และผลลัพธ์ก็abbaaalllooonneคือ มีการรับประกันว่าสตริงมีความยาวมากกว่า2Nและมีอักขระตั้งแต่aถึงzเท่านั้น …
12 code-golf  string 

6
สตริงนี้เป็น FEN ที่ถูกต้องหรือไม่
ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นซึ่งรับอินพุตสตริงเป็นพารามิเตอร์ฟังก์ชันหรือจาก stdin และพิจารณาว่าเป็นสตริงFEN ที่ถูกต้องหรือไม่ อินพุต คุณสามารถสันนิษฐานได้ว่าอินพุตจะมีอักขระต่อไปนี้ (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) pkqrbnPKQRBN12345678/ ความยาวของอินพุตจะต้องมีอย่างน้อย 1 ตัวอักษรและสูงสุด 100 ตัวอักษร เอาท์พุต ผลลัพธ์ควรเป็นค่าจริง / เท็จ เหล่านี้สามารถเป็นค่าใด ๆ ที่คุณต้องการตราบใดที่พวกเขามีความสอดคล้องกัน (ผลความจริงทั้งหมดมีผลลัพธ์ที่เหมือนกันผลลัพธ์เท็จทั้งหมดมีผลลัพธ์ที่เหมือนกัน) คุณควรมีเอาต์พุตที่แตกต่างกันสองแบบ สิ่งที่นับว่าถูกต้อง ตัวอักษรตัวพิมพ์เล็กแทนชิ้นส่วนสีดำตัวอักษรตัวพิมพ์ใหญ่แทนชิ้นส่วนสีขาว คุณควรตรวจสอบให้แน่ใจว่าเป็นไปได้ในเกมหมากรุกสำหรับชิ้นส่วนที่อยู่ในตำแหน่งปัจจุบัน ผู้เล่นแต่ละคนจะมี 1 ราชาเสมอ (k / K) ผู้เล่นแต่ละคนอาจมีไม่เกิน 8 เบี้ย (p / P) ผู้เล่นแต่ละคนมักจะมีไม่เกิน 1 * ราชินี (q / Q) ผู้เล่นแต่ละคนจะไม่มีอีกต่อไป มากกว่า 2 * rooks …

30
มาตรฐานคืออะไร
ในสนามกอล์ฟค่ามาตรฐานของหลักสูตรจะคำนวณโดยใช้สูตรนี้: (3*num_of_3_par_holes + 4*num_of_4_par_holes + 5*num_of_5_par_holes) - difficulty_rating งานของคุณคือการคำนวณรอยขีดข่วนมาตรฐานของสนามกอล์ฟซึ่งมีปัจจัยการผลิตทั้งสี่นี้ คุณควรป้อนข้อมูลในรูปแบบมาตรฐานใด ๆ ในรูปแบบ [num_of_3_pars, num_of_4_pars, num_of_5_pars], difficulty rating แต่ถ้ามันช่วยประหยัดไบต์คุณหลายคนใช้วิธีการที่แตกต่างกัน คุณควรส่งออกผลลัพธ์สุดท้ายโดยวิธีการที่ยอมรับใน meta เช่นกลับมาจากฟังก์ชั่น รหัสที่สั้นที่สุดชนะเพราะนี่คือรหัสกอล์ฟ !
12 code-golf  math  number 

4
เล่นกับหุ่นยนต์สำหรับเด็ก - ฉันจะไปถึงจดหมายฉบับไหน?
TL; DR:กำหนดอาร์เรย์ของตัวอักษรและหุ่นยนต์ในตำแหน่งเริ่มต้นของอาร์เรย์เขียนอัลกอริธึมที่สามารถอ่านสตริงที่มีการเคลื่อนไหว ( Fสำหรับ "ไปข้างหน้า" Rสำหรับ "หมุน 90 องศาขวา" และL"หมุน 90 องศา left ") และคำนวณตำแหน่งสิ้นสุดของหุ่นยนต์ รายละเอียดเพิ่มเติมในข้อความที่สมบูรณ์ เรามีอุปกรณ์ที่ตั้งโปรแกรมได้ง่าย ๆ ที่บ้านสำหรับเด็ก ๆ : ยานพาหนะขนาดเล็กที่มีปุ่มเพื่อให้รถเดินไปข้างหน้าเลี้ยวซ้าย 90 องศาหรือเลี้ยวขวา 90 องศา สิ่งที่คล้ายกับสิ่งนี้: เรายังมีแผ่นโฟมพร้อมตัวอักษรดังนี้: จุดประสงค์ทั้งหมดนี้คือการสอนเด็ก ๆ ทั้งตัวอักษรและพื้นฐานของการเขียนโปรแกรมทั้งหมดในครั้งเดียว ความท้าทาย สมมติว่าเราได้จัดเรียงแผ่นโฟมแบบสุ่มของเราดังนี้: +---+---+---+---+---+---+---+ | E | R | L | B | I | X | N | +---+---+---+---+---+---+---+ …

11
แยกรายการของรายการลงในรายการเศร้า
ในการท้าทายนี้คุณจะต้องแยกวิเคราะห์รายการเป็นรูปแบบรายการที่ง่ายขึ้น ความท้าทายนี้ขึ้นอยู่กับตัวแยกวิเคราะห์เศร้าของฉัน ในตัวแยกวิเคราะห์ sadflak ของฉันมีการลบทั้งหมด () แทนที่ด้วยผลรวมของ () ที่จุดเริ่มต้นของรายการเพื่อให้โปรแกรมทำงานได้เร็วขึ้น ในการแยกวิเคราะห์ไปยัง Sad-List คุณต้องทำสิ่งนี้ (การใช้ python ใช้ tuple ของ tuples): def sadlistfunc(list): new-sadlist = [0] for i in list: if i == (): new-sadlist[0]+=1 else: new-sadlist.append(sadlistfunc(i)) นี่คือฟังก์ชั่นวนซ้ำ สำหรับรายการให้เริ่มต้นรายการใหม่เริ่มต้นด้วยจำนวน () จากรายการอินพุตจากนั้นส่วนที่เหลือของรายการนี้คือรุ่นเศร้ารายการของทุกรายการที่ไม่ใช่ () จากอินพุตรายการตามลำดับ ส่งคืนรายการ การป้อนข้อมูล: คุณสามารถป้อนข้อมูลในรูปแบบที่แตกต่างกันไม่กี่: คุณอาจใช้มันเป็นรายการ คุณอาจใช้มันเป็นสิ่งอันดับ คุณอาจใช้มันเป็นสตริง ถ้าคุณคิดว่ามันเป็นสตริงคุณควรใช้วงเล็บบางอันตามที่ปรากฎในสมอง คุณไม่สามารถใช้อักขระ 1 และ …

19
สร้างดัชนีการค้นหา
รับสตริงส่งคืนตารางที่คอลัมน์แรกมีตัวอักษรที่ไม่ซ้ำกันของสตริงตามลำดับการเกิดขึ้นและคอลัมน์ที่ตามมาจะแสดงรายการดัชนีของตัวอักษรนั้นในสตริงโดยใช้การจัดทำดัชนีเป็นศูนย์หรือใช้ครั้งเดียว ช่องว่างในแนวนอนไม่สำคัญตราบใดที่คอลัมน์ซ้ายสุดอยู่ในแนวตั้ง ดัชนีจะต้องอยู่ในลำดับจากซ้ายไปขวา ตัวอย่าง ใช้การทำดัชนีแบบ zero-based และกำหนด "abracadabra" ให้ส่งคืน a 0 3 5 7 10 b 1 8 r 2 9 c 4 d 6 ใช้การจัดทำดัชนีแบบฐานเดียวและได้รับ "3141592653589793238462643383279503", คืนค่า: 3 1 10 16 18 25 26 28 34 1 2 4 4 3 20 24 5 5 9 11 32 9 …

22
Cube ของ Rubik ASCII
แรงบันดาลใจจากการแชทนี้และต่อไปนี้: งานของคุณคือการส่งออกต่อไปนี้: _ _ _ /_/_/_/\ /_/_/_/\/\ /_/_/_/\/\/\ \_\_\_\/\/\/ \_\_\_\/\/ \_\_\_\/ อนุญาตให้มีช่องว่างนำหน้าหรือต่อท้ายพิเศษได้ตราบใดที่ไม่เปลี่ยนแปลงลักษณะของลูกบาศก์ ตามปกติอนุญาตให้ส่งคืนรายการด้านบนหรือรายการสตริงจากฟังก์ชันได้ นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!

3
น้ำตกสองเท่า
ก่อนอื่นการแทรกสลับทางคณิตศาสตร์สั้นและคุ้มค่ากับเวลาของคุณ: ถ้า0 < a < 4ที่ฟังก์ชั่นโลจิสติก f(x) = ax(1-x)แมช่วง [0,1] ภายในตัวเอง นี่หมายความว่าเราสามารถเล่นเกมซ้ำได้ ตัวอย่างเช่นถ้า a = 2 ค่าเริ่มต้น 0.3 จะกลายเป็น 0.42 ดังนั้น 0.4872 เป็นต้น เมื่อพารามิเตอร์aเพิ่มขึ้นฟังก์ชันสมการกำลังสองfจะซับซ้อนมากขึ้นในแง่ต่อไปนี้: 0 < a < 1 ค่าเริ่มต้นทั้งหมดซ้ำเป็น 0 1 < a < 3 0 กลายเป็นต้านทาน แต่มีจุดคงที่ใหม่ (a-1) / a ที่ดึงดูดการทำซ้ำทั้งหมด 3 < a < 1+sqrt(6) จุดตรึงใหม่จะกลายเป็นต้านทาน แต่วงจรของ …
12 code-golf  math  number 

13
วิธีเขียนตัวเลขเป็นผลบวกของสี่เหลี่ยมมีกี่วิธี
งาน กำหนดจำนวนเต็มสองจำนวนdและnหาจำนวนวิธีที่จะแสดงnเป็นผลรวมของdกำลังสอง นั่นคือn == r_1 ^2 + r_2 ^2 + ... + r_d ^2เช่นว่าเป็นจำนวนเต็มสำหรับจำนวนเต็มทั้งหมดr_m 1 ≤ m ≤ dโปรดทราบว่าการแลกเปลี่ยนสองค่าที่แตกต่างกัน (เช่นr_1และr_2) นั้นถือว่าแตกต่างจากโซลูชันดั้งเดิม ตัวอย่างเช่นหมายเลข 45 สามารถเขียนเป็นผลรวมของ 2 กำลังสอง 8 วิธีที่แตกต่าง: 45 == (-6)^2 + (-3)^2 == (-6)^2 + 3^2 == (-3)^2 + (-6)^2 == (-3)^2 + 6^2 == 3^2 + (-6)^2 == …

7
นับวิดีโอในเพลย์ลิสต์ Youtube
ท้าทาย ระบุเพลย์ลิสต์ Youtube ให้ส่งออกจำนวนวิดีโอในนั้น I / O เพลย์ลิสต์จะได้รับเป็น URL ตัวอย่างเช่นhttps://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC(นี่เป็นเพลย์ลิสต์ที่เพื่อนส่งให้ฉันลองให้ฉันฟัง K-Pop เพราะเธอหมกมุ่นอยู่กับมันและฉันไม่ชอบ: P) https://www.youtube.com/playlist?list=<id>เชื่อมโยงไปยังรายการที่เป็นของแบบฟอร์ม ข้อมูลที่ป้อนคือ URL ไม่ใช่ ID ผลลัพธ์จะเป็นจำนวนเต็มเดียวที่ระบุจำนวนวิดีโอที่อยู่ในเพลย์ลิสต์นี้ คุณสามารถส่งออกจำนวนวิดีโอทั้งหมดหรือจำนวนวิดีโอที่ไม่ถูกลบแล้วแต่ว่าวิดีโอใดที่คุณเล่นได้มากกว่า กรณีทดสอบ https://www.youtube.com/playlist?list=PL_3jnZNPYn7qUatgDYBS5NShkfXoehSRC -> 12 https://www.youtube.com/playlist?list=PLIEbITAtGBebWGyBZQlkiMXwt30WqG9Bd -> 114 OR 1 อย่าลังเลที่จะเพิ่มกรณีทดสอบเพิ่มเติม

8
ค้นหานายแห่งสารประกอบให้!
ท้าทาย เมื่อกำหนดสูตรของสารเคมีให้ส่งออก M rของสารประกอบ สมการ แต่ละองค์ประกอบในสารประกอบจะตามด้วยตัวเลขที่แสดงถึงจำนวนอะตอมดังกล่าวในสารประกอบ หากไม่มีตัวเลขแสดงว่ามีอะตอมเพียงหนึ่งเดียวในสารประกอบ ตัวอย่างบางส่วนคือ: เอทานอล (C 2 H 6 O) จะเป็นC2H6Oที่ซึ่งมีอะตอมของคาร์บอนสองอะตอมอะตอมไฮโดรเจน 6 อะตอมและออกซิเจน 1 อะตอม แมกนีเซียมไฮดรอกไซด์ (MgO 2 H 2 ) จะอยู่MgO2H2ตรงที่มีอะตอมแมกนีเซียมหนึ่งอะตอมออกซิเจนสองอะตอมและไฮโดรเจนสองอะตอม โปรดทราบว่าคุณจะไม่ต้องจัดการกับวงเล็บและแต่ละองค์ประกอบจะรวมอยู่เพียงครั้งเดียวในสูตร ในขณะที่คนส่วนใหญ่อาจจะยึดตามคำสั่งที่พวกเขารู้สึกสะดวกสบายที่สุด แต่ก็ไม่มีระบบการสั่งซื้อที่เข้มงวด ยกตัวอย่างเช่นน้ำอาจจะได้รับเป็นอย่างใดอย่างหนึ่งหรือH2OOH2 เอ็มอาร์ หมายเหตุ: ที่นี่สมมติว่าสูตรมวลนั้นเหมือนกับมวลโมเลกุล M rของสารประกอบคือมวลโมเลกุลคือผลรวมของน้ำหนักอะตอมของอะตอมในโมเลกุล องค์ประกอบเท่านั้นและน้ำหนักอะตอมของพวกเขาถึงทศนิยม 1 ตำแหน่งที่คุณต้องสนับสนุน (ไฮโดรเจนกับแคลเซียมไม่รวมถึงก๊าซมีตระกูล) มีดังนี้ พวกเขาสามารถพบได้ที่นี่ H - 1.0 Li - 6.9 Be - 9.0 …

14
แพดไฟล์ด้วยค่าศูนย์
งานของคุณในวันนี้คือการใช้ไฟล์ที่มีอยู่และต่อท้ายศูนย์จนถึงขนาดที่กำหนด คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้ชื่อของไฟล์ในไดเรกทอรีปัจจุบันที่และจำนวนของไบต์f bในขณะที่รักษาเนื้อหาต้นฉบับของfคุณจะต้องเขียนเลขศูนย์(null null ไม่ใช่ ascii 0s)ไปยังจุดสิ้นสุดเพื่อให้ขนาดใหม่เป็นbไบต์ คุณอาจคิดว่าfมีเพียงตัวอักษรและตัวเลขในชื่อที่คุณได้รับอนุญาตเต็มรูปแบบว่าในตอนแรกมันไม่ใหญ่กว่าbแต่อาจจะมีขนาดใหญ่เท่าbและมีพื้นที่ว่างที่ไม่มีที่สิ้นสุด คุณอาจไม่ถือว่าfไม่ว่างเปล่าหรือไม่มีไบต์เป็นศูนย์อยู่ ไม่ควรแก้ไขไฟล์ที่มีอยู่อื่นและไฟล์ใหม่ไม่ควรมีอยู่หลังจากสิ้นสุดการประมวลผล กรณีทดสอบ เนื้อหาของ f | b | ส่งผลให้เนื้อหาของ f 12345 | 10 | 1234500000 0 | 3 | 000 [ว่าง] | 2 | 00 [ว่าง] | 0 | [ว่าง] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

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