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

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

6
สร้างเป็นเกลียว Padovan
บทนำ คล้ายกับ Fibonacci Sequence, Padovan Sequence ( OEIS A000931 ) เป็นลำดับของตัวเลขที่สร้างขึ้นโดยการเพิ่มคำก่อนหน้าในลำดับ ค่าเริ่มต้นถูกกำหนดเป็น: P(0) = P(1) = P(2) = 1 ข้อกำหนดที่ 1, ที่ 1 และที่ 2 มีทั้งหมด 1 ความสัมพันธ์ที่เกิดซ้ำแสดงอยู่ด้านล่าง: P(n) = P(n - 2) + P(n - 3) ดังนั้นจึงให้ลำดับต่อไปนี้: 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, …

30
วิวัฒนาการของพลังสอง
นี่คือ repost ของEvolution ของ“ Hello World!”ซึ่งเขียนโดย Helka Homba ผู้ใช้ มันไม่ควรจะปิดเป็นซ้ำเนื่องจากฉันทามติ meta ที่นี่ ต้นฉบับถูกถามเมื่อสองปีก่อนและใช้งานล่าสุดมากกว่าหกเดือนที่ผ่านมา ฉันได้รับอนุญาตจาก Helka Homba เพื่อโพสต์สิ่งนี้ที่นี่ ตั้งแต่ดั้งเดิมมีการประดิษฐ์หลายภาษาและหลาย ๆ คนได้เข้าร่วมเว็บไซต์ที่ไม่เคยมีโอกาสตอบต้นฉบับดังนั้นฉันรู้สึกว่า repost นี้เป็นที่ยอมรับ ความท้าทายคือการสร้างโปรแกรมที่พิมพ์2^nไปยัง stdout ซึ่งnเป็นหมายเลขของโปรแกรมของคุณ สิ่งที่จับได้คือโปรแกรมของคุณจะต้องมีระยะทาง Levenshtein 10 หรือน้อยกว่าจากโปรแกรมในคำตอบที่ส่งมาก่อนหน้าคุณ มันจะทำงานยังไง ด้านล่างนี้ผมจะส่งคำตอบแรกใช้ C # ซึ่งพิมพ์ 2 ^ (n = 1) 2= บุคคลต่อไปที่จะตอบต้องแก้ไขรหัสที่มีการแทรกการลบหรือการแทนที่อักขระสูงสุด 10 ตัวเพื่อให้เมื่อมีการเรียกใช้ในภาษาของคำตอบใหม่ระบบจะพิมพ์2^n(โดยnเป็นหมายเลขคำตอบ) ตัวอย่างเช่นคำตอบที่ 25 (สมมติว่าอยู่ใน Pyth) จะพิมพ์ 2 ^ …

14
สร้างหมายเลข n-ary
ตัวเลขรองเป็นจำนวนเต็มบวกซึ่งปัจจัยหลัก (ไม่มีหลายหลาก) น้อยกว่าหรือเท่ากับรากที่สองของมัน 4เป็นตัวเลขรองเพราะมีเพียงปัจจัยสำคัญเท่านั้น2ซึ่งเท่ากับรากที่สองของมัน อย่างไรก็ตาม15ไม่ใช่ตัวเลขรองเพราะมัน5เป็นปัจจัยสำคัญซึ่งมีขนาดใหญ่กว่าสแควร์รูท ( ~ 3.9) เนื่องจากจำนวนเฉพาะทั้งหมดมีตัวเองเป็นปัจจัยสำคัญจึงไม่มีหมายเลขเฉพาะเป็นหมายเลขรอง ตัวเลขรองสองสามตัวแรกมีดังนี้: 1, 4, 8, 9, 12, 16, 18, 24, 25, 27, 30, 32, 36, 40, 45, 48, 49, 50, 54, 56 หมายเลขตติยภูมิถูกกำหนดในทำนองเดียวกันยกเว้นปัจจัยสำคัญทั้งหมดจะต้องน้อยกว่าหรือเท่ากับรูทคิวบ์ ตัวเลขระดับอุดมศึกษาสองสามคนแรกมีดังนี้: 1, 8, 16, 27, 32, 36, 48, 54, 64, 72, 81, 96, 108, 125, 128, 135, 144, 150, …

