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

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

30
สคริปต์ที่เอาต์พุตสคริปต์ที่พิมพ์อินพุตที่กำหนด
เขียนชิ้นส่วนของรหัสที่ใช้สตริงเป็นอินพุตและส่งออกชิ้นส่วนของรหัสในภาษาเดียวกันกับที่เมื่อรันจะส่งออกสตริงอินพุตเริ่มต้น มันจะต้องสามารถจัดการกับการรวมกันของตัวละคร AZ, az และ 0-9 ตัวอย่างใน Python: import sys print "print('" + sys.argv[1] + "')" ได้รับการป้อนข้อมูลของก็จะกลับtesting123print('testing123') ตั้งแต่นี้เป็นโค้ดกอล์ฟคำตอบที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ

11
สายไหนที่จะตัด
ภารกิจนี้เกี่ยวกับการบีบอัดและประมวลผลลำดับเงื่อนไข ในเกมที่ให้การพูดคุยและไม่มีใครระเบิดเป็นระเบิด defuser ต้องปลดอาวุธระเบิดด้วยความช่วยเหลือของคำแนะนำที่ถูกส่งโดยผู้เชี่ยวชาญด้านการให้คำปรึกษาที่ซับซ้อนDefusal ระเบิดคู่มือการใช้งาน ความท้าทายนี้เกี่ยวข้องกับโมดูล "ในหัวข้อเรื่องของสายไฟ" อธิบายไว้ในหน้า 5 ของคู่มือ Defuser จะแสดงด้วยสายไฟสีต่างๆ มีเพียงหนึ่งเดียวเท่านั้นที่ปลอดภัยในการตัด - ส่วนที่เหลือทำให้เกิดการระเบิด รหัสของคุณทำหน้าที่เป็นผู้เชี่ยวชาญในการกำหนดสายที่จะตัดตามจำนวนและสีของสายตามคำแนะนำในคู่มือการทำซ้ำภายใต้ "กฎการตัดลวด" อินพุต:รายการหรือสตริงที่เรียงลำดับของสีลวด 3, 4, 5 หรือ 6 สีแสดงด้วยตัวอักษรตัวพิมพ์ใหญ่: B: ดำ U: สีน้ำเงิน R: แดง W: ขาว Y: สีเหลือง หมายเหตุสีฟ้าที่เป็นไม่ได้UB อินพุตยังมีบิต (จริง / เท็จหรือ 0/1) ว่าตัวเลขสุดท้ายของหมายเลขซีเรียลของระเบิดนั้นเป็นเลขคี่หรือไม่ซึ่งเป็นเงื่อนไขที่ใช้ในบางกฎ คุณไม่ควรใช้จำนวนสายเป็นอินพุตแยกต่างหาก แต่รับมาจากรายการหรือชุดสี คุณอาจมีรายการหรือสตริงของคุณมีองค์ประกอบเทอร์มิเนเตอร์หลังจากสีบางทีภาษาของคุณไม่สามารถบอกได้ว่านานแค่ไหน เทอร์มิเนเตอร์นี้ควรเป็นค่าคงที่ที่ไม่ได้เข้ารหัสข้อมูลเพิ่มเติม เอาท์พุท:หมายเลข 1 ถึง 6 เพื่อระบุว่าจะตัดสายใด …

20
Interquine - สองโปรแกรมที่แสดงผลออกมาเป็นวง
โปรแกรม A เอาท์พุทโค้ดของโปรแกรม B เมื่อทำงานและ B เอาต์พุตของแหล่ง A ที่ต้องการ: เพียงหนึ่งภาษาในทั้งสองโปรแกรม โปรแกรมต่างกัน โปรแกรมหนึ่งที่ออกเองไม่มีสิทธิ์ได้รับ ทั้งสองโปรแกรมไม่ว่างเปล่าหรือมีความยาวอย่างน้อย 1 ไบต์ ขึ้นบรรทัดใหม่ในทั้งแหล่งที่มาและเอาท์พุทจะถูกละเว้น stdin ถูกปิด อย่าอ่านอะไรเลย (ดังนั้นคุณไม่สามารถอ่านต้นฉบับและปรับเปลี่ยนได้) เอาต์พุตไปที่ stdout แก้ไข: stdin /dev/nullเชื่อมต่อกับ คุณสามารถสั่งซื้อได้ถ้าปิด ห้ามใช้randomฟังก์ชั่น เพิ่มเติม: ให้คำอธิบายถ้าเป็นไปได้ คะแนนเป็นความยาวรวม การขึ้นบรรทัดใหม่จะไม่นับหากไม่มีผลกับโปรแกรม
29 code-golf  quine 

