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

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

9
CamelCase2snake_case ()
เขียนฟังก์ชันเพื่อแปลงข้อความ CamelCased เป็น snake_case: FunctionForHTMLManipulationกลายเป็นfunction_for_html_manipulation ข้อความที่ป้อนจะเป็นตัวระบุที่เหมาะสมเดียวในหลายภาษา จะต้องเริ่มต้นด้วยตัวอักษรภาษาอังกฤษจากนั้นตามด้วยตัวอักษรหรือตัวเลขภาษาอังกฤษใด ๆ ไม่อนุญาตให้ใช้อักขระอื่น ๆ (ช่องว่างสัญลักษณ์ ฯลฯ ) "คำ" แต่ละคำในข้อความ CamelCased จะเริ่มต้นด้วยตัวอักษรพิมพ์ใหญ่ยกเว้นในตอนต้นของข้อความหรือหลังตัวเลขและตามด้วยตัวอักษรศูนย์หรือมากกว่านั้นในกรณีเดียวกันทั้งหมด กลุ่มของตัวเลขจะถูกพิจารณาว่าเป็นคำที่แยกต่างหาก แต่ไม่ผ่านการเปลี่ยนแปลง กล่าวอีกนัยหนึ่งอักษรตัวพิมพ์เล็กตามด้วยตัวอักษรตัวพิมพ์ใหญ่หมายถึงตัวแบ่งคำ ตัวอักษรและตัวเลขใด ๆ ที่อยู่ติดกันแสดงถึงการแบ่งคำ ตัวอักษรตัวพิมพ์ใหญ่ตามด้วยตัวอักษรตัวพิมพ์ใหญ่ตัวอื่นและตัวพิมพ์เล็กหมายถึงตัวแบ่งคำ ...lU...=> ...l_u... ...l9...=> ...l_9... ...U9...=> ...u_9... ...9l...=> ...9_l... ...9U...=> ...9_u... ...UUl...=>...u_ul... ทั้งสองBuy24Beersและกลายเป็นbuy24beers จะกลายเป็น จะกลายเป็น buy_24_beers MacDonaldAndObrianmac_donald_and_obrian MACDonaldAndOBrianmac_donald_and_o_brian
13 code-golf  string 

6
การให้คะแนนสะพานมือ
หนึ่งในสิ่งที่ทำให้สะพานสัญญาน่าสนใจมากคือเกมเมตา "ประดิษฐ์" ที่มีความซับซ้อนสูง ระบบการให้คะแนนของมือนี้เป็นเพียงส่วนเล็ก ๆ ของมัน Bridge เป็นเกมไพ่กลโกง ผู้เล่นแต่ละคนได้รับในมือของ 13 ใบและเกมเริ่มต้นด้วยการเสนอราคา การเสนอราคาเป็นตัวกำหนดว่าส่วนที่เหลือของเกมจะเล่นอย่างไรและเป็นส่วนสำคัญของเกม เพื่อให้แน่ใจว่าคุณและคู่ของคุณจะไม่เสนอราคาสูงเกินไป (หรือต่ำเกินไป) ระบบการให้คะแนนแบบประดิษฐ์นี้ได้รับการพัฒนาขึ้นเพื่อบอกคุณว่ามือของคุณดีแค่ไหน เกณฑ์การให้คะแนน นี่คือตัวอย่างมือ: S:KQT5 H:J72 D:965 C:AK8 S, H, D, C เป็นตัวแทนของชุดสูท (โพดำ, หัวใจ, เพชรและคลับ) และส่วนที่เหลือเป็นไพ่ในชุดเหล่านั้น ดังนั้นมือนี้จึงมีราชินีแห่งโพดำ (Q), ราชาแห่งโพดำ (K), สิบโพดำ (T), ห้าโพดำ, แจ็คแห่งหัวใจ, เจ็ดดวง, ฯลฯ ระบบการให้คะแนนทำงานดังนี้: คุณได้รับ 4 แต้มสำหรับทุกแต้ม (A) คุณมี 3 คะแนนสำหรับทุกราชา (K), 2 …

1
Rickrolls ที่เป็นข้อความ
เนื่องจาก rickrolling เป็น meme ที่ยิ่งใหญ่ที่สุดในโลกคุณ[รู้กฎและดังนั้นฉัน]จึงต้องเขียนรหัสที่สั้นที่สุด ให้[คุณลง]มีข้อความที่ป้อนซึ่งประกอบด้วยตัวอักษรเครื่องหมายวรรคตอนและช่องว่าง เมื่อใดก็ตามที่วลี[โกหกและทำร้ายคุณ]จากบทที่สองแรกปรากฏในข้อความ ... We're no strangers to love You know the rules and so do I A full commitment's what I'm thinking of You wouldn't get this from any other guy I just wanna tell you how I'm feeling Gotta make you understand Never gonna …
13 code-golf  string 

10
จำนวนเฉพาะด้วยดัชนีเฉพาะ
เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออก / ส่งคืน 10,000 จำนวนเฉพาะจำนวนมากที่สร้างดัชนีนายก ถ้าเราเรียกว่า n วันสำคัญp(n)รายการนี้คือ 3, 5, 11, 17, 31, 41, 59 ... 1366661 เพราะ p(p(1)) = p(2) = 3 p(p(2)) = p(3) = 5 p(p(3)) = p(5) = 11 p(p(4)) = p(7) = 17 ... p(p(10000)) = p(104729) = 1366661 ช่องโหว่มาตรฐานเป็นสิ่งต้องห้ามและอนุญาตให้ใช้วิธีการส่งออกมาตรฐาน คุณอาจตอบด้วยโปรแกรมเต็มฟังก์ชั่นที่มีชื่อหรือฟังก์ชั่นที่ไม่ระบุชื่อ
13 code-golf  math  primes 

7
พิมพ์ Retro Rocket
(แรงบันดาลใจจากคำถาม SOนี้) คุณจะได้รับเป็นข้อมูลเดียวจำนวนเต็มบวกn ในตัวละครให้น้อยที่สุดให้ส่งจรวดในรูปแบบ ASCII ด้วยหัวก้อยและร่างกายที่ประกอบด้วยnเซกเมนต์ ไม่ควรมีช่องว่างต่อท้ายหรือขึ้นบรรทัดใหม่ หัวและหางของจรวดอยู่เสมอเหมือนกันสำหรับค่าของn ร่างกายประกอบด้วยส่วนที่แตกต่างกันสองประเภทซึ่งเป็นทางเลือก ตัวอย่างควรทำให้โครงสร้างของจรวดชัดเจน เอาต์พุตสำหรับn = 1: /**\ //**\\ ///**\\\ ////**\\\\ /////**\\\\\ +=*=*=*=*=*=*+ |\/\/\/\/\/\/| |.\/\/..\/\/.| |..\/....\/..| |../\..../\..| |./\/\../\/\.| |/\/\/\/\/\/\| +=*=*=*=*=*=*+ /**\ //**\\ ///**\\\ ////**\\\\ /////**\\\\\ เอาต์พุตสำหรับn = 2: /**\ //**\\ ///**\\\ ////**\\\\ /////**\\\\\ +=*=*=*=*=*=*+ |../\..../\..| |./\/\../\/\.| |/\/\/\/\/\/\| |\/\/\/\/\/\/| |.\/\/..\/\/.| |..\/....\/..| +=*=*=*=*=*=*+ |\/\/\/\/\/\/| |.\/\/..\/\/.| |..\/....\/..| …

4
วิธีที่จะไม่ลดเศษส่วน
การลดเศษส่วนในทางที่ผิด ในการแข่งขันกอล์ฟรหัสคุณต้องหาเศษส่วนที่สามารถลดความผิดได้ แต่ยังคงอยู่ในหมายเลขเดียวกัน หมายเหตุ:การลดเศษส่วนในทางที่ผิดจะมีคำจำกัดความที่แน่นอนดูรายละเอียด ตัวอย่าง: 64/16 = 6 4/1 6 = 4/1 = 4 แน่นอนว่าคุณไม่สามารถหยุดทั้ง 6es ได้ แต่ที่นี่คุณยังคงได้รับคุณค่าที่ถูกต้อง ในการท้าทายนี้คุณจะต้องค้นหาตัวอย่างเช่นนี้ รายละเอียด คุณต้องเขียนฟังก์ชัน / โปรแกรมที่รับจำนวนเต็มบวกหนึ่งตัวnเป็นอินพุตและเอาต์พุต / ส่งคืนรายการ / อาร์เรย์ของเศษส่วนในรูปแบบ numerator1,denominator1,numerator2,denominator2,... โปรแกรมที่มีเพื่อหาสำหรับแต่ละส่วนa/bด้วยa+b=nและa,b>0ไม่ว่าจะสามารถลดลงได้ทางที่ผิด (ไม่สำคัญว่าจะลดลงในแบบปกติหรือมีความเป็นไปได้หลายอย่างในการลดมันก็ต้องมีความเป็นไปได้ที่จะลดลงในลักษณะที่ผิดอย่างน้อยหนึ่งวิธี) คำจำกัดความของ วิธีที่ไม่ถูกต้อง:เศษส่วนสามารถลดลงได้ในทางที่ผิดถ้าหากต่อเนื่องกันของตัวเลขที่ต่อเนื่องกันปรากฏใน a และ b และถ้าค่าของเศษส่วนยังคงเหมือนเดิมหากคุณลบสตริงย่อย ตัวอย่าง: 1536/353 สามารถ 'ลด' เพื่อ 16/3 แต่ทั้งสองค่าไม่เท่ากันดังนั้นคุณจึงไม่สามารถลดส่วนนี้ทางที่ผิด โปรดทราบว่าคำจำกัดความของการลดวิธีที่ผิดนี้อาจรวมถึงเศษส่วนที่ลดลงในวิธีที่ถูกต้อง: 110/10 = 11/1อยู่ในคำนิยามของการลดวิธีที่ไม่ถูกต้องแม้ว่าจะเป็นขั้นตอนที่ถูกต้องก็ตาม เกณฑ์การให้คะแนน จำนวนไบต์น้อยที่สุดชนะ คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมที่รับจำนวนเต็มและส่งกลับอาร์เรย์หรือโปรแกรมที่ใช้ …

4
ค้นหาหมายเลขรงค์
น่าแปลกที่เรายังไม่มีความท้าทายในการระบายสีกราฟ! ด้วยกราฟที่ไม่ได้บอกทิศทางเราสามารถให้จุดสุดยอดสีแต่ละอันโดยที่ไม่มีจุดยอดสองจุดที่อยู่ติดกันใช้สีเดียวกัน จำนวนที่น้อยที่สุดχของสีที่แตกต่างกันจำเป็นเพื่อให้บรรลุนี้เรียกว่าสีจำนวนของกราฟ ตัวอย่างเช่นต่อไปนี้แสดงสีที่ถูกต้องโดยใช้จำนวนสีขั้นต่ำ: (พบใน Wikipedia) ดังนั้นจำนวนสีของกราฟนี้เป็นχ = 3 เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดจำนวนจุดยอดN <16 (ซึ่งมีหมายเลขจาก1ถึงN ) และรายการของขอบกำหนดจำนวนสีของกราฟ คุณอาจได้รับอินพุตและสร้างเอาต์พุตในรูปแบบที่สะดวกใด ๆ ตราบใดที่อินพุตไม่ได้ถูกประมวลผลล่วงหน้า นั่นคือคุณสามารถใช้สตริงหรืออาร์เรย์เพิ่มตัวคั่นที่สะดวกให้กับสตริงหรือใช้อาร์เรย์ที่ซ้อนกัน แต่ไม่ว่าคุณจะทำอะไรโครงสร้างที่แบนควรมีตัวเลขเหมือนตัวอย่างด้านล่าง (ตามลำดับเดียวกัน) คุณไม่สามารถใช้ฟังก์ชั่นที่เกี่ยวข้องกับทฤษฎีกราฟในตัว (เช่น Mathematica ChromaticNumber) คุณอาจสมมติว่ากราฟไม่มีลูป (ขอบเชื่อมต่อจุดยอดด้วยตัวเอง) ซึ่งจะทำให้กราฟไม่สามารถละลายได้ นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ ตัวอย่าง โปรแกรมของคุณจะต้องแก้ปัญหาเหล่านี้อย่างน้อยในเวลาที่เหมาะสม (ต้องแก้ไขอินพุตทั้งหมดอย่างถูกต้อง แต่อาจใช้เวลานานกว่าสำหรับอินพุตที่ใหญ่กว่า) เพื่อทำให้โพสต์สั้นลงในตัวอย่างต่อไปนี้ฉันนำเสนอขอบในรายการที่คั่นด้วยเครื่องหมายจุลภาคเดียว คุณอาจใช้ตัวแบ่งบรรทัดหรือคาดว่าอินพุตในรูปแบบอาร์เรย์ที่สะดวกหากคุณต้องการ สามเหลี่ยม (χ = 3) 3 1 2, 2 3, 1 3 "วงแหวน" ของ 6 …

15
เปรียบเทียบจำนวนเต็มสองจำนวนใน C หรือ C ++ โดยไม่มีตัวดำเนินการเปรียบเทียบ
สร้างโปรแกรมที่สั้นที่สุดซึ่งใช้จำนวนเต็มสองลายเซ็นเป็นอินพุต (ผ่าน stdin หรือเป็นอาร์กิวเมนต์) และแสดง 3 เอาต์พุตที่แตกต่างกันขึ้นอยู่กับว่าหมายเลขแรกคือ (1) มากกว่า (2) เล็กกว่าหรือ (3) เท่ากับวินาที จำนวน. จับ คุณไม่สามารถใช้สิ่งต่อไปนี้ในโปรแกรมของคุณ: มาตรฐานผู้ประกอบการเปรียบเทียบ: <, >, <=, >=, ,==!= ไฟล์ไลบรารีใด ๆ ที่นอกเหนือจากconio, หรือstdioiostream อักขระ ASCII ที่ไม่ใช่ ASCII หรือไม่สามารถพิมพ์ได้ ผู้ชนะ โปรแกรมที่มีจำนวนอักขระสั้นที่สุดเป็นผู้ชนะ

3
Codegolf: Quine และ Antiquine
ความท้าทายนี้คล้ายกับMeta Quine ของคุณหรือไม่ ควินเป็นโปรแกรมที่สร้างตัวเองบน STDOUT ความท้าทายนี้คือการสร้างโปรแกรม A ซึ่งเมื่อ run สร้างโปรแกรม B บน STDOUT โปรแกรม B เมื่อ run สร้างโปรแกรม A บน STDOUT โปรแกรม A และ B จะต้องเขียนด้วยภาษาเดียวกัน คำถามที่เชื่อมโยงมีข้อ จำกัด A! = B. นั่นดูง่ายเกินไป ดังนั้นสำหรับคำถามนี้เรายืนยันว่า A และ B เป็นโบราณวัตถุโดยใช้กฎต่อไปนี้: โปรแกรม A และ B ไม่สามารถใช้อักขระเดียวกันใด ๆ บันทึกสำหรับช่องว่างและตัวคั่นคำสั่งและอักขระเครื่องหมายวรรคตอน โปรแกรม A และ B ต้องประกอบด้วยอักขระอย่างน้อยหนึ่งตัวที่ไม่ใช่ช่องว่างหรือตัวคั่นคำสั่งหรืออักขระเครื่องหมายวรรคตอน สำหรับวัตถุประสงค์ของกฎ …
13 code-golf  quine 

3
สร้างตัวสร้างตัวต่อปริศนา + ตัวแก้ปริศนา
ในTwitch Plays Pokémonหนึ่งในอุปสรรคที่น่ารำคาญที่สุดที่สามารถพบเจอได้คือปริศนาน้ำแข็งที่คุณต้องเดินทางจากที่หนึ่งไปยังอีกที่หนึ่งโดยเลื่อนไปตลอดทางในทิศทางเดียวจนกว่าคุณจะชนกำแพงหรือก้อนหิน งานของคุณคือการสร้างโปรแกรมที่จะสร้างปริศนาน้ำแข็งสุ่มยาก โปรแกรมของคุณจะยอมรับสามตัวเลขM, NและPเป็น input (มี10 <= M <= 30, 15 <= N <= 40และ0 <= P < 65536): 12 18 และจะส่งออก: MโดยNตารางประกอบด้วย.และOคิดเป็นน้ำแข็งและหินตามลำดับ เครื่องหมายบอกตำแหน่งที่เป็นตัวต่อปริศนา เครื่องหมายตำแหน่งนี้ประกอบด้วยตัวอักษรL, R, TหรือBคิดเป็นซ้ายขวาด้านบนและด้านล่างตามด้วยหมายเลขที่แสดงตำแหน่ง (จากด้านซ้ายหรือด้านบน) ในด้านที่จะป้อนจาก เครื่องหมายตำแหน่งที่คล้ายกันซึ่งแสดงว่าตัวต่อออกจาก วิธีการแก้ปัญหาที่สั้นที่สุดเพื่อปริศนาประกอบด้วยลำดับของL, R, UและDตามลำดับ ตัวอย่างผลลัพธ์: ..O...O........... ............O..... ..O............... .......O.......... .................. ...........O...... O..O...........O.. ..........O....... ..O..........O.... ........O......... O....O.........O.. ............O..... R 4 …
13 code-golf 

5
แปลงองศาเป็นหนึ่งใน 32 คะแนนของเข็มทิศ
เข็มทิศ 32 จุดนั้น ... น่าสนใจที่จะพูดน้อยที่สุด โดย Denelson83 (ทำงานของตัวเอง) [ GFDLหรือCC-BY-SA-3.0 ] ผ่านWikimedia Commons ความท้าทายของคุณคือการวัดองศาและแปลงเป็นทิศทางบนเข็มทิศ 32 จุด แต่ละทิศทางคือ 11.25 (360/32) องศาไกลกว่าก่อนหน้า ตัวอย่างเช่น N (ทิศเหนือ) คือ 0 องศา NbE (เหนือไปทางตะวันออก) คือ 11.25 องศา NNE (เหนือ - ตะวันออกเฉียงเหนือ) คือ 22.5 องศาเป็นต้น สำหรับวิธีที่คุณควรจะได้รับทิศทาง 0 องศาคือ N, 90 องศาคือ E, 180 องศาคือ S และ 270 …
13 code-golf 

9
เกมตั้งปริศนา
อาจเป็นได้ว่าคุณรู้จักเกม Set (เกมที่ยอดเยี่ยมสำหรับเด็ก ๆ ) เกมไพ่ที่มี 81 ใบซึ่งการ์ดแต่ละใบมีตัวเลขอยู่ด้วย 4 คุณลักษณะที่แตกต่างกัน (รูปแบบหมายเลขสีและการเติม) แต่ละแอตทริบิวต์มี 3 ค่าแตกต่างกัน: form: wave, oval, diamond colour: red, purple, and green number: 1, 2, 3 fill: none, dashed, opaque. วางไพ่ 12 ใบบนโต๊ะและตอนนี้ความท้าทายคือการระบุชุด ชุดประกอบด้วยไพ่สามใบที่ทุกค่าแอตทริบิวต์เกิดขึ้น 0, 1 หรือ 3 ครั้ง การมีไพ่ 2 ใบที่มีตัวเลขสีแดงหรือทึบแสงหรือหมายเลข 1 นั้นไม่ดี ดูที่จัดลิงค์สำหรับคำอธิบายภาพมากขึ้น ฉันจินตนาการรหัสสำหรับการ์ดที่มีการเข้ารหัสคุณลักษณะทั้งหมด "WP2N" หมายถึง 2 …
13 code-golf 

8
ลบไฟล์“ .DS_Store” ที่น่ารำคาญเหล่านั้น
หากคุณใช้ OS X คุณอาจคุ้นเคยกับไฟล์ ".DS_Store" ที่น่าอับอายซึ่งถูกสร้างขึ้นอันเป็นผลมาจากการใช้ Finder ความท้าทายคือการเขียนโค้ดที่จะผ่านทั้งระบบไฟล์และลบไฟล์ใด ๆ ที่ชื่อว่า ".DS_Store" Classic code golf - รหัสที่สั้นที่สุดชนะ ชี้แจง: รหัสไม่จำเป็นต้องลบไฟล์. DS_Store ใด ๆ ที่ต้องมี superuser สมมติว่าไม่มีไฟล์ดังกล่าวอยู่ รหัสควรลบเฉพาะไฟล์. DS_Store ที่เกี่ยวข้องเท่านั้น

20
ลำดับ FIBonacci
สำหรับโค้ดกอล์ฟนี้คุณจะได้รับอินพุตของลำดับfib onacci นั่นคือลำดับฟีโบนักชีปกติ แต่มีหมายเลขหนึ่งไม่ถูกต้อง ดูซีเควนซ์ที่บ้าคลั่ง ! รับมัน:D งานของคุณคือค้นหาหมายเลขที่ไม่ถูกต้องและพิมพ์ดัชนี (ตาม 0) ของหมายเลขนั้น ตัวอย่างเช่น: Input : 1 1 2 9 5 8 13 Output: 3 Input : 8 13 21 34 55 80 Output: 5 Input : 2 3 5 5 13 21 Output: 3 ข้อมูลจำเพาะ: ลำดับอาจเริ่มที่หมายเลขใดก็ได้ ตัวเลขสองคนแรกของท่านจะเสมอถูกต้อง รหัสที่สั้นที่สุด (จำนวนตัวอักษร) ชนะ

1
ไขปริศนา 8 อัน
8 Puzzle เป็นตัวแปรที่เล็กกว่าของ 15Puzzle (หรือปริศนาตัวต่อ ) คุณมี3x3กริดซึ่งเต็มไปด้วยตัวเลขตั้งแต่ 0-8 (0 หมายถึงไทล์เปล่า) ที่จัดเรียงตามลำดับแบบสุ่ม งานของคุณคือการป้อนตาราง 3x3 และแสดงทางออกที่สั้นที่สุด (ย้ายขั้นต่ำ) เพื่อไปที่สถานะเป้าหมาย แสดงแต่ละกระดานรวมถึงสถานะแรกในเอาท์พุท อาจมีวิธีแก้ไขปัญหาที่ดีที่สุดหลายอย่างคุณเพียงแค่พิมพ์ อินพุต: (ตัวอย่างเล็ก ๆ ) 1 2 0 4 5 3 7 8 6 เอาท์พุท: 2 <- denotes minimum number of moves required 1 2 0 4 5 3 7 8 6 1 …

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