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

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

30
มีรูที่ก้นทะเล
ในขณะที่พยายาม (และล้มเหลว) ชักชวนให้ลูกชายทารกกินอาหารเย็นของฉันฉันพยายามร้องเพลงให้เขา ผ่านกลางเพลงนี้ฉันรู้ว่าโครงสร้าง formulaic อาจให้ยืมตัวเองได้ดีในการตีกอล์ฟ! ภารกิจคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ไม่รับอินพุตและสร้างข้อความต่อไปนี้: There's a hole in the bottom of the sea There's a hole in the bottom of the sea There's a hole, there's a hole There's a hole in the bottom of the sea There's a log in the hole in the bottom of …

12
หมายเลขฟิสไซล์
ฉันพบลำดับนี้ในขณะที่ทำงานกับEvolution of OEISแต่ไม่เคยมีโอกาสโพสต์มันเป็นคำตอบ หลังจากเขียนการนำการอ้างอิงไปใช้ใน Mathematica ฉันคิดว่านี่เป็นแบบฝึกหัดที่สนุกที่จะทำเป็นความท้าทายที่แยกจากกันดังนั้นที่นี่เราไปกันเลย มาสร้างเครื่องปฏิกรณ์ฟิชชันเป็นตัวเลขกันเถอะ! Nพิจารณาเป็นจำนวนเต็มบวก 24เป็นตัวอย่างที่เราจะดูที่ ในการแยกจำนวนนี้เราต้องหาจำนวนเต็มบวกที่ต่อเนื่องสูงสุดที่รวมNกัน ในกรณีนี้นั่นก็7 + 8 + 9 = 24คือ ดังนั้นเราจึงแบ่งออก24เป็นสามตัวเลขใหม่ แต่นี่จะไม่เป็นเครื่องปฏิกรณ์ฟิชชันมากนักหากไม่มีปฏิกิริยาลูกโซ่ ดังนั้นให้ทำซ้ำขั้นตอนซ้ำสำหรับส่วนประกอบเหล่านี้: 24 /|\ / | \ / | \ 7 8 9 / \ /|\ 3 4 / | \ / \ / | \ 1 2 2 3 4 / …

30
Facey McFaceface
ใครจำBoaty ? คุณสามารถสร้างคำเก่า ๆ ได้ใช่ไหม? เขียนฟังก์ชั่นเพื่อเปลี่ยนสตริงเป็น Somethingy McSomethingface ควรยอมรับหนึ่งสตริงเป็นอินพุต ละเว้นกรณีของการป้อนข้อมูล หากคำลงท้ายด้วย 'y' ฟังก์ชั่นของคุณไม่ควรเพิ่ม 'y' เพิ่มเติมในอินสแตนซ์แรก แต่ควรลบออกในอินสแตนซ์ที่สอง หากคำลงท้ายด้วย 'ey' คำนั้นไม่ควรเพิ่ม 'y' เพิ่มเติมในอินสแตนซ์แรก แต่ควรลบทั้งสองในอินสแตนซ์ที่สอง ผลลัพธ์ควรมีตัวอักษรตัวพิมพ์ใหญ่ในอักขระตัวแรกคือ 'M' ของ 'Mc' และตัวอักษรตัวแรกหลัง 'Mc' มันจะต้องทำงานกับสายอักขระ 3 ตัวขึ้นไป ตัวอย่าง: boat => Boaty McBoatface Face => Facey McFaceface DOG => Dogy McDogface Family => Family McFamilface Lady => …
47 code-golf  string 