25
ตัวเลข Palindromic ที่มีการบิดแบบไบนารี
คำเตือน: นี่ไม่ใช่ความท้าทาย "เฮ้ลองวาดเค้กด้วยศิลปะ ASCII"! โปรดอ่านต่อ); บางครั้งที่ผ่านมามันเป็นวันเกิดของฉันฉันตอนนี้ 33 ดังนั้นจึงมีประเพณีทางสังคมที่น่าอึดอัดใจนี้ประกอบด้วยการเชิญครอบครัวและเพื่อน ๆ วางเทียนที่มีหมายเลขเหมือนบนเค้กร้องเพลงและของขวัญเปิด 33 -------- แทนที่จะใช้ตัวเลขฉันสามารถใช้ระบบเลขฐานสองในการวางเทียนมาตรฐานได้: ฉันวางไว้ 6 ชิ้นบนเค้กและจุดสองจุด 100001 -------- ฉันเห็นได้ว่าทั้งเลขทศนิยมและเลขฐานสองในยุคของฉันนั้นช่างน่ากลัวมาก! ท้าทาย ฉันต้องการที่จะรู้ว่าหมายเลขอื่น ๆ สามารถวางบนเค้กด้วยเทียนและเป็น Palindromic ทศนิยมและไบนารี เขียนโปรแกรม / ฟังก์ชั่นเพื่อทดสอบว่าตัวเลขเป็น palindromic ทั้งทศนิยมและไบนารี แต่เดี๋ยวก่อนมีอีกมากมาย: ในระบบเลขฐานสอง, เลขศูนย์นำหน้าสำหรับการทดสอบ! อินพุต ทศนิยม x จำนวนที่ผมอยากจะทดสอบว่ามันเป็นวันเกิดของ palindromic ด้วย 0 <x <2 32 -1 (ใช่คนที่อยู่ในมิติของฉันอาศัยอยู่นานมาก) เอาท์พุต ความจริงถ้ามันตรงตามเงื่อนไขทั้งสองนี้ Falsey: การแทนค่าทศนิยมของตัวเลขคือ palindrome …

30
มันเป็นหมายเลข Sphenic หรือไม่
หมายเลข Sphenic คือตัวเลขที่เป็นผลคูณของจำนวนเฉพาะสามค่า หมายเลข Sphenic 30, 42, 66, 70, 78, 102, 105, 110, 114แรกไม่กี่ นี่คือลำดับA007304ใน OEIS งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นเพื่อตรวจสอบว่าจำนวนเต็มที่ป้อนเข้าเป็นตัวเลข Sphenic การป้อนข้อมูล: จำนวนเต็มตั้งแต่ 0 ถึง 10 ^ 9 ซึ่งอาจเป็นหรือไม่ใช่เลข Sphenic ก็ได้ เอาท์พุท: ค่าความจริง / เท็จที่ระบุว่าอินพุตเป็นหมายเลข Sphenic ตัวอย่าง: 30 -> true 121 -> false 231 -> true 154 -> true 4 -> false …