26
คุณรู้ภาษานั้นไหม
งาน: ความท้าทายของคุณคือเมื่อได้รับผลงานก่อนหน้าและเป็นตัวป้อนข้อมูลให้ส่งออกภาษาที่ใช้เขียนในรูปแบบต่อไปนี้: สมมติว่าโปรแกรมแรกอยู่ใน Ruby จะต้องส่งออก1เพราะทับทิมเป็น1ภาษาที่ใช้ในการท้าทายนี้ ตัวอย่างโปรแกรมคือ: a=gets puts 1 เมื่อได้รับตัวเองเป็น input 1ก็จะส่งกลับ โปรแกรมถัดไปอาจเป็น Python มันจะต้องออก2เพราะ Python เป็น2ภาษาที่ใช้ในการท้าทาย ตัวอย่างโปรแกรมคือ: print(1 if input()[0]=="a"else 2) ได้รับการส่งครั้งแรกมันจะออกผลลัพธ์และให้ตัวเองมันเอาท์พุท12 คุณได้รับอนุญาตให้พูดภาษาซ้ำแม้ว่าคุณจะไม่ได้รับอนุญาตให้ส่งคำตอบในภาษาของคำตอบก่อนหน้า ตัวอย่างเช่นถ้าโปรแกรมของ บริษัท อยู่ในทับทิมนั้นจะต้องส่งออก1ได้รับโปรแกรมแรกและตัวเอง (เพราะทับทิมเป็น1ภาษา ST ใช้) 2และได้รับโปรแกรมที่สองมันต้องเอาท์พุท กฎ: หากมีnคำตอบในการท้าทายในปัจจุบันจะต้องมีfloor(n / 3)ภาษาที่แตกต่างกันอย่างน้อย การส่งใด ๆ ที่ละเมิดกฎนี้จะถูกตัดสิทธิ์ ไม่มี "คำตอบใกล้เคียง" สองคำ (เช่นคำตอบnและคำตอบn+1) ไม่สามารถใช้ภาษาเดียวกันได้ รุ่นที่แตกต่างของภาษาไม่นับเป็นภาษาที่แตกต่างกัน (เพื่อPython 2 == Python 3) คำตอบต้องใช้การส่งก่อนหน้าเต็มรูปแบบเป็นอินพุต …

29
รหัส Crazy 8s Golf
สร้างโปรแกรมที่พิมพ์ตัวเลขทั้งหมดทั้งหมดรวมกันระหว่างช่วงเวลา(a, b)และแทนที่ทวีคูณของ 8 ในลำดับที่มีการสุ่ม (กระจายอย่างสม่ำเสมอเป็นอิสระจากตัวละครอื่น ๆ ) ตัวอักษร ASCII ที่ไม่ใช่ตัวเลข, ช่องว่างที่ไม่สามารถพิมพ์ได้ สมมติว่า 0 <a <b ในทุกกรณี หากตัวเลขมีมากกว่า 1 หลักตรวจสอบให้แน่ใจว่าจำนวนอักขระในการแทนที่ตรงกัน! ตัวอย่าง: (1, 16) -> 1 2 3 4 5 6 7 $ 9 10 11 12 13 14 15 n@ (115, 123) -> 115, 116, 117, 118, 119, :F<, 121, 122, …

30
ผลรวมของ Modulo จำนวนเงิน
กำหนดจำนวนเต็มn > 9สำหรับแต่ละการแทรกที่เป็นไปได้ระหว่างตัวเลขในจำนวนเต็มนั้นให้แทรกการบวก+และประเมินผล จากนั้นใช้หมายเลขดั้งเดิมโมดูโลผลลัพธ์เหล่านั้น แสดงผลรวมของการดำเนินการเหล่านี้ ตัวอย่างด้วยn = 47852: 47852 % (4785+2) = 4769 47852 % (478+52) = 152 47852 % (47+852) = 205 47852 % (4+7852) = 716 ----- 5842 อินพุต เป็นจำนวนเต็มบวกเดียวในรูปแบบที่สะดวกใด ๆn > 9 , เอาท์พุต เอาท์พุทจำนวนเต็มเดียวตามเทคนิคการก่อสร้างข้างต้น กฎระเบียบ คุณไม่ต้องกังวลกับการป้อนข้อมูลที่ใหญ่กว่าภาษาเริ่มต้นของคุณ ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น หากฟังก์ชั่นคุณสามารถส่งคืนผลลัพธ์มากกว่าการพิมพ์ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการตีกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ ตัวอย่าง 47852 …

14
ทำให้ค้างคาว ASCII บินไปรอบ ๆ ดวงจันทร์ ASCII
พื้นหลัง นี่คือความท้าทายที่เกี่ยวข้องกับวันฮาโลวีน อย่างที่คุณได้เห็นจากการท้าทายครั้งล่าสุดของฉันฉันชอบสิ่งที่ฉันเรียกว่าภาพเคลื่อนไหว ASCII ซึ่งไม่เพียง แต่วาดรูปแบบ แต่วาดรูปแบบที่ก้าวหน้า ความคิดนี้มาถึงฉันหลังจากที่ฉันถูกขอให้สองสามปีที่ผ่านมาทำให้มีชีวิตชีวาการนำเสนอ (ค่อนข้างน่าเบื่อ) โดยการทำให้ค้างคาว ascii สุ่มบินข้ามหน้าจอในวันฮาโลวีน ไม่จำเป็นต้องพูดว่าฉันจำเป็นต้องจ่ายจริง ๆ (ฉันกำลังจ่ายให้มัน) แต่มันทำให้ฉันคิดว่ามีชีวิตมากกว่าค้างคาวสุ่ม ได้รับแรงบันดาลใจจากสิ่งนี้ฉันขอเสนอความท้าทายนี้ ท้าทาย ทำให้ค้างคาวบินไปรอบ ๆ ดวงจันทร์ นี่คือค้างคาว: ^o^ นี่คือดวงจันทร์: mmm mmmmmmm mmmmmmmmm mmmmmmm mmm คุณต้องแสดงทุกขั้นตอนของการบินของค้างคาว (ดูผลลัพธ์) อินพุต ไม่มี เอาท์พุต ^o^ mmm mmmmmmm mmmmmmmmm mmmmmmm mmm mmm^o^ mmmmmmm mmmmmmmmm mmmmmmm mmm mmm mmmmmmm^o^ mmmmmmmmm mmmmmmm mmm …

24
พีระมิด IHIH
ฉันคิดว่ามันน่าทึ่งที่ตัวอักษร "H" และ "ฉัน" นั้นมีความคล้ายคลึงกันมาก "H" เป็นจังหวะในแนวนอนที่ล้อมรอบด้วยสองจังหวะในแนวตั้ง "I" เป็นจังหวะในแนวตั้งที่ล้อมรอบด้วยสองจังหวะในแนวนอน (ขึ้นอยู่กับแบบอักษรของคุณ) ฉันพนันได้เลยว่ามันจะซ้อนกัน ... คุณรู้ไหมว่าอะไรทำให้ฉันนึกถึง? เศษส่วน !!! มานิยามปิรามิด "IHIH" ดังนี้: การวนซ้ำครั้งแรกคือการแสดง ASCII ของตัวอักษร "I": --- | --- การวนซ้ำครั้งถัดไปมีจังหวะตามแนวตั้งที่ด้านใดด้านหนึ่ง | | |---| | | | |---| | | หากคุณมองว่า "ฉัน" ที่อยู่ตรงกลางเป็นจังหวะแนวนอนเดียวการทำซ้ำครั้งที่สองนี้โดยทั่วไปจะเป็น "H" การวนซ้ำครั้งที่สามจะเพิ่มการลากเส้นแนวนอนที่ด้านบนและล่าง ------- | | |---| | | | |---| | | …

12
เลมอน - จำกัด สตริง
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในสายอักขระบรรทัดเดียวแบบไม่มีเงื่อนไข คุณอาจคิดว่ามันมีเพียงASCII ที่พิมพ์ได้ซึ่งไม่รวมช่องว่าง พิมพ์หรือส่งคืนรูปร่างรูปทรงคล้ายยาอม ASCII คล้ายกับมะนาวหรือมะนาวที่ทำจากส่วนนำหน้าของสตริง สมมติว่าสตริงอินพุตมีความยาวnตัวอักษร จากนั้นรูปร่างดังกล่าวประกอบด้วย2n - 1คอลัมน์ของ ASCII art ที่เย็บเข้าด้วยกันโดยแต่ละอันประกอบด้วย2n - 1บรรทัด นับจาก 1, kคอลัมน์ -th เป็นf (k) = นาที (k, 2n - k)ตัวอักษรกว้างและมีf (k)สำเนาแรกf (k)ตัวละครของท่านเป็นศูนย์กลางในแนวตั้งด้วยว่างเปล่าเดียว บรรทัดแยกสำเนา ตัวอย่างเช่นถ้าอินพุตLemonเอาต์พุตควรเป็น: Lemon Lemo Lemo Lem Lemon Lem Le Lemo Lemo Le L Lem Lemon Lem L Le Lemo Lemo Le …

28
โปรดปล่อยฉัน!
ในฐานะนักกอล์ฟเราไม่คุ้นเคยกับการปล่อย ( แน่นอน ) เราจะต้องมีเครื่องมือสองสามอย่างเพื่อช่วยให้เราทำเช่นนั้น แน่นอนว่าเพื่อช่วยทำการตลาดรุ่นใหม่เราจำเป็นต้องมีเวอร์ชั่นที่ดีและเป็นประกาย ใครไม่ตื่นเต้นเมื่อได้ยินเกี่ยวกับเวอร์ชัน 3.0.0 งาน งานของคุณคือการเขียนโปรแกรม / กิจวัตร / ... เพื่อเพิ่มหมายเลขรุ่น คุณต้องเพิ่มหมายเลขรุ่นและรีเซ็ต "สำคัญน้อยกว่า" (เช่นเวอร์ชันของโปรแกรมแก้ไข) คุณจะได้รับสองอาร์กิวเมนต์: เวอร์ชันปัจจุบัน (เช่น "1.0.3") เป็นสตริงและดัชนีที่จะรู้ว่าจะอัปเดตใด (อัปเดต 0 หรือ 1 ดัชนี) ตัวอย่างดัชนี 0: next-version("1.0.3", 0) # 2.0.0 next-version("1.2.3.4.5", 2) # 1.2.4.0.0 next-version("10.0", 0) # 11.0 next-version("3", 0) # 4 next-version("1", 7) # ERROR …

19
วางก้อนหินบนกระดานโกที่ว่างเปล่า
ดูเพิ่มเติม: ให้ย้ายบนกระดานไป งาน Go เป็นเกมกระดานที่ผู้เล่นสองคน (ขาว - ดำ) วางก้อนหินที่จุดตัดของเส้นกริดบนกระดานขนาด 19 × 19 Black เคลื่อนที่ก่อน - ตัวอย่างเช่นบน D4: ในการท้าทายนี้คุณจะต้องใช้พิกัดบอร์ด Go เหมือนD4อินพุทและเอาท์พุทการเป็นตัวแทน ASCII ของบอร์ดโดยการเคลื่อนที่ครั้งแรกที่เล่น ณ จุดที่กำหนด โปรดทราบว่าไม่มีคอลัมน์ Iนี่คือประวัติศาสตร์เพื่อลดความสับสนกับ J และ L เอาต์พุตนี้ประกอบด้วย 19 บรรทัดแต่ละอันมี 19 ตัวอักษร Oจุดด้วยหินที่มันมีการทำเครื่องหมาย จุดที่ว่างในกระดานจะแสดงเป็น.ยกเว้นสำหรับงวดเก้าจุดดาว (อย่างD4, D10, D16, K4, K10, K16, Q4, Q10และQ16) *ซึ่งมีการทำเครื่องหมาย ตัวอย่างเช่นให้F5เป็นอินพุตเอาต์พุตคำตอบของคุณจะต้อง: ................... ................... ................... ...*.....*.....*... …

30
ทำซ้ำ & สลับตัวพิมพ์เล็ก
เป้าหมายคือใช้สตริงเป็นอินพุตทำซ้ำตัวอักษรละตินแต่ละตัวและ "สลับ" ในกรณีของมัน (เช่นตัวพิมพ์ใหญ่กลายเป็นตัวพิมพ์เล็กและในทางกลับกัน) ตัวอย่างอินพุตและเอาต์พุต: Input Output bad bBaAdD Nice NniIcCeE T e S t Tt eE Ss tT s E t sS Ee tT 1!1!1st! 1!1!1sStT! n00b nN00bB (e.g.) (eE.gG.) H3l|@! Hh3lL|@! อินพุตประกอบด้วยสัญลักษณ์ ASCII ที่พิมพ์ได้ คุณไม่ควรทำซ้ำตัวอักษรที่ไม่ใช่ละตินตัวเลขตัวอักษรพิเศษ
34 code-golf  string 

7
Explorer เล็ก ๆ
คุณเป็นนักสำรวจทำแผนที่โลกที่ไม่รู้จัก เรือของคุณถูกลมพัด มันจะไปไหนใครจะไปรู้? ในแต่ละวันในกล้องสอดแนมของคุณคุณจะเห็นคุณสมบัติทางเหนือ, ใต้, ตะวันออกและตะวันตก คุณมักจะเห็นสี่คุณสมบัติดังกล่าวซึ่งสอดคล้องกับทิศทางสำคัญ ๆ กล้องสอดแนมของคุณรายงานสัญลักษณ์ ASCII ดังนี้: ~~.*, ~~~~, ~.^^,~#~# สัญลักษณ์อยู่ในลำดับ (เหนือ, ใต้, ตะวันออก, ตะวันตก) นี่คือสัญลักษณ์: ~= ทะเล, .= ชายฝั่ง, ^= ภูเขา, *= ต้นไม้, #= ไม่ถูกต้อง (ไม่สังเกตสิ่งนี้จะเกิดขึ้นทุกครั้งที่คุณเห็นขอบโลกหรือภูมิประเทศถูกบดบังด้วยหมอก) กล้องส่องทางไกลของคุณมองเห็นหนึ่งหน่วยในทุกทิศทาง ในแต่ละคืนคุณจะมองดูดวงดาวเพื่อดูว่าคุณเดินทางไปไกลแค่ไหน เมื่อมองดูดวงดาวจะรายงานสัญลักษณ์ ASCII ดังนี้: n, s, e,w สอดคล้องกับภาคเหนือภาคใต้ภาคตะวันออกและตะวันตกตามลำดับ คุณจะย้ายยูนิตหนึ่งไปทางทิศเหนือทิศใต้ทิศตะวันออกหรือทิศตะวันตกทุกคืน ดังนั้นคุณในฐานะนักสำรวจจะได้รับสัญลักษณ์มากมาย: ~~.*n~~~~s~~.*s~.** งานของคุณคือส่งออกแผนที่ 2D ของโลก (ซึ่ง?เป็นส่วนที่ไม่รู้จักของแผนที่ทิศเหนือขึ้นไปทางตะวันออกอยู่ทางขวา): ?~~~?????? ?~~~?????? ?~~~.^^.?? …

21
อนุพันธ์ทางคณิตศาสตร์
อนุพันธ์ของฟังก์ชั่นคือรากฐานที่สำคัญของคณิตศาสตร์, วิศวกรรม, ฟิสิกส์, ชีววิทยา, เคมี, และวิทยาศาสตร์อื่น ๆ จำนวนมากเช่นกัน วันนี้เรากำลังจะคำนวณบางอย่างที่เกี่ยวข้องตามตัวอักษร: อนุพันธ์ทางคณิตศาสตร์ คำนิยาม อนุพันธ์เลขคณิตa(n)หรือn'กำหนดไว้ที่นี่ ( A003415 ) ตามจำนวนคุณสมบัติที่คล้ายกับอนุพันธ์ของฟังก์ชัน a(0) = a(1) = 0, a(p) = 1ที่ไหนที่pมีความสำคัญและ a(mn) = m*a(n) + n*a(m). กฎข้อที่สามจะขึ้นอยู่กับกฎสินค้าสำหรับความแตกต่างของการทำงาน: การทำงานf(x)และ,g(x) ดังนั้นด้วยตัวเลข(fg)' = f'g + fg'(ab)' = a'b + ab' นอกจากนี้ยังทราบเนื่องจากอนุพันธ์ทางคณิตศาสตร์สามารถขยายไปยังจำนวนลบผ่านความสัมพันธ์แบบง่าย ๆ นี้ได้a(-n) = -a(n)อินพุตอาจเป็นลบ กฎระเบียบ เขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับจำนวนเต็มใด ๆกลับอนุพันธ์เลขคณิตของnn อินพุตจะเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับขนาดและจำนวนเต็มที่มากเกินไปที่จะคำนึงถึงในระยะเวลาที่เหมาะสม อัลกอริทึมของคุณยังควรสามารถคำนวณทางทฤษฎีอนุพันธ์ทางคณิตศาสตร์ของตัวเลขที่อยู่นอกช่วงนี้-230 …

30
แผ่อาเรย์!
ในความท้าทายนี้งานของคุณคือการสร้างโปรแกรมที่ใช้ในอาร์เรย์ซ้อนกันและส่งกลับอาร์เรย์แบบแบนมิติเดียว ตัวอย่างเช่นการส่งออกควร [10,20,[30,[40]],50][10,20,30,40,50] อินพุต อินพุตจะเป็นอาร์เรย์ซ้อนกัน (เช่น[10,20,[[[10]]]]) มันจะมีจำนวนเต็มเท่านั้น (ทั้งลบและบวก) สตริงและอาร์เรย์ คุณสามารถรับอินพุตเป็นอาร์กิวเมนต์ฟังก์ชัน STDIN หรืออะไรก็ได้ที่เหมาะกับภาษาของคุณ คุณสามารถสันนิษฐานได้ว่าอาร์เรย์อินพุตจะไม่มีอาร์เรย์ว่างเปล่า เอาท์พุต เอาต์พุตจะเป็นอาเรย์แบบมิติเดียวที่มีองค์ประกอบเดียวกับชนิดเดียวกันในอาร์เรย์ที่ซ้อนกันและในลำดับเดียวกัน กรณีทดสอบ [10,20,30] -> [10,20,30] [[10]] -> [10] [["Hi"],[[10]]] -> ["Hi",10] [[[20],["Hi"],"Hi",20]] -> [20,"Hi","Hi",20] [[["[]"],"[]"]] -> ["[]","[]"] รู้สึกฟรีเพื่อขอคำชี้แจงใด ๆ โดยใช้ความคิดเห็น นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ! หมายเหตุ: หากภาษาของคุณมีอยู่ในตัวสำหรับสิ่งนี้คุณจะต้องไม่ใช้มัน แก้ไข โปรดระบุลิงก์ไปยังเว็บไซต์ที่สามารถใช้รหัสของคุณได้

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