คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

27
ใช้คลื่นกับอาร์เรย์
งานของคุณในวันนี้คือการใช้คลื่นกับอาร์เรย์ของตัวเลข คลื่นมีลักษณะดังนี้: [1, 0, -1, 0, 1, 0, -1, 0, 1...]การนำไปใช้กับอาร์เรย์ที่กำหนดหมายถึงการรวมองค์ประกอบแรกเข้าด้วยกันองค์ประกอบที่สอง ฯลฯ อย่างแม่นยำมากขึ้น: โปรแกรมหรือฟังก์ชั่นของคุณจะได้รับอาร์เรย์จำนวนเต็ม มันจะต้องพิมพ์หรือส่งกลับอาร์เรย์ที่มีขนาดเท่ากันพร้อมกับ1เพิ่มองค์ประกอบที่ 1, 5, 9, ฯลฯ ของอาร์เรย์เดิม-1เพิ่มไปยังองค์ประกอบที่ 3, 7, 11, ฯลฯ ของอาร์เรย์ต้นฉบับและองค์ประกอบที่เหลือ ควรปล่อยทิ้งไว้โดยไม่มีใครแตะต้อง อาร์เรย์อินพุตรับประกันว่ามีอย่างน้อยหนึ่งองค์ประกอบ กรณีทดสอบ: Input | Output [0] | [1] [-1] | [0] [-4, 3, 0, 1, 7, 9, 8, -2, 11, -88] | [-3, 3, …

30
พับครึ่งรายการ
เรากำลังจะพับลิสต์ของจำนวนเต็ม ขั้นตอนที่ต้องทำมีดังต่อไปนี้หากรายการมีความยาวเท่ากันให้ทำรายการครึ่งหนึ่งของความยาวโดยที่รายการที่ n ของรายการใหม่คือผลรวมของรายการที่ n ของรายการเก่าและ nth-to- รายการสุดท้ายของรายการเก่า ตัวอย่างเช่นถ้าเรามีรายการ [1 2 3 4 5 6 7 8] เราจะพับมันอย่างนั้น [8 7 6 5] +[1 2 3 4] __________ [9 9 9 9] หากรายการมีความยาวคี่ในการพับเราจะลบรายการกลางก่อนพับมันราวกับว่ามันเป็นคู่และผนวกรายการกลางเพื่อผล ตัวอย่างเช่นถ้าเรามีรายการ [1 2 3 4 5 6 7] เราจะพับมันอย่างนั้น [7 6 5] +[1 2 3] __________ [8 8 …

28
นับถอยหลังแล้วถอยกลับ
มานับ ... นับได้ถึง 2 และกลับไปที่ 1 นับได้ถึง 4 และกลับไปที่ 1 นับได้ถึง 6 และกลับไปที่ 1 ... ตกลงคุณได้รับแล้ว ... ใส่สิ่งเหล่านี้เข้าด้วยกันแล้วคุณจะได้ลำดับดังต่อไปนี้ {1,2,1,2,3,4,3,2,1,2,3,4,5,6,5,4,3,2,1,2,3,4,5,6,7,8,7,6,5,4,3,2,1,2,3...} ความท้าทาย กำหนดให้เป็นจำนวนเต็มn>0สำหรับดัชนี 1 (หรือn>=00 ดัชนี) ส่งออกคำที่ n ของลำดับนี้ กรณีทดสอบ Input->Output 1->1 68->6 668->20 6667->63 10000->84 กฎระเบียบ โปรแกรมของคุณจะต้องสามารถคำนวณโซลูชันได้สูงสุด n = 10,000 ในไม่กี่นาที นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ!

30
สร้างเครื่องหมายเปอร์เซ็นต์
ได้รับจำนวนเต็มn ≥ 1 เอาท์พุทเป็นตัวแทน 2D †ของเครื่องหมายเปอร์เซ็นต์ของความกว้างn การก่อสร้างจะเป็นดังนี้: สร้างnโดยnเมทริกซ์ (หรือรายการของรายการ) ที่เต็มไปด้วยเลขศูนย์ แทรกที่มุมบนซ้ายและมุมขวาล่าง วางคนในแนวทแยงมุมจากซ้ายล่างไปขวาบน สำหรับอินพุตn = 4 โครงสร้างนี้จะมีลักษณะดังนี้: 1. 4x4 matrix of 0s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2. 1s in TL and BR corners 1 0 0 0 0 0 …

28
ตัวเลขเอื้อเฟื้อเผื่อแผ่
รับจำนวนเต็มบวกเป็นอินพุตกำหนดว่าเป็นจำนวนใจกว้าง หมายเลขใจกว้างคือตัวเลขที่การแทรก+เครื่องหมายใด ๆ ระหว่างตัวเลขสองหลักใด ๆ ในฐาน 10 ส่งผลให้เกิดการแสดงออกของจำนวนเต็มจำนวนเต็ม ตัวอย่างเช่น 40427 นั้นไม่เห็นด้วยเพราะ 4+0427 = 431 is prime 40+427 = 467 is prime 404+27 = 431 is prime 4042+7 = 4049 is prime เอาท์พุต คุณควรส่งออกค่าที่แตกต่างกันสองค่าหนึ่งค่าเมื่ออินพุตมีขนาดใหญ่และอีกค่าหนึ่งเมื่ออินพุตไม่ เกณฑ์การให้คะแนน เป้าหมายของการประกวดครั้งนี้คือการทำให้ขนาดของซอร์สโค้ดถูกเขียนขึ้นเพื่อแก้ปัญหานี้ซึ่งกำหนดเป็นไบต์ขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ กรณีทดสอบ 1 -> True 2 -> True 4 -> True 10 -> False 98 -> …

20
ไต่เต้าไปอีกขั้น
ชื่อของวิดีโอใหม่ล่าสุดของNumberphileคือ13532385396179เป็นจุดคงที่ของฟังก์ชันต่อไปนี้fบนจำนวนเต็มบวก: ให้nเป็นจำนวนเต็มบวก เขียนการแยกตัวประกอบเฉพาะด้วยวิธีปกติเช่น 60 = 2 2 · 3 · 5 ซึ่งมีการเขียนเฉพาะช่วงเพื่อเพิ่มลำดับและละเว้นเลขชี้กำลัง 1 จากนั้นนำเลขยกกำลังลงมาที่บรรทัดแล้วตัดเครื่องหมายการคูณทั้งหมดเพื่อรับตัวเลขf (n) [... ] ตัวอย่างเช่นf (60) = f (2 2 · 3 · 5) = 2235 (คำจำกัดความข้างต้นถูกนำมาจากปัญหา 5 ของปัญหาห้า $ 1,000 - John H. Conway ) โปรดทราบว่าf (13532385396179) = f (13 · 53 2 · 3853 · …

26
ผลรวมของเลขคี่ที่ต่อเนื่องกัน
แม้ว่าจะมีการถามถึงความท้าทายที่เกี่ยวข้อง แต่สิ่งนี้แตกต่างเพื่อรับประกันคำถามของตัวเอง ท้าทาย รับค่าเป็นจำนวนเต็มบวกส่งคืนลำดับที่ยาวที่สุดของจำนวนเต็มคี่บวกต่อเนื่องซึ่งผลรวมคือจำนวนเต็มที่กำหนด หากไม่มีลำดับดังกล่าวคุณอาจรายงานข้อผิดพลาดไม่ว่าด้วยวิธีใดก็ตามที่เหมาะสมกับภาษาของคุณรวมถึงการคืนค่าที่ผิดพลาดหรือส่งข้อยกเว้น กรณีทดสอบ 1 -> [1] 2 -> [] 3 -> [3] 4 -> [1, 3] 5 -> [5] 6 -> [] 9 -> [1, 3, 5] (โปรดทราบว่า [9] ไม่ใช่คำตอบที่ถูกต้อง) 15 -> [3, 5, 7] 104 -> [23, 25, 27, 29] (โปรดทราบว่า [51, 53] ไม่ใช่คำตอบที่ถูกต้อง) เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ
24 code-golf  number 

21
ประมาณจำนวนพลาสติก
ความท้าทาย จำนวนพลาสติกเป็นจำนวนที่เกี่ยวข้องกับอัตราส่วนทองคำมีหลายคุณสมบัติทางคณิตศาสตร์ที่น่าสนใจ ดังนั้นจึงมีวิธีการมากมายที่สามารถใช้ในการคำนวณจำนวน เพื่อระบุจำนวนอย่างแม่นยำสำหรับวัตถุประสงค์ของการท้าทายนี้เราจะใช้คำจำกัดความต่อไปนี้ (แม้ว่าจะมีคำจำกัดความที่เทียบเท่ากันมากมายและคุณสามารถใช้คำจำกัดความใด ๆ ที่คุณต้องการตราบใดที่มันเป็นหมายเลขเดียวกัน): จำนวนพลาสติกเป็นจำนวนจริงρดังกล่าวที่ρ ³ = ρ 1 ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้จำนวนเต็มxเป็นอินพุต (ด้วยx > 1) และสร้างการประมาณρเป็นเอาท์พุทเช่นยิ่งค่าของxมากขึ้นเท่าไหร่ผลลัพธ์ที่ได้จะใกล้ถึงρ ( ที่มีมากที่สุดในหลายข้อยกเว้นขีด; เข้าพักที่นับค่าเช่นเดียวกับ "ใกล้ชิด" สำหรับวัตถุประสงค์นี้) และสำหรับการใด ๆ จำนวนบวกδมีบางอินพุตxในการเขียนโปรแกรมของคุณที่ก่อให้เกิดผลลัพธ์ที่ภายในδของρ ชี้แจง หากคุณกำลังส่งออกโดยใช้วิธีการที่เอาท์พุทสตริงโดยธรรมชาติ (เช่นกระแสออกมาตรฐาน) คุณสามารถจัดรูปแบบเอาท์พุททั้งในทศนิยม (เช่น1.3247179572) หรือเป็นอัตราส่วนของจำนวนเต็มสอง/ตัวที่มีตัวละครระหว่างพวกเขา หากคุณกำลังแสดงผลเป็นค่าในภาษาการเขียนโปรแกรมของคุณ (เช่นกลับมาจากฟังก์ชั่น) มันจะต้องเป็นประเภทจุดคงที่จุดลอยตัวหรือเหตุผล (โดยเฉพาะคุณไม่สามารถใช้ชนิดข้อมูลที่เก็บตัวเลขเป็นสัญลักษณ์ได้เว้นแต่ว่าพวกมันใช้เพื่อเก็บอัตราส่วนของจำนวนเต็มสองตัวเท่านั้นดังนั้นหากคุณใช้ Mathematica หรือภาษาที่คล้ายกันคุณจะต้องรวมส่วนเพิ่มเติม รหัสเพื่อสร้างตัวเลขจริงของการส่งออก) คำตอบของคุณจะต้องทำงานในรูปแบบที่แตกต่างของภาษาของคุณซึ่งจำนวนเต็มอาจมีขนาดใหญ่และหน่วยความจำ (รวมถึงสแต็ค) ไม่ จำกัด คุณอาจไม่คิดว่าเลขทศนิยมในภาษาของคุณมีความถูกต้องตามอำเภอใจ แต่ต้องใช้ความถูกต้องจริงแทน (หมายถึงการแสดงผลหมายเลขจุดลอยตัวจะเป็นไปได้เฉพาะในภาษาที่ความแม่นยำของตัวเลขจุดลอยตัวสามารถ ควบคุมที่รันไทม์) xสามารถมีความหมายใด ๆ ที่คุณต้องการ (ตราบใดที่การเพิ่มมันให้ผลลัพธ์ที่แม่นยำมากขึ้น) …
24 code-golf  math  number 

23
การท้าทายรหัสที่สำคัญ
งาน คุณมีหน้าที่สร้างเข็มทิศแปลก ๆ ลองจินตนาการว่าซอร์สโค้ดของคุณเป็นเข็มทิศ "เข็ม" ที่ทำงานในทิศทางที่แตกต่างกันจะสร้างเอาต์พุตที่แตกต่างกัน การวางแนวซอร์สโค้ดที่รองรับคือ North, East, South และ West ตัวอย่าง สมมติว่าคุณมีซอร์สโค้ด: ABCD J K WXYZ เราจะพิจารณาสิ่งนี้ในทิศเหนือ, หมุนตามเข็มนาฬิกา 90 องศาชี้เราไปทางทิศตะวันออก: W A XJB Y C ZKD หมุนอีกครั้งชี้ไปที่ทิศใต้: ZYXW K J DCBA และในที่สุดการหมุนครั้งสุดท้ายไปทางทิศตะวันตก: DKZ C Y BJX A W เมื่อเรียกใช้ตัวอย่างโค้ดด้านบนแต่ละตัวอย่างควรแสดงอักขระ ASCII ที่พิมพ์ได้ที่คุณเลือกได้ หมายเหตุ รหัสของคุณจะไม่มีการป้อนข้อมูล ช่องว่างหรือบรรทัดใหม่ไม่ยุบ / หายไปเมื่อหมุน บรรทัดใหม่ที่นำหน้า / …

3
ยอดคงเหลือของวงเล็บ
วัตถุประสงค์ของคุณ: กำหนดสตริงของวงเล็บให้ส่งค่าระยะทางต่ำสุดของDamerau-Levenshteinเพื่อเปลี่ยนสตริงอินพุตให้เป็นสตริงที่วงเล็บมีความสมดุล อินพุต สตริงอินพุตจะมีเครื่องหมายวงเล็บเท่านั้นและไม่มีอักขระอื่น ๆ นั่นคือมันคือการรวมกันใด ๆ (){}[]<>ของตัวละครใน คุณสามารถรับอินพุตเป็นสตริงหรืออาร์เรย์ของอักขระได้ คุณไม่สามารถทำการตั้งสมมติฐานอื่น ๆ เกี่ยวกับสายป้อนได้ มันอาจจะยาวโดยพลการ (ขึ้นอยู่กับขนาดสูงสุดที่รองรับโดยภาษาของคุณ) มันอาจจะว่างเปล่าวงเล็บอาจมีความสมดุลอยู่แล้วเป็นต้น ระยะทาง Damerau-Levenshtein ระยะทาง Damerau-Levenshtein ระหว่างสองสายคือจำนวนขั้นต่ำของการแทรกการลบการแทนที่อักขระเดี่ยวและการสลับ (การสลับ) ของอักขระสองตัวที่อยู่ติดกัน เอาท์พุต เอาต์พุตควรเป็นระยะทางต่ำสุดของ Damerau-Levenshtein ระหว่างสตริงอินพุตและสตริงที่ตรงกับเครื่องหมายวงเล็บ เอาต์พุตควรเป็นตัวเลขไม่ใช่สตริงที่สมดุล เครื่องหมายวงเล็บคู่หนึ่งถือว่าเป็น "จับคู่" หากวงเล็บเปิดและปิดอยู่ในลำดับที่ถูกต้องและไม่มีอักขระอยู่ภายในเช่น () []{} หรือถ้าทุกองค์ประกอบย่อยที่อยู่ภายในนั้นถูกจับคู่ด้วย [()()()()] {<[]>} (()()) องค์ประกอบย่อยยังสามารถซ้อนกันหลายชั้นลึก [(){<><>[()]}<>()] <[{((()))}]> (ขอบคุณ @DJMcMayhem สำหรับคำจำกัดความ) กรณีทดสอบ Input Possible Balanced Output Empty Empty 0 …


7
ค้นหา binarray!
เรากำหนดbinarrayเป็นอาร์เรย์ที่ตอบสนองคุณสมบัติดังต่อไปนี้: มันไม่ว่างเปล่า ค่าแรกคือ 1 ค่าสุดท้ายคือ 1 ค่าอื่น ๆ ทั้งหมดเป็นอย่างใดอย่างหนึ่ง0หรือ1 ตัวอย่างเช่นอาร์เรย์[ 1, 1, 0, 1 ]เป็นbinarray ที่ถูกต้อง binarray งาน ด้วยอาร์เรย์ที่ไม่ว่างAของจำนวนเต็มไม่เป็นลบและเลขจำนวนเต็มบวกNงานของคุณคือค้นหาbinarray B ที่มีความยาวNซึ่งอนุญาตให้สร้างAโดยการรวมจำนวนสำเนาBที่ไม่ จำกัด ซึ่งถูกย้ายโดยจำนวนที่ไม่ จำกัด ตำแหน่ง ตัวอย่าง A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ] N = 4 สำหรับอินพุตนี้binarray B …

10
ลิลลี่แพดกระโดด
ในการท้าทายนี้คุณต้องจำลองการกระโดดกบไปมาบนแผ่นลิลลี่ บ่อน้ำนั้นมีขนาดใหญ่อนันต์มีเส้นของแผ่นลิลลี่จำนวนไม่ จำกัด และกบสามารถกระโดดข้ามแผ่นลิลลี่ได้มากเท่าที่เขาชอบ กบตัวนี้ชอบที่จะกระโดดไปมา: หลังจากกระโดดไปข้างหน้าเขาจะกระโดดไปข้างหลังเสมอและในทางกลับกัน คุณผ่านรายการจำนวนเต็มซึ่งแสดงถึงการข้ามของเขา คุณต้องแสดงผลลัพธ์ของการข้ามของเขา ตัวอย่างเช่นสมมติว่าคุณผ่าน[2,3,6,8,2]: กบของเราเริ่มต้นด้วยการกระโดดแผ่นลิลลี่ 2 แผ่นไปข้างหน้า: _2 จากนั้น 3 แผ่นลิลลี่กลับ: 3__2 จากนั้นไปข้างหน้า 6 แผ่นลิลลี่: 3__2__6 8 หลัง: 8_3__2__6 จากนั้นในที่สุดดอกลิลลี่ 2 แผ่นจะไปข้างหน้า (สังเกตว่า 2 เขียนทับ 3): 8_2__2__6 หากต้องการให้ชัดเจนยิ่งขึ้น: ข้อมูลที่คุณป้อนเข้ามาเป็นจำนวนตัวเลขSคุณต้องแสดงผลลัพธ์S[K]ที่ตำแหน่งS[K] - S[K-1] + S[K-2] - S[K-3]...นั้น หากต้องพิมพ์หลายหมายเลขในบางตำแหน่งให้พิมพ์เฉพาะตัวเลขที่มีดัชนีสูงสุดเท่านั้น คุณจะต้องใช้_หากสถานที่ตั้งว่าง หากตัวเลขมีหลายหลักตัวเลขจะไม่ใช้หลายตำแหน่ง (กล่าวอีกนัยหนึ่งสถานที่ตั้งอาจประกอบด้วยอักขระหลายตัว) คุณสามารถสมมติว่ารายการของคุณไม่ว่างเปล่าและจำนวนเต็มทั้งหมดมากกว่า 0 กรณีทดสอบ: 5 ____5 2,2 …
24 code-golf  string 

11
การนับจำนวนหน่วยสี่เหลี่ยมวงกลมผ่าน
เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดรัศมีจำนวนเต็มrส่งคืนจำนวนหน่วยสี่เหลี่ยมวงกลมที่มีรัศมีrอยู่กึ่งกลางที่จุดกำเนิดผ่าน หากวงกลมผ่านจุดใดจุดหนึ่งบนกริดที่ไม่นับรวมผ่านหน่วยสี่เหลี่ยมที่อยู่ติดกัน นี่คือภาพประกอบสำหรับr = 5 : ภาพประกอบโดย Kival Ngaokrajang พบได้ใน OEIS ตัวอย่าง: 0 → 0 1 → 4 4 → 28 5 → 28 49 → 388 50 → 380 325 → 2540 5524 → 44180 5525 → 44020

30
ตีกอล์ฟแบบแอนนาแกรม
ในคำถามนี้ฉันขอให้คุณเดา anagram quine ตามผลลัพธ์ อย่างไรก็ตามดูเหมือนว่าเรายังไม่มีคำถามที่ถามคำถามเกี่ยวกับแอนนาแกรมตีกอล์ฟ ดังนั้นงานของคุณคือทำให้แอนนาแกรมสั้นที่สุดที่คุณสามารถทำได้ แอนนาแกรมควินคืออะไร แอนนาแกรมควินเป็นโปรแกรมที่ไม่ว่างที่พิมพ์แอนนาแกรมของซอร์สโค้ดนอกเหนือจากซอร์สดั้งเดิม นี่คือตัวอย่างของ anagram quine ใน Python 2: print`'`print`*2'*2` คุณไม่ควรอ่านแหล่งที่มาของคุณเองสำหรับความท้าทายนี้

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