29
เบอร์ไก่ McNugget
ลักษณะ ตัวเลข Chicken McNugget เป็นตัวเลขที่สามารถแสดงผลรวมเป็น 6, 9 หรือ 20 - ขนาดเริ่มต้นของกล่องChicken McNuggets ที่มีชื่อเสียงที่จำหน่ายโดย McDonald's ในผลรวมนั้นตัวเลขอาจเกิดขึ้นมากกว่าหนึ่งครั้งดังนั้นจึง6 + 6 = 12เป็นตัวเลขเช่นกันและจำนวนจะต้อง "มี" อย่างน้อยหนึ่งขนาดที่กล่าวถึง หมายเลข Chicken McNugget แรกคือ: 6 9 6 + 6 = 12 6 + 9 = 15 9 + 9 = 6 + 6 + 6 = 18 20 6 …

8
ทำการจัดเรียงแรงโน้มถ่วง
ท้าทาย รับรายการจำนวนเต็มแสดงวิธีจัดเรียงแรงโน้มถ่วง เรียงลำดับแรงโน้มถ่วง ในการจัดเรียงแรงโน้มถ่วงลองนึกภาพตัวเลขเป็นแถวของดอกจัน จากนั้นทุกอย่างจะตกและแถวใหม่จะถูกจัดเรียงอย่างชัดเจน ลองดูตัวอย่าง: [2, 7, 4, 6]: ** ******* **** ****** ------- ** **** ******* ****** ------- ** | 2 **** | 4 ****** | 6 ******* | 7 ขอให้สังเกตว่านี่เป็นเพียงการเรียงลำดับฟองคู่ขนาน รายละเอียดที่แน่นอน ในการวนซ้ำแต่ละครั้งเริ่มต้นจากแถวบนสุดให้ใช้เครื่องหมายดอกจันทุกอันจากแถวที่ไม่มีเครื่องหมายดอกจันอยู่ด้านล่างและเลื่อนลงมาเป็นแถว ทำต่อไปเรื่อย ๆ จนกว่าจะมีการเรียงลำดับรายการ อินพุต อินพุตจะเป็นรายการของจำนวนเต็มบวกอย่างเคร่งครัด เอาท์พุต สำหรับเอาต์พุตคุณต้องเอาต์พุตในแต่ละขั้นตอน คุณสามารถเลือกอักขระ ASCII ที่ไม่สามารถพิมพ์ได้ทั้งสองช่องว่างตัวใดตัวหนึ่งเป็น "เครื่องหมายดอกจัน" และอีกตัวหนึ่งเป็น "ขีด" แถวของเครื่องหมายดอกจันจะต้องคั่นด้วยบรรทัดใหม่มาตรฐานของการเรียงลำดับบางอย่าง (เช่น\nหรือ\r\f) …

28
เสาหินมีความสูงเท่าใด?
นี่คือตัวอย่างของการป้อนข้อมูลของนักการสา มี 4 ในตัวอย่างนี้ _ | | _ | | _ | | | | | | | | _ _| |_| |___| |____| |_ เสาหินก้อนแรกมีความสูง 4 หน่วยตัวที่สองคือ 2 ตัวที่สามคือ 3 และตัวสุดท้ายคือ 1 งาน โปรแกรมของคุณควรแสดงความสูงของเสาหินตามลำดับจากซ้ายไปขวา รูปแบบผลลัพธ์สามารถอยู่ในรายการหรือแถวลำดับใดก็ได้ หมายเหตุ อินพุตสามารถใช้เป็นสตริงมิติรายการของสตริงหรือรายการของอักขระ นี่คือรหัสกอล์ฟดังนั้นต่ำสุดไบต์ชนะ คุณต้องสมมติว่าเสาหินมีความกว้างเท่ากันเสมอและอยู่_ห่างจากที่อื่นอย่างน้อย 1 ครั้ง พวกเขาสามารถมาในความสูงใด ๆ และในปริมาณใด ๆ I / O _ …

30
“ ทวีคูณ” สองสตริง
นี้ได้รับแรงบันดาลใจจากการทำงานของฉันเพิ่งเพิ่มเข้ามาในภาษาของฉันเพิ่ม ++ ดังนั้นฉันจะส่งคำตอบสั้น ๆ ใน Add ++ แต่ฉันจะไม่ยอมรับถ้ามันชนะ (มันจะไม่ยุติธรรม) คุณไม่เกลียดเมื่อคุณสามารถคูณจำนวน แต่ไม่ใช่สายอักขระ? ดังนั้นคุณควรแก้ไขให้ถูกต้องใช่ไหม คุณต้องเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบที่รับสองสตริงที่ไม่ว่างเปล่าเป็นอินพุตและเอาต์พุตเวอร์ชันคูณ คุณจะคูณสตริงได้อย่างไร ฉันจะบอกคุณ! ในการคูณสองสตริงคุณต้องใช้สองสายและเปรียบเทียบแต่ละอักขระ อักขระที่มีจุดโค้ดสูงสุดจะถูกเพิ่มไปยังเอาต์พุต หากมีค่าเท่ากันให้เพิ่มอักขระไปยังเอาต์พุต ไม่รับประกันว่าสายอักขระจะมีความยาวเท่ากัน หากความยาวแตกต่างกันความยาวของสตริงสุดท้ายคือความยาวของสตริงที่สั้นที่สุด อินพุตจะเป็นตัวพิมพ์เล็กเสมอและอาจมีอักขระใด ๆ ในช่วง ASCII ที่พิมพ์ได้ ( 0x20 - 0x7E) ไม่รวมตัวอักษรตัวพิมพ์ใหญ่ คุณอาจส่งออกในรูปแบบที่สมเหตุสมผลเช่นสตริงรายการ ฯลฯ มีเหตุผลจำนวนเต็มไม่ใช่วิธีที่เหมาะสมที่จะแสดงผลในการท้าทายนี้ ด้วยอินพุตhello,และworld!นี่คือวิธีการทำงาน hello, world! w > h so "w" is added ("w") o > e so "o" is …
29 code-golf  string 

22
ค่านี้สามารถทำด้วยเหรียญและ / หรือธนบัตรที่ไม่ซ้ำกันได้หรือไม่?
เขียนโปรแกรมที่คำนวณว่ามูลค่าเงินที่ป้อนเข้าเป็นจำนวนเต็มสามารถแสดงด้วยการรวมกันที่ไม่ซ้ำกันของเหรียญและ / หรือธนบัตรซึ่งหมายความว่าเหรียญ / ธนบัตรเดียวกันไม่สามารถใช้งานได้มากกว่าหนึ่งครั้ง โปรแกรมของคุณควรรับค่าเป็นอินพุตและสามารถใช้รายการค่าเหรียญ / โน้ตได้ผ่านอินพุตหรือผ่านอาร์เรย์ของภาษาของคุณ รายการเหรียญ / ธนบัตรควรสามารถเปลี่ยนแปลงได้ดังนั้นโปรดตรวจสอบให้แน่ใจว่ามีการกำหนดที่ชัดเจนหากคุณใช้ค่าคงที่ โปรแกรมของคุณควรส่งออกค่าความจริง / เท็จใด ๆ ตามลำดับ โปรดทราบว่าไม่จำเป็นต้องแสดงรายการเหรียญ / ธนบัตรที่สร้างมูลค่า ตัวอย่าง ใช้ปอนด์สหราชอาณาจักร (1.00 = 100 และ£ 420.69 = 42069) coins = [1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000] ผลลัพธ์ต่อไปนี้จะเป็นจริง: 6 (1, 5) 15 (10, 5) 88 …
29 code-golf  math 

2
ช่วย Pac-Man นับ Pac-Dots
ตามคำแนะนำของ Ms. Pac-Man ที่กังวลเกี่ยวกับการที่เขามีน้ำหนักเกิน Pac-Man ได้ตัดสินใจที่จะติดตามการบริโภค Pac-Dot ทุกวันของเขา ช่วยเขานับจำนวน Pac-Dots บนเส้นทางที่กำหนดในเขาวงกต! เขาวงกต ที่จะช่วยให้คุณสร้างการเข้ารหัสของตัวเองของเขาวงกตที่คุณสามารถได้รับข้อมูลดิบบางอย่างที่นี่ การเดินทางของ Pac-Man ในบริบทของการท้าทายนี้จะใช้กฎต่อไปนี้: ก่อนอื่นข่าวดี: ผีไม่มีอยู่จริง แพคแมนเริ่มการแข่งขันเสมอตามตำแหน่งที่ระบุไว้ในภาพด้านบนมุ่งหน้าไปทางทิศตะวันออก ไม่มี Pac-Dot ที่ตำแหน่งเริ่มต้น ตราบใดที่เขาเดินไปตามทางตรงเขาจะก้าวไปสู่สี่เหลี่ยมถัดไป เมื่อเขาพบการเลี้ยว 90 °โดยไม่มีเส้นทางอื่น (สี่เหลี่ยมสีส้มบนแผนที่) เขาจะเลี้ยวโดยอัตโนมัติและเป็นระบบ เมื่อเขาพบทางแยกที่มีหลายเส้นทาง (สี่เหลี่ยมสีเขียวบนแผนที่) เขาอาจดำเนินการต่อในทิศทางเดียวกัน - ถ้าทำได้ - หรือเลือกทิศทางอื่น (รวมถึงกลับรถด้วย) เมื่อ Pac-Man ผ่านทางออกหนึ่งทางด้านซ้ายกลางหรือด้านขวากลางของเขาวงกตเขาจะปรากฏขึ้นอีกครั้งในด้านตรงข้ามทันที Pac-Man กิน Pac-Dots ทั้งหมดบนเส้นทางที่เขาติดตาม เมื่อ Pac-Dot ถูกกินแล้วมันจะถูกลบออกจากเขาวงกต ความท้าทาย อินพุต คุณจะได้รับสตริงที่อธิบายพฤติกรรมของ Pac-Man …

13
ผลรวมของคอลัมน์ Pascal
ทุกคนที่นี่ส่วนใหญ่คุ้นเคยกับสามเหลี่ยมปาสคาล มันเกิดขึ้นจากแถวที่ต่อเนื่องกันซึ่งองค์ประกอบแต่ละอย่างเป็นผลรวมของเพื่อนบ้านทั้งสองด้านบนซ้ายและขวาบน นี่คือ5แถวแรก(ยืมจากสามเหลี่ยมสร้างปาสกาล ): 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 เราจะใช้สามเหลี่ยมของปาสคาลและแสดงผลบวกกับมัน (ฮ่าฮ่าฮ่า) สำหรับอินพุตที่กำหนดnเอาท์พุทผลรวมคอลัมน์ของnแถวแรกของสามเหลี่ยมปาสคาล ตัวอย่างเช่นสำหรับอินพุต5เอาต์พุตจะถูกสร้างโดย 1 1 1 1 2 1 1 3 3 1 [+] 1 4 6 4 1 ---------------------- 1 1 5 4 9 4 5 1 1 [1, …

25
Fizz Buzz เป็นข้อความ
บทนำ ฉันไม่ได้โดยเฉพาะอย่างยิ่งทราบว่าแนวโน้มฉวัดเฉวียนเดือดเป็นฟองมาจาก มันอาจจะเป็น meme หรืออะไรบางอย่าง แต่มันค่อนข้างเป็นที่นิยม ท้าทาย งานของคุณในวันนี้คือการแปลง Fizz Buzz เป็นไบนารี (0, 1) ตามลำดับและแปลงไบนารีนั้นเป็นข้อความ สิ่งที่ได้มาตรฐานสวย มันทำงานอย่างไร FizzBuzzBuzzFizzBuzzFizzFizz FizzBuzzBuzzFizzBuzzFizzFizzBuzz จะแปลเป็น 01101000 01101001 จากนั้นจะแปลเป็น "hi" ข้อ จำกัด อินพุตคือ Fizz Buzz ในมุมมองไบนารี (ดูตัวอย่างด้านล่าง) ผลลัพธ์จะต้องเป็นข้อความ คุณสามารถสมมติว่าอินพุต FizzBuzz ถูกต้อง นี่คือcode-golfไบต์ที่สั้นที่สุดชนะ อินพุต FizzBuzzBuzzFizzBuzzFizzFizz FizzBuzzBuzzFizzBizzFizzBizz FizzFizzBuzzFizzFizzFizzBuzz เอาท์พุต "Hi!"
29 code-golf  binary 

21
สลับดัชนีและค่า
งาน เขียนโปรแกรมหรือฟังก์ชั่นซึ่งอินพุตเป็นรายการ / อาร์เรย์Xของจำนวนเต็มและเอาต์พุตเป็นรายการชุดของจำนวนเต็มYเช่นนั้นสำหรับแต่ละองค์ประกอบอีในแต่ละชุดY [ i ], X [ e ] = iและ ดังกล่าวว่าจำนวนขององค์ประกอบในชุดในYเท่ากับจำนวนขององค์ประกอบในX (นี่เป็นการดำเนินการเดียวกับการย้อนกลับ hashtable / พจนานุกรมยกเว้นนำไปใช้กับอาร์เรย์แทน) ตัวอย่าง ตัวอย่างเหล่านี้ใช้การจัดทำดัชนีแบบ 1 แต่คุณสามารถใช้การจัดทำดัชนีแบบ 0 แทนหากคุณต้องการ X Y [4] [{},{},{},{1}] [1,2,3] [{1},{2},{3}] [2,2,2] [{},{1,2,3}] [5,5,6,6] [{},{},{},{},{1,2},{3,4}] [6,6,5,5] [{},{},{},{},{3,4},{1,2}] ชี้แจง คุณอาจแสดงชุดเป็นรายการหากคุณต้องการ หากคุณทำเช่นนั้นลำดับขององค์ประกอบจะไม่สำคัญ แต่คุณไม่สามารถทำซ้ำองค์ประกอบได้ คุณสามารถใช้รูปแบบ I / O ที่ไม่น่าสงสัยอย่างสมเหตุสมผล ตัวอย่างเช่นคุณสามารถแยกองค์ประกอบของชุดที่มีช่องว่างและชุดตัวเองด้วยการขึ้นบรรทัดใหม่ Yควรจะมีความยาวที่แน่นอนและอย่างน้อยก็นานพอที่จะมีองค์ประกอบทั้งหมดของXเป็นดัชนีอาร์เรย์ อย่างไรก็ตามอาจยาวกว่าองค์ประกอบสูงสุดของX (องค์ประกอบเพิ่มเติมจะเป็นชุดว่าง) องค์ประกอบของXจะเป็นดัชนีอาร์เรย์ที่ถูกต้องเช่นจำนวนเต็มไม่เป็นลบหากคุณใช้การจัดทำดัชนีแบบ …

5
มองไม่เห็นป่าสำหรับต้นไม้
เขียนโปรแกรมหรือฟังก์ชั่นที่ดึงต้นไม้ต้นไม้ขึ้นมาเพื่อสร้างป่า ต้นไม้ถูกดึงเหมือนกองปิรามิด แถวแรก (บนสุด) มี1ต้นไม้แถวถัดไปมี2(สำหรับผลรวม3), แถวถัดไปมี3(สำหรับจำนวนทั้งหมด6) และอื่น ๆ หากไม่มีต้นไม้มากพอที่จะเติมเต็มแถวให้กรอกทางด้านซ้ายแล้วปล่อยให้จุดนั้นว่างเปล่าทางด้านขวา นอกจากนี้ต้นไม้ระดับล่างจะทับซ้อนต้นไม้ระดับบนเล็กน้อยเนื่องจากการจัดวาง นี่คือป่าขนาด 1 /\ //\\ ///\\\ || || นี่คือป่าขนาด 2 /\ //\\ /\///\\\ //\\ || ///\\\|| || || นี่คือป่าขนาด 3 /\ //\\ /\///\\\/\ //\\ || //\\ ///\\\||///\\\ || || || || นี่คือป่าขนาด 4 /\ //\\ /\///\\\/\ //\\ || //\\ /\///\\\||///\\\ //\\ …

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