30
99 ข้อบกพร่องในรหัส
99 ข้อบกพร่องในรหัส การดัดแปลงของ "99 ขวดเบียร์บนกำแพง" สำหรับวิทยาศาสตร์คอมพิวเตอร์ที่มีข้อบกพร่องเพิ่มขึ้นแทนที่จะลดขวดมักจะโพสต์อีกครั้งในอินเทอร์เน็ต ตัวอย่างเช่นเสื้อยืดที่นี่ ฉันคิดว่ามันน่าสนใจที่จะเห็นการเรียกซ้ำและการสร้างตัวเลขสุ่มในภาษาที่หลากหลายและการค้นหาวิธีที่มีประสิทธิภาพที่สุดในการทำมัน มีความท้าทายเล็กน้อยอื่น ๆ เกี่ยวกับเบียร์ 99 ขวด แต่ดูเหมือนจะไม่มีอะไรเพิ่มขึ้นและลดลง! ท้าทาย โปรแกรมหรือฟังก์ชั่นของคุณไม่ควรป้อนข้อมูลแล้วพิมพ์ 99 ข้อบกพร่องในรหัส 99 ข้อบกพร่องในรหัส เอาหนึ่งและแก้ไขมัน X ข้อบกพร่องในรหัส (บรรทัดว่าง) โดยที่ X คือเลขจำนวนเต็มก่อนหน้าลบ 1 บวกด้วยจำนวนเต็มแบบสุ่มในช่วง [-15,5] คุณสามารถรวมลบ 1 เข้ากับจำนวนเต็มแบบสุ่มดังนั้นจึงอนุญาตให้มีช่วง [-16,4] ช่วงสามารถเป็นแบบพิเศษได้ดังนั้นลบหนึ่งบวก (-16,6) หรือ (-17,5) จำนวนเต็มแบบสุ่มไม่จำเป็นต้องมีการกระจายอย่างเท่าเทียมกันพวกเขาเพียงแค่ต้องเป็นไปได้ทั้งหมด โปรแกรมเริ่มต้นด้วย 99 บั๊กเสมอ คุณสามารถละเว้นข้อผิดพลาดทางไวยากรณ์ของ "1 ข้อบกพร่อง" โปรแกรมควรหยุดเมื่อจำนวนข้อบกพร่องเป็น 0 หรือลบและพิมพ์ 0 ข้อบกพร่องในรหัส …
47 code-golf  random 

6
ตีกอล์ฟให้ใหญ่กว่า TREE (3)
TREE (k) ของฟังก์ชันให้ความยาวของลำดับที่ยาวที่สุดของต้นไม้ T 1 , T 2 , ... ซึ่งจุดยอดแต่ละจุดจะมีป้ายกำกับด้วยสี k หนึ่งสีต้นไม้ T ฉันมีจุดสูงสุดที่ฉันและไม่มีต้นไม้ใดเป็นเล็กน้อยของต้นไม้ใด ๆ ที่ตามมาในลำดับ TREE (1) = 1 กับเช่น T 1(1) = TREE (2) = 3: เช่น T 1 = (1); T 2 = (2)--(2); T 3(2) = TREE (3) เป็นใหญ่ขนาดใหญ่จำนวน ยิ่งใหญ่กว่าตัวเลขของเกรแฮม งานของคุณคือการส่งออกจำนวนที่ยิ่งใหญ่กว่ามัน! นี่เป็นโค้ดกอล์ฟดังนั้นเป้าหมายคือการเขียนโปรแกรมที่สั้นที่สุดในภาษาใด ๆ ที่กำหนดผลลัพธ์ที่มีขนาดใหญ่กว่าหรือเท่ากับ TREE …

24
ปรับลดเป็น Palindrome
รับสตริงsส่งคืนซับสตริงย่อยที่เล็กที่สุดที่คุณสามารถลบออกเพื่อสร้าง palindrome ตัวอย่าง: 800233008 -> 2 racecarFOOL -> FOOL abcdedcba -> (empty string) ngryL Myrgn -> "L " (or " M") 123456789 -> 12345678 (or 23456789) aabcdbaa -> c (or d) [[]] -> [[ (or ]]) a -> (empty string) คำแนะนำกรณีทดสอบจากผู้ใช้ (หากคุณพบกรณีขอบไม่อยู่ในรายการโปรดโพสต์ความคิดเห็น): aabaab -> b | Suggested by Zgarb, some …

29
ไปที่หน้า Nth
เป็นเรื่องปกติที่จะต้องสร้างส่วนต่อประสานการเลือกหน้า โดยทั่วไปจะมีลักษณะเช่นนี้: prev 1 ... 3 4 [5] 6 7 ... 173 next ซึ่งหมายความว่ามีทั้งหมด 173 หน้าและคุณอยู่ในหน้าที่ 5 ในขณะนี้ ความท้าทายนี้ต้องการให้คุณใช้จำนวนหน้าทั้งหมดและหมายเลขหน้าปัจจุบันเป็นอินพุตและส่งออกสตริง (หรืออาร์เรย์) เพื่อ "แสดง" ตัวเลือกหน้า อินพุต 2 จำนวนเต็มบวก หมายเลขหน้าปัจจุบัน จำนวนหน้า รับประกันได้ว่า 1 <= current <= total เอาท์พุต ส่งออกสตริงหรืออาร์เรย์ซึ่งเป็นตัวแทนของ UI สำหรับตัวเลือกหน้า หากเอาต์พุตเป็นสตริงควรใช้เว้นวรรค (U + 0020) ระหว่างแต่ละหน้า หากเอาต์พุตเป็นอาร์เรย์อาร์เรย์ควรสร้างผลลัพธ์เดียวกันกับสตริงหลังจากแปลงแต่ละรายการเป็นสตริงและเข้าร่วมกับช่องว่างเดียว สามจุด ( ...) ไม่ใช่ตัวเลือกสำหรับเอาต์พุตอาร์เรย์ รายละเอียด หากปัจจุบัน …
47 code-golf  string 

30
สามเหลี่ยมของฉันถูกไหม
เมื่อกำหนดa, b, cความยาวของสามเหลี่ยมทั้งสามด้านให้บอกว่าสามเหลี่ยมนั้นเป็นมุมฉาก (เช่นมีมุมหนึ่งเท่ากับ 90 องศา) หรือไม่ อินพุต ค่าจำนวนเต็มบวกสามค่าในลำดับใดก็ได้ เอาท์พุต อย่างใดอย่างหนึ่งโดยเฉพาะการส่งออกที่แท้จริง ( true, 1, yes, ... ) หรือการส่งออกเฉพาะเท็จ ( false, 0, no, ... ) ตัวอย่าง 5, 3, 4 --> yes 3, 5, 4 --> yes 12, 37, 35 --> yes 21, 38, 50 --> no 210, 308, 250 --> no …

13
สุดยอดฟีโบนักชี
มีการท้าทาย Fibonacci ซ้ำหลายพันล้านครั้งในเว็บไซต์นี้ดังนั้นขอเชิญชวนให้ทุกท่านสนุกกับการท้าทาย Fibonacci อีกครั้งหนึ่งพันล้านครั้ง! ความท้าทายของคุณคือการส่งออกตัวเลขทศนิยม 1,000 หลักแรกของหมายเลขฟีโบนักชีที่ 1,000,000,000 พร้อมโปรแกรมให้สั้นที่สุด ซึ่งอาจเป็นทางเลือกตามด้วยผลลัพธ์เพิ่มเติมใด ๆ ที่คุณเลือกซึ่งรวมถึง แต่ไม่ จำกัด เพียงตัวเลขที่เหลือ ฉันใช้การประชุมว่า,fib 0 = 0fib 1 = 1 โปรแกรมของคุณจะต้องเร็วพอสำหรับคุณที่จะเรียกใช้และตรวจสอบความถูกต้องของมัน เพื่อจุดประสงค์นี้นี่คือตัวเลข 1,000 หลักแรก: 7952317874554683467829385196197148189255542185234398913453039937343246686182519370050999626136556779332482035723222451226291714456275648259499530612111301255499879639516053459789018700567439946844843034599802419924043753401950114830107234265037841426980398387360784284231996457340782784200767760907777703183185744656536253511502851715963351023990699232595471322670365506482435966586886048627159716916351448788527427435508113909167963907380398242848033980110276370544264285032744364781198451825462130529529633339813483105771370128111851128247136311414208318983802526907917787094802217750859685116363883374847428036737147882079956688807509158372249451437519320162582002000530798309887261257028201907509370554232931107084976854715833585623910450679449120011564762925649144509531904684984417002512086504020779012501356177874199605085558317190905395134468919443313026824813363234190494375599262553025466528838122639433600483849535070647711986769279568548796855207684897741771784375859496425384355879105799

30
หอยทากในบ่อ
พื้นหลัง มีปัญหาลับสมองที่จะทำสิ่งนี้: หอยทากอยู่ที่ก้นบ่อ 30 ฟุต หอยทากทุกวันสามารถปีนขึ้นไปได้ถึง 3 ฟุต ในเวลากลางคืนเมื่อพวกเขานอนหลับพวกเขาเลื่อนกลับลงมา 2 ฟุต หอยทากใช้เวลากี่วันในการออกจากบ่อ? คำตอบที่เข้าใจง่ายคือ 30 วันเพราะหอยทากปีนขึ้นไปที่ 1 ฟุตต่อวันเป็นเวลา 30 วันเพื่อไปถึงจุดสูงสุด แต่จริงๆแล้วคำตอบคือ 28 วันเพราะเมื่อหอยทากอยู่ในอากาศ 27 ฟุต (หลังจาก 27 วัน) พวกเขาจะปีนขึ้นไปอีก 3 ฟุตที่เหลือในวันที่ 28 ท้าทาย ความท้าทายนี้ทำให้ปัญหานี้กลายเป็นปัญหาทั่วไป เมื่อรับอินพุตจำนวนเต็มบวกสามตัวแทนความสูงทั้งหมดความสูงปีนและความสูงของฤดูใบไม้ร่วงให้คืนค่าจำนวนวันที่ใช้ในการปีนออกจากบ่อน้ำ หากหอยทากไม่สามารถปีนออกจากหลุมคุณอาจกลับ 0 กลับค่าเท็จหรือโยนข้อยกเว้น คุณอาจเขียนโค้ดที่จะหยุดหากว่ามีวิธีแก้ไขอยู่หรือไม่ หากคุณต้องการคุณอาจใช้ความสูงของการตกเป็นจำนวนเต็มลบ กรณีทดสอบ (30, 3, 2) -> 28 (84, 17, 15) -> 35 …

30
นี่เป็นฟังก์ชั่นหรือไม่?
รับรายการ(key, value)คู่ตรวจสอบว่ามันหมายถึงฟังก์ชั่นซึ่งหมายความว่าแต่ละแผนที่สำคัญกับค่าที่สอดคล้องกัน กล่าวอีกนัยหนึ่งเมื่อใดก็ตามที่สองรายการมีคีย์เท่ากันพวกเขาจะต้องมีค่าเท่ากัน รายการที่ซ้ำกันก็โอเค ตัวอย่างเช่น: # Not a function: 3 maps to both 1 and 6 [(3,1), (2,5), (3,6)] # Function: It's OK that (3,5) is listed twice, and that both 6 and 4 both map to 4 [(3,5), (3,5), (6,4), (4,4)] อินพุต:ลำดับของ(key, value)คู่ที่สั่งซื้อโดยใช้ตัวเลข 1 ถึง 9 คุณอาจไม่ต้องการการเรียงลำดับแบบพิเศษ คุณอาจเลือกรายการคีย์และรายการค่าเป็นอินพุตแยกต่างหาก เอาท์พุท:ค่าที่สอดคล้องกันสำหรับฟังก์ชั่นและค่าที่สอดคล้องกันที่แตกต่างกันสำหรับที่ไม่ใช่ฟังก์ชั่น …

30
เป็นคนแรกที่ 1
Intro ทุก ๆ ปีDyalog Ltd.จัดการแข่งขันสำหรับนักเรียน ความท้าทายคือการเขียนรหัส APL ที่ดี นี่เป็นรุ่นที่ผู้ไม่เชื่อเรื่องภาษารหัสของปัญหาที่แปดของปีนี้ ฉันมีสิทธิ์อย่างชัดเจนในการโพสต์ความท้าทายนี้ที่นี่จากผู้เขียนต้นฉบับของการแข่งขัน รู้สึกอิสระที่จะตรวจสอบโดยทำตามลิงค์ที่ให้ไว้และติดต่อผู้เขียน ปัญหา รับรายการบูลีน * "ปิด" ความจริงทั้งหมดหลังจากความจริงครั้งแรก ไม่มีความจริงเหรอ? ไม่มีปัญหา! เพียงแค่คืนค่ารายการโดยไม่แก้ไข ตัวอย่าง [falsy,truthy,falsy,truthy,falsy,falsy,truthy] → [falsy,truthy,falsy,falsy,falsy,falsy,falsy] [] → [] [falsy,falsy,falsy,falsy] → [falsy,falsy,falsy,falsy] * ความจริงทั้งหมดของคุณจะต้องเหมือนกันและความเท็จทั้งหมดของคุณจะต้องเหมือนกัน รวมถึงผลลัพธ์ด้วย

30
Bernardino ระบุคำที่ไม่เปลี่ยนแปลง
คำนิยาม คำดอลล่าร์เป็นคำที่เมื่อตัวอักษรแต่ละตัวได้รับค่าเซ็นต์จาก a = 1 ถึง z = 26 และตัวอักษรถูกรวมผลที่ได้คือ 100 นี่คือตัวอย่างบน CodeReview และนี่คือรายการ ของคำเงินดอลลาร์ที่ฉันพบออนไลน์ อินพุต การป้อนข้อมูลจะเป็นตัวอักษรจาก az ในประเภทข้อมูลข้อความภาษาเดียวของคุณ (อนุญาตให้ใช้อาร์เรย์) คุณไม่จำเป็นต้องคำนึงถึงอินพุตอื่น ๆ - จะไม่มีช่องว่างเครื่องหมายวรรคตอนหรือเครื่องหมายยัติภังค์ คุณสามารถใช้ตัวพิมพ์เล็กตัวพิมพ์ใหญ่หรือชุดค่าผสม ขึ้นบรรทัดใหม่ที่ได้รับอนุญาต เอาท์พุต เอาท์พุทค่าความจริงหากการป้อนข้อมูลเป็นคำดอลลาร์และค่าความเท็จถ้ามันไม่ได้ กรณีทดสอบ Truthy: buzzy boycott identifies adiabatically ttttt Falsey: zzz zzzzzzz abcdefghiljjjzz tttt basic นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ! มีช่องโหว่และกฎมาตรฐานที่บังคับใช้ ผูกไปที่โปสเตอร์แรก
47 code-golf  string 

15
Attack, Decay, Sustain, Release
ตัวสังเคราะห์เสียงใช้ตัวกำเนิดซองจดหมายเพื่อควบคุมการเปลี่ยนแปลงพารามิเตอร์ของเสียง (เช่นความดังโดยรวม) ตามเวลา ในการสังเคราะห์จำนวนมากซองจดหมายจะถูกกำหนดโดยพารามิเตอร์สี่ตัวดังที่แสดงในรูปต่อไปนี้จากWikipedia : Attack time (A) : เวลาที่ซองจดหมายถึงระดับสูงสุดโดยเริ่มจากศูนย์เมื่อกดปุ่มครั้งแรก Decay time (D) : เวลาที่ซองจดหมายถึงระดับความยั่งยืนที่ระบุ ระดับยั่งยืน (S) : ระดับที่ได้รับการบำรุงรักษาหลังจากการโจมตีและการสลายตัวเริ่มต้นตราบใดที่มีการกดปุ่ม Release time (R) : เวลาที่ซองจดหมายจะถึงศูนย์เมื่อปล่อยกุญแจ ความท้าทาย ป้อนข้อมูลพารามิเตอร์สี่ A, D, S, R และพล็อตซองจดหมาย พารามิเตอร์จะเป็นจำนวนเต็มค่า 0-127 ระดับสูงสุด (ถึงตอนท้ายของระยะโจมตี) จะถือว่าเป็น127 ส่วนแนวนอนที่ระดับการค้ำจุนจะถือว่ามีระยะเวลา 64 (ในเสียงจริงระยะเวลานี้จะไม่คงที่ แต่จะถูกกำหนดโดยระยะเวลาที่ถือกุญแจ) รูปแบบและรายละเอียดเพิ่มเติม ผลลัพธ์ควรเป็นภาพในรูปแบบแรสเตอร์หรือเวกเตอร์ หากเป็นภาพแรสเตอร์เส้นรูปหลายเหลี่ยมควรมีขนาดอย่างน้อย 50 พิกเซลในแนวตั้งในแนวนอน ภาพสามารถแสดงหรือสร้างเป็นไฟล์ในรูปแบบภาพมาตรฐานได้ ไฟล์สามารถเขียนลงดิสก์หรือเนื้อหาที่แน่นอนสามารถส่งออกไปยัง STDERR หรือเป็นอาร์กิวเมนต์กลับฟังก์ชั่น กราฟต้องการเพียงแค่มีเส้นรูปหลายเหลี่ยมที่กำหนดซองจดหมาย …

30
แสดงพิกเซลสีแบบสุ่ม
ฉันชอบหน้าจอที่เต็มไปด้วยพิกเซลสีแบบสุ่มเสมอ พวกเขาน่าสนใจที่จะดูและโปรแกรมที่ดึงดูดพวกเขาดูสนุก ความท้าทาย เติมหน้าจอของคุณหรือหน้าต่างกราฟิกที่มีพิกเซลสี กฎระเบียบ โปรแกรมของคุณจะต้องมีโอกาสในการเลือกสีทั้งหมด (เช่นในช่วง#000000ถึง#FFFFFF) หรือสีทั้งหมดที่สามารถแสดงบนระบบของคุณ โปรแกรมของคุณต้องแสดงพิกเซลแบบสุ่มต่อไปจนกว่าจะหยุดเอง (มันไม่สามารถยุติได้ด้วยตนเอง) พิกเซลสามารถมีขนาดใดก็ได้ตราบใดที่เอาต์พุตของคุณมีอย่างน้อย40x40 "พิกเซล" โปรแกรมของคุณต้องทำงานด้วยความเร็วที่สามารถแทนที่ทุกพิกเซลบนหน้าจอ / หน้าต่างอย่างน้อยหนึ่งครั้งหลังจากทำงานเป็นเวลาสามนาที โปรแกรมของคุณจะต้องเลือกสีและจุดสุ่มอย่างแท้จริงเพื่อแทนที่เช่นการสุ่มด้วยคะแนน / สีทั้งหมดที่มีโอกาสเท่ากัน มันไม่สามารถดูสุ่ม ต้องใช้ pRNG หรือดีกว่าและเอาต์พุตไม่สามารถเหมือนเดิมทุกครั้ง โปรแกรมของคุณจะต้องมีโอกาสเท่าเทียมกันของการเลือกทุกสีแต่ละซ้ำ โปรแกรมของคุณต้องแทนที่หนึ่งพิกเซลพร้อมกัน โปรแกรมของคุณไม่สามารถใช้อินเทอร์เน็ตหรือระบบไฟล์ของคุณ ( /dev/randomและ/dev/urandomยกเว้น) ตัวอย่าง ผลลัพธ์ของคุณอาจมีลักษณะเช่นนี้หากหยุดในเวลาสุ่ม: ผู้ชนะ คำตอบที่สั้นที่สุดในแต่ละภาษาชนะ มีความสุข!

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