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

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

30
จำนวนที่หายไปคืออะไร (หารด้วย 9)
ท้าทาย ให้ตัวเลขทั้งหมดหารด้วย 9 และหนึ่งหลักที่ขาดหายไปหาตัวเลขที่หายไป ตัวเลขที่หายไปอาจแสดงด้วยอักขระอื่นนอกเหนือจากตัวเลข 0-9 ตราบใดที่มีความสอดคล้องกัน หากตัวเลขที่หายไปอาจเป็น 0 หรือ 9 ให้เอาบางสิ่งออกมาเพื่อแสดงว่าเป็นเช่นนั้น สมมติว่าผู้ใช้นั้นฉลาดพอที่จะใส่ตัวเลขหนึ่งหลักที่ขาดหายไปและตัวเลขหนึ่งตัวเท่านั้น กรณีทดสอบ ในกรณีทดสอบตัวเลขที่ขาดหายไปจะถูกแสดงด้วยเครื่องหมายคำถาม 123? -> 3 ?999 -> 0 or 9 ?0023 -> 4 000?1 -> 8

28
เลขชี้กำลังที่ใหญ่ที่สุด
รับจำนวนเต็มn >= 2ส่งออกเลขชี้กำลังที่ใหญ่ที่สุดในการแยกตัวประกอบเฉพาะ นี่คือ OEIS ลำดับA051903 ตัวอย่าง n = 144ให้ 2^4 * 3^2ตัวประกอบที่สำคัญของมันคือ 4ตัวแทนที่ใหญ่ที่สุดคือ กรณีทดสอบ 2 -> 1 3 -> 1 4 -> 2 5 -> 1 6 -> 1 7 -> 1 8 -> 3 9 -> 2 10 -> 1 11 -> 1 12 -> 2 144 -> …

10
สร้างตัวเลขที่เป็นมิตรกับ Numpad
แรงบันดาลใจจากการสร้างแป้นพิมพ์ตัวเลขที่เป็นมิตร พื้นหลัง แผ่นตัวเลขจำนวนมากมีเค้าโครงดังต่อไปนี้: 789 456 123 0 เรากำหนดย่านที่ใกล้เคียงของตัวเลขเป็นชุดของเซลล์ที่อยู่ติดกันแบบตั้งฉากกับจำนวนที่แสดงรวมถึงตัวมันเอง ยกตัวอย่างเช่นเขต 2 เป็นและพื้นที่ใกล้เคียงเป็น{1,5,3,0,2} 0 {1,2,0}มีรายชื่อพื้นที่ใกล้เคียงของแต่ละหมายเลขด้านล่างกรณีทดสอบด้านบน เรากำหนดหมายเลขที่จำง่ายของ numpadเป็นจำนวนเต็มบวกโดยที่เมื่อเขียนเป็นทศนิยมโดยไม่มีเลขศูนย์นำหน้าแต่ละหลักยกเว้นตัวเลขแรกอยู่ในพื้นที่ใกล้เคียงของตัวเลขก่อนหน้า ตัวอย่างเช่น, 7856 เป็นหมายเลขที่เหมาะสำหรับเพื่อนเพราะ 8 อยู่ในพื้นที่ใกล้เคียง 7, 5 อยู่ในเพื่อนบ้าน 8 และ 6 อยู่ในพื้นที่ใกล้เคียง 5 1201 เป็นตัวเลขที่เป็นมิตรกับตัวเลขเนื่องจาก 2 อยู่ในพื้นที่ใกล้เคียง 1, 0 อยู่ในพื้นที่ใกล้เคียง 2 และ 1 อยู่ในพื้นที่ใกล้เคียง 0 82 ไม่ใช่หมายเลขที่เหมาะสำหรับเพื่อนเพราะ 2 ไม่ได้อยู่ในละแวกที่ 8 802 ไม่ใช่ตัวเลขที่เป็นมิตรของตัวเลขเนื่องจาก 0 ไม่อยู่ในพื้นที่ใกล้เคียงที่ 8 …

8
ฉันสมมาตรไม่ใช่ palindromic!
พื้นหลัง แรงบันดาลใจจากฉันเป็นสีขาว คุณเป็น ที่ซึ่งมีการนำเสนอข้อเท็จจริงที่น่าตกใจว่า“ ()()ไม่ใช่ Palindrome แต่())(” ฉันถามตัวเองว่าอะไรคือ()()คำตอบคือ: มันเป็นสตริงที่มีแกนสมมาตรในแนวตั้ง! งาน เขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริง S (หรือเทียบเท่าที่เหมาะสมในภาษาของคุณ) เป็นอินพุตตรวจสอบความสมมาตรตามแกนตั้งและส่งกลับค่าความจริงหรือค่าเท็จตามลำดับ คุณสามารถใช้วิธีการที่สมเหตุสมผลเพื่อรับอินพุตและจัดเตรียมเอาต์พุต สมมาตรสะท้อนแสง การสะท้อนสมมาตรรอบแกนตั้ง (หรือสมมาตรซ้ายขวา) หมายความว่าหากคุณวางกระจกในแนวตั้งตรงกึ่งกลางของสตริงภาพสะท้อนของครึ่งแรกของสตริงจะเหมือนกับครึ่งหลังของสตริง ตัวอย่างเช่นสตริงต่อไปนี้เป็นสมมาตรการสะท้อนรอบแกนตั้ง: ()() ()()() [A + A] WOW ! WOW OH-AH_wx'xw_HA-HO (<<[[[T*T]]]>>) (:) )-( ())(() qpqp ในขณะที่ต่อไปนี้ไม่: ())( ((B)) 11 +-*+- WOW ! wow (;) qppq กฎของการแข่งขัน •โปรแกรมหรือฟังก์ชั่นของคุณจะได้รับเฉพาะอักขระ ASCII ที่พิมพ์ได้ คุณสามารถรวมหรือไม่ใช้สตริงว่าง (ซึ่งเป็นสมมาตรแน่นอน!) …
22 code-golf  string 

9
มันเป็นคำนามหรือไม่?
กำหนดสตริงเป็นอินพุตให้พิจารณาว่าเป็นคำนามหรือไม่ คุณจะได้รับคะแนน 1,000 คำในภาษาอังกฤษที่พบมากที่สุดโดยคุณจะระบุว่าเป็นคำนามหรือไม่ โปรแกรมหรือฟังก์ชั่นที่จำแนกประเภทคำเหล่านั้นอย่างถูกต้องใน 50 ไบต์หรือน้อยกว่านั้นจะเป็นผู้ชนะ คำนาม คำนามเป็นคำที่ใช้แทนสิ่งต่าง ๆ มันซับซ้อนมากขึ้น แต่นั่นเป็นแนวคิดพื้นฐาน ในกรณีที่คำอาจเป็นคำนามหรือส่วนอื่น ๆ ของคำพูดฉันจัดเป็นคำนามแม้ว่าจะเป็นการใช้งานที่หายาก หรือจริง ๆ แล้วฉันปล่อยให้เว็บไซต์นี้ทำเพื่อฉัน คำที่คุณจะได้คะแนนคือคำทั่วไป 1,000 คำซึ่งมาจากวิกิพีเดียธรรมดาที่มีการเพิ่ม "สอง" และ "ครั้งเดียว" ของบรรดาเหล่านี้เป็น586 คำนามและเหล่านี้เป็น414 ไม่ใช่คำนาม- คุณสามารถค้นหาทั้งหมดสามรายการที่นี่ โปรดทราบว่าอินพุตเหล่านี้ทั้งหมดเป็นตัวเล็ก รายการเหล่านี้ถือเป็นที่สุด - อย่าพยายามโต้แย้งไวยากรณ์ โปรแกรมของคุณจะได้รับการพิจารณาว่าถูกต้องหากมันแสดงผลลัพธ์ที่เป็นความจริงในอินพุตซึ่งเป็นคำนามและผลลัพธ์ที่ผิดพลาดในอินพุตที่ไม่ใช่คำนาม รายละเอียดปลีกย่อย: โปรแกรมต้องมีเอาต์พุตที่กำหนดไว้ ถ้าคุณต้องการที่จะใช้การสุ่มให้เมล็ด โปรแกรมไม่ได้รับอนุญาตให้ใช้รายการคำนามในตัวหรือฟังก์ชั่นการพูดบางส่วนในตัวอื่น ๆ ตัวอย่าง: a: noun act: noun active: noun about: non-noun above: non-noun across: …

22
โมดูลผกผันการคูณแบบแยกส่วน
งานของคุณคือกำหนดตัวเลขจำนวนเต็มสองจำนวนaและbคำนวณค่าผกผันการคูณแบบแยกส่วนของโมดูโล b หากมีอยู่ ผกผันแบบแยกส่วนของaโมดูโลbเป็นจำนวนดังกล่าวว่าc ac ≡ 1 (mod b)หมายเลขนี้เป็นโมดูโลที่ไม่ซ้ำกันbสำหรับคู่ใด ๆและa bมันมีอยู่เฉพาะในกรณีที่ตัวหารร่วมมากของaและเป็นb1 หน้าวิกิพีเดียสำหรับผกผัน modular สามารถปรึกษาถ้าคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อ อินพุตและเอาต์พุต อินพุตถูกกำหนดเป็นทั้งสองจำนวนเต็มหรือรายการของสองจำนวนเต็ม โปรแกรมของคุณควรส่งออกหมายเลขเดียวอินเวอร์สมัลติคูณแบบแยกส่วนที่อยู่ในช่วงเวลา0 < c < bหรือค่าที่ระบุว่าไม่มีอินเวอร์ส ค่าสามารถเป็นอะไรก็ได้ยกเว้นตัวเลขในช่วง(0,b)และอาจเป็นข้อยกเว้น อย่างไรก็ตามค่าควรจะเหมือนกันสำหรับกรณีที่ไม่มีค่าผกผัน 0 < a < b สามารถสันนิษฐานได้ กฎระเบียบ โปรแกรมควรเสร็จในบางจุดและควรแก้แต่ละกรณีทดสอบในเวลาน้อยกว่า 60 วินาที ช่องโหว่มาตรฐานใช้ กรณีทดสอบ กรณีทดสอบด้านล่างมีให้ในรูปแบบ a, b -> output 1, 2 -> 1 3, 6 -> Does not exist …

22
เอาเธอไว้ข้างหลังฉันซาตาน - นายก!
ซาตาน Primes พวกเขาเป็นใคร? พวกเขาPrimesมี666 สิ่งเหล่านี้คือซาตาน - ช่วงเวลา[46663,266677,666599,666683,616669] เหล่านี้ไม่ใช่ :[462667,665669,36363631,555] พล็อต ทุกหมายเลขที่ใหญ่กว่า 6661 มีซาตาน primes อยู่ข้างหลังเขา ความท้าทาย รับจำนวนเต็มn>6661หา Satan-Prime ด้านหลัง (หรือเท่ากัน) และใกล้เคียงที่สุดกับตัวเอง ตัวอย่าง จำนวนเต็มn=30000มี 3 ซาตาน Primes (SP) [6661, 16661, 26669]ที่อยู่เบื้องหลังมัน: รหัสของคุณจะต้องส่งคืน26669ที่ใกล้เคียงที่สุด กรณีทดสอบ Input-> เอาท์พุท 6662->6661 10000->6661 66697->66697 (a SP returns himself) 328765->326663 678987->676661 969696->966677 กฎระเบียบ รหัสnเล็กน้อยควรใช้ได้กับทุกช่วงภาษาของคุณ นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!
22 code-golf  primes 

13
ทำ NP: หากลุ่มที่ใหญ่ที่สุด
พื้นหลัง ในขณะที่เขียนสิ่งนี้ปัญหา P vs NP ยังไม่ได้รับการแก้ไข แต่คุณอาจเคยได้ยินบทความใหม่ของNorbert Blum ที่อ้างว่าเป็นหลักฐานพิสูจน์ว่า P! = NP ซึ่งเป็นที่สงสัยกันว่าผิดพลาด (แต่เราจะเห็น) ปัญหาที่กล่าวถึงในบทความนี้เป็นปัญหากลุ่มพรรคพวก อย่างน้อยนั่นคือสิ่งที่ฉันอ่านในบทความในหนังสือพิมพ์ดังนั้นให้แก้ไขฉันถ้าฉันผิด แต่ไม่ว่าในกรณีใดฉันต้องการให้คุณเขียนโปรแกรมที่ช่วยแก้ไขตัวแปรต่อไปนี้: งาน สมมติว่าเรามีโรงเรียนขนาดใหญ่ที่มีนักเรียนจำนวนมาก นักเรียนเหล่านี้แต่ละคนมีเพื่อนที่โรงเรียนนี้ ก๊กของนักเรียนเป็นกลุ่มประกอบด้วยเพียงของนักเรียนที่เป็นเพื่อนกับสมาชิกแต่ละคนอื่น ๆ โปรแกรมของคุณจะได้รับนักเรียนที่เป็นเพื่อนเป็นคู่ของมัน จากข้อมูลนี้โปรแกรมจะต้องพบว่าขนาดของก๊กที่ใหญ่ที่สุด นักเรียนจะระบุรหัสจำนวนเต็ม หากคุณชอบคำศัพท์ทางคณิตศาสตร์หมายความว่าคุณได้รับขอบของกราฟที่ไม่ได้บอกทิศทางโดยแต่ละโหนดมีสองโหนด อินพุต [[1,2],[2,5],[1,5]]การป้อนข้อมูลของคุณจะเป็นรายการที่ไม่ว่างเปล่าของคู่จำนวนเต็มบวกเช่น คุณสามารถรับอินพุตนี้ในรูปแบบที่เหมาะสมเช่นเป็นอาร์เรย์ของอาร์เรย์เป็นบรรทัดของข้อความที่มีตัวเลขสองตัวต่อกัน ฯลฯ ... เอาท์พุต ผลลัพธ์ที่คาดหวังคือตัวเลขเดียวn >= 2: ขนาดของกลุ่มที่ใหญ่ที่สุด ด้วยตัวอย่างเช่นการป้อนข้อมูลดังกล่าวข้างต้นผลจะเป็น3เช่นเดียวกับนักเรียนทุกคน ( 1, 2และ5) เป็นเพื่อนกับแต่ละอื่น ๆ กรณีทดสอบ [[1,2]] => 2 [[1,2],[3,1],[3,4]] => 2 [[1,2],[2,5],[1,5]] …

30
ไม่มีใครรู้ว่าตัวเลข GAU
ฉันขอแนะนำคุณกับหมายเลข GAU GAU(1) = 1 GAU(2) = 1122 GAU(3) = 1122122333 GAU(4) = 11221223331223334444 GAU(6) = 11221223331223334444122333444455555122333444455555666666 ... GAU(10) = 11221223331223334444122333444455555122333444455555666666122333444455555666666777777712233344445555566666677777778888888812233344445555566666677777778888888899999999912233344445555566666677777778888888899999999910101010101010101010 ความท้าทายนี้ค่อนข้างง่าย! รับจำนวนเต็ม n> 0 ค้นหาจำนวนหลักของ GAU (n) ตัวอย่าง มาทำให้GAU (4) เราทำตามขั้นตอนต่อไปนี้ (จนกว่าเราจะได้ถึง 4) และต่อกัน [1][122][122333][1223334444] คุณต้องเขียนทุก ๆ หลาย ๆ ครั้งตามมูลค่าของมัน แต่คุณต้องนับทุก ๆ ครั้งตั้งแต่ 1 ลองทำGAU (5) เราจะต้องนับจาก 1 ถึง …

23
มหาวิหารเศษส่วน
รับจำนวนเต็มบวกn >= 1เอาท์พุทnแถวแรกของโครงสร้างต่อไปนี้: # # # ### # # # # # ## ## ##### # # # # # # # # # # ### # ## ## ## # ## ### ### ####### n-th แถว 1 การจัดทำดัชนีเป็นฐานเป็นตัวแทนของnกระจกโดยไม่คัดลอกตัวอักษรตัวสุดท้ายที่มี#ในสถานที่ของที่ 1 และ<space>ในสถานที่ของ 0. แถวทั้งหมดเป็นศูนย์กลาง คุณต้องแสดงผลเป็น ASCII-art แต่คุณสามารถใช้อักขระที่ไม่ใช่ช่องว่างแทนตำแหน่งที่ฉันใช้#ในตัวอย่าง อนุญาตให้ใช้ช่องว่างต่อท้ายและขึ้นบรรทัดใหม่ได้ เอาต์พุตต้องมีลักษณะตัวอย่างและไม่มีช่องว่างนำหน้าหรือบรรทัดใหม่นำหน้า คุณสามารถดู 1023 …

13
ยุบจำนวนเต็มต่อเนื่อง
ที่เกี่ยวข้อง: บอกฉันว่าฉันต้องทำปัญหาคณิตศาสตร์มากแค่ไหน! ท้าทาย ได้รับในเชิงบวกอย่างเคร่งครัดขึ้นอย่างเคร่งครัด L รายการจำนวนเต็มและ 3 ความยาว≤ N ≤ของ L จำนวนเต็มแทนที่จำนวนเต็มกลางของ L's จำนวนเต็มวิ่งติดต่อกันของความยาว≥ N -กับขีดเดียว กฎระเบียบ ช่องว่างในแนวนอนไม่เกี่ยวข้อง คุณสามารถเลือกที่จะคงไว้ซึ่งตัวแนะนำตัวคั่นและตัวคั่นของรูปแบบรายการเริ่มต้นของภาษาของคุณ ดูตัวอย่างรูปแบบด้านล่าง ตัวอย่างข้อมูล L = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24ตัวอย่างเหล่านี้ใช้ N = 3 → 3 5 - 8 10 - …

30
เพิ่มอาร์เรย์ด้วยตัวเอง
ความท้าทายของคุณในวันนี้คือการจัดเรียงแยกเป็นชิ้น ๆ และเพิ่มชิ้นส่วนเหล่านั้น นี่คือวิธีการทำงานนี้: โปรแกรมหรือฟังก์ชั่นของคุณจะได้รับอาร์เรย์ของจำนวนเต็มและขนาดก้อนa Lอาเรย์ควรจะแบ่งออกเป็นขนาดของอาร์เรย์Lถ้าความยาวของอาเรย์ไม่สามารถหารได้Lดังนั้นอาเรย์ควรจะมี 0 ต่อท้ายมันเพื่อให้มันหารได้อย่างเท่าเทียมกัน เมื่ออาร์เรย์ถูก chunked ชิ้นทั้งหมดจะถูกรวมเข้าด้วยกันเป็นองค์ประกอบที่ชาญฉลาด อาร์เรย์ที่เป็นผลลัพธ์จะถูกส่งออก คุณสามารถสันนิษฐานได้ว่าLมีค่ามากกว่า 0 และนั่นaก็ไม่ใช่สิ่งที่ว่างเปล่า คุณไม่สามารถทำการสันนิษฐานได้ว่าaเนื้อหาของเป็นบวก นี่คือตัวอย่าง: [1,2,3,4,5,6,7,8], 3 => [1,2,3]+[4,5,6]+[7,8,0] => [1+4+7,2+5+8,3+6+0] => [12,15,9] กรณีทดสอบ: Array Length Output [1] 1 [1] [1] 3 [1,0,0] [0] 3 [0,0,0] [1,2] 3 [1,2,0] [1,2] 1 [3] [-1,1] 2 [-1,1] [-7,4,-12,1,5,-3,12,0,14,-2] 4 [12,-1,0,1] …

8
ผลิตภัณฑ์ที่เท่ากับผลรวมและในทางกลับกัน
คู่ความสนุกของ equivalences คือ1 + 5 = 2 · 3และ1 · 5 = 2 + 3 มีหลายเช่นนี้เป็นอีกหนึ่งคือ1 + 1 + 8 = 1 · 2 · 5และ1 · 1 · 8 = 1 + 2 + 5 โดยทั่วไปผลิตภัณฑ์ของจำนวนเต็มบวกnเท่ากับผลรวมของจำนวนเต็มบวกnตัวและกลับกัน ในความท้าทายนี้คุณต้องสร้างชุดค่าผสมจำนวนเต็มบวกทั้งหมดสำหรับอินพุตn> 1โดยไม่รวมการเปลี่ยนลำดับ คุณสามารถส่งออกสิ่งเหล่านี้ในรูปแบบที่เหมาะสม ตัวอย่างเช่นโซลูชันที่เป็นไปได้ทั้งหมดสำหรับn = 3คือ: (2, 2, 2) (1, 1, 6) (1, …

5
รหัส Golfinator-3000
อย่างที่ทุกคนรู้การเพิ่มinator-3000คำนามให้กลายเป็นเรื่องที่ยอดเยี่ยม แต่มีอะไรอีกที่สามารถทำให้คำเย็นขึ้นได้? รับสตริง ASCII เป็นอินพุทเอาท์พุทความเย็นของคำ การคำนวณความเย็น มี 4 องค์ประกอบในการคำนวณความเย็นของคำ คำว่าตัวเอง คะแนนฐานคือจำนวนตัวอักษรใหญ่คูณด้วย 1,000 หมายเลขสิ้นสุด หมายเลขที่ท้ายคำ (เช่น burninator- 3000 ) จะถูกเพิ่มไปยังคะแนนฐานแต่หากตัวเลขมากกว่า 4 หลักแสดงว่าพวกเขาโลภมากเกินไปและควรละเว้นเลขดังกล่าว ตัวเชื่อมต่อ ช่องว่างก่อนที่หมายเลขท้ายจะเพิ่ม 1,000 ในขณะที่เครื่องหมายขีดคั่นเพิ่ม 2000 สัญลักษณ์อื่นใดหรือไม่มีสัญลักษณ์เลยจะไม่มีผลใด ๆ คำต่อท้าย หากคำนั้นสิ้นสุดatorให้เพิ่มคะแนนเป็นสองเท่า ถ้ามันจบลงinatorให้ทำคะแนนสามเท่า สิ่งเหล่านี้ไม่คำนึงถึงขนาดตัวพิมพ์ ตัวอย่างเช่นBurninator-3000สามารถคำนวณดังนี้ 1 Capital letter - Base Score: 1000 (1000(base) + 3000(number) + 2000(hyphen)) * 3(suffix) = 18000 Testcases …
22 code-golf  string 

27
เรียงลำดับรายการที่แตกต่าง
รายการความแตกต่างของรายการจำนวนเต็มคือความแตกต่างของรายการสมาชิกที่ต่อเนื่องกัน ตัวอย่างเช่นรายการความแตกต่างของ 1, 3, 2 ,4 คือ 2, -1, 2 งานของคุณคือทำรายการความแตกต่างและเอาท์พุทว่ารายการความแตกต่างจะเป็นอย่างไรถ้าเรียงลำดับรายการต้นฉบับ ตัวอย่างเช่นรายการความแตกต่าง 2, 1, -2, -1 อาจแสดงรายการ 2 4 5 3 2 ซึ่งเมื่อเรียงเป็น 2 2 3 4 5 ซึ่งมีรายการแตกต่างกันไป 0 1 1 1 นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์น้อยกว่าจะดีกว่า

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