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

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

5
พลังที่สมบูรณ์แบบมากกว่าหนึ่งทาง?
ท้าทาย งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นซึ่งได้รับจำนวนเต็มบวกNพบจำนวนเต็มบวกทั้งหมดน้อยกว่าหรือเท่ากับNที่สามารถแสดงเป็นพลังที่สมบูรณ์แบบมากกว่าหนึ่งวิธี คำนิยาม พลังที่สมบูรณ์แบบถูกกำหนดให้เป็นตัวเลขที่ฉันพบโดยm ^ kโดยที่ mและฉันเป็นจำนวนเต็มบวก m! = k กรณีทดสอบ อินพุต -> เอาต์พุต 1,000 -> 16, 64, 81, 256, 512, 625, 729 56 -> 16 999 -> 16, 64, 81, 256, 512, 625, 729 81 -> 16, 64, 81 1500 -> 16, 64, 81, 256, 512, 625, 729, 1024, …


10
พยากรณ์อากาศ
เขียนโปรแกรมที่สั้นที่สุดเพื่อพยากรณ์อากาศ 7 วันข้างหน้า อินพุต (จาก stdin) คือวันทำงานและฤดูกาล เอาท์พุท (ที่ stdout) เป็นเจ็ดสายวันทำงานและอุณหภูมิในเซนติเกรด วันทำงานเริ่มต้นในวันทำการอินพุต อุณหภูมิเป็นตัวเลขสุ่มด้วยช่วงขึ้นอยู่กับฤดูกาล ฤดูใบไม้ผลิ 10 - 30 องศา ฤดูร้อน 20 - 40 องศา ฤดูใบไม้ร่วง 5 - 25 องศา (ฤดูใบไม้ร่วงเป็นคำพ้องความหมายสำหรับฤดูใบไม้ร่วง) ฤดูหนาว -5 - 15 องศา ตัวอย่างอินพุต Thursday Winter ตัวอย่างผลลัพธ์ วันพฤหัสบดีที่ -1 วันศุกร์ที่ 3 วันเสาร์ที่ 8 วันอาทิตย์ที่ 7 วันจันทร์ที่ 10 วันอังคารที่ 10 …
13 code-golf  random 

9
การลบคริสตจักร
การลบคริสตจักร แลมบ์ดาแคลคูลัสเป็นที่สนใจของฉันมาโดยตลอดและพฤติกรรมฉุกเฉินของการส่งผ่านหน้าที่ต่าง ๆ เข้ามามีความซับซ้อนอย่างน่ายินดี เลขคริสตจักรเป็นตัวแทนของตัวเลขธรรมชาติที่สร้างขึ้นจากการใช้ฟังก์ชั่นซ้ำ ๆ (โดยปกติจะเป็นการเพิ่มค่าคงที่แบบเอกภาพ) ตัวอย่างเช่นจำนวนศูนย์ส่งคืน x และ "ละเว้น" ฟังก์ชันอินพุตหนึ่งคือf(x)สองคือf(f(x))และต่อไปนี้: ident = lambda x: x zero = lambda f: ident succ = lambda n: lambda f: lambda x: f(n(f)(x)) one = succ(zero) add1 = lambda x: x + 1 to_int = lambda f: f(add1)(0) print(to_int(one)) >>> 1 จากนี้เราสามารถเห็นได้อย่างง่ายดายว่าการเติมนั้นทำได้โดยใช้ฟังก์ชันแรกกับ …

30
ตัดสินผู้ชนะเกมฟุตบอลออสเตรเลีย
ในฟุตบอลออสเตรเลียเป้าหมายมีค่า 6 คะแนนและหลังมีค่า 1 คะแนน คะแนนอาจรวมถึงจำนวนของเป้าหมายและด้านหลังเช่นเดียวกับคะแนนรวม กำหนดจำนวนประตูและด้านหลังสำหรับสองทีมที่แตกต่างกันกำหนดทีมที่ชนะในเกม ใช้จำนวนเต็มสี่จำนวนg1, b1, g2, b2เป็นอินพุตและเอาต์พุตสองค่าที่แตกต่างกันไม่ว่าทีมแรกหรือทีมที่สองจะเป็นผู้ชนะ รูปแบบอินพุตมีความยืดหยุ่น แต่ลำดับอินพุตต้องอนุญาตให้ชัดเจนว่าทีมใดเป็นอันดับแรก ตัวอย่างเช่นg1, g2, b1, b2จะได้รับอนุญาต แต่b1, g2, g1, b2จะไม่ กรณีทดสอบ กรณีทดสอบจะใช้trueสำหรับการชนะทีมแรกและfalseสำหรับการชนะทีมที่สอง (g1,b1),(g2,b2)การป้อนข้อมูลที่อยู่ในรูปแบบ (1,0),(0,1) true (2,0),(0,11) true (10,8),(11,1) true (0,0),(1,0) false (100,100),(117,0) false (7,7),(5,12) true (2,0),(0,13) false ตัวอย่างเช่นสำหรับอินพุต(10,8),(11,1)ทีม 1 ทำคะแนนได้ 10 เป้าหมายและ 8 หลังรวมเป็นคะแนนในขณะที่ทีม 2 ทำคะแนนคะแนนดังนั้นทีมที่ 1 ชนะ .10 …

28
โปรแกรมทุ่มตลาด hex สั้นที่สุด
ท้าทาย สร้างโปรแกรมคอนโซลเพื่อแสดงแต่ละไบต์ของไฟล์ การชนะ เนื่องจากนี่คือcode-golfจึงมีจำนวนไบต์น้อยที่สุดที่ชนะ กฎระเบียบ โปรแกรมจะต้องเป็นแอปพลิเคชันคอนโซลซึ่งหมายความว่ามันจะถูกเรียกใช้จากล่ามบรรทัดคำสั่งบางประเภท ทุกไบต์ต้องเป็นตัวพิมพ์ใหญ่เป็นเลขฐานสิบหกซึ่งคั่นด้วยช่องว่างและต้องเป็น 2 หลัก (ใส่หมายเลข 0 ก่อนถ้ามี 1 หลัก) ไฟล์จะต้องอ่านโดยใช้ IO หรือทางเลือกอื่นและต้องไม่กำหนดรหัสตายตัว เส้นทางของไฟล์จะต้องระบุเป็นอาร์กิวเมนต์บรรทัดคำสั่งหรือแจ้งให้ผู้ใช้ (เช่น STDIN) ; ไม่มีช่องว่างโปรด ; ตัวอย่าง test.txt (ลงท้ายด้วย LF) Hello World! $ ./hexdump.exe test.txt 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 0A
13 code-golf 

3
ใช้ฟังก์ชัน Darboux อย่างยิ่ง
ตามที่วิกิพีเดียเป็นอย่างยิ่งฟังก์ชั่น Darboux คือ หนึ่งที่ภาพของทุกช่วงเวลาที่เปิด (ไม่ว่างเปล่า) เป็นเส้นจริงทั้งหมด ในคำอื่น ๆ ฟังก์ชั่นfffเป็นอย่างยิ่งหากได้รับ Darboux 3 ตัวเลขจริงพล, ขและy ที่มันเป็นไปได้เสมอที่จะหาxระหว่าง (ที่แตกต่างกัน) และขดังกล่าวว่าF ( x ) = Yaaabbbyyyxxxaaabbbf(x)=yf(x)=yf(x) = y สำหรับวัตถุประสงค์ของการท้าทายนี้เราจะพิจารณาฟังก์ชั่น Darboux อย่างมีนัยสำคัญมากกว่าปันส่วนแทน ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่: ให้จำนวนตรรกยะเป็นเอาต์พุตสำหรับการป้อนจำนวนตรรกยะทุกตัว ให้เอาต์พุตเดียวกันสำหรับอินพุตที่กำหนดและ มีคุณสมบัติ Darboux อย่างยิ่ง อินพุตและเอาต์พุตอาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้: ประเภทตัวเลขที่มีความแม่นยำโดยพลการหากภาษาของคุณมีหนึ่ง (หรือมีห้องสมุดสำหรับหนึ่งเช่น GMP) การแสดงสตริงของจำนวนซึ่งคุณอาจสันนิษฐานว่าจะมีจุดทศนิยมและอย่างน้อยหนึ่งหลักในแต่ละด้าน มันอาจจะอยู่ในฐานb≥2b≥2b \geq 2ใด ๆแต่อินพุตและเอาต์พุตจะต้องอยู่ในฐานเดียวกัน คุณสามารถใช้ชุดอักขระสำหรับตัวเลขและจุดทศนิยม (แต่อีกครั้งพวกเขาจะต้องสอดคล้องกันระหว่างอินพุตและเอาต์พุต) อินพุตจะมีการยกเลิกการขยายฐานbbbเสมอ สำหรับผลลัพธ์ซึ่งอาจมีการขยายฐานbbbหลักทฤษฏีไม่สิ้นสุดขึ้นอยู่กับการเลือกฟังก์ชันที่คุณเลือกคุณอาจเลือกข้อใดข้อหนึ่งต่อไปนี้: ตัวเลขเอาท์พุทตลอดไป ใช้จำนวนเต็มเพิ่มเติมเป็นอินพุตและเอาต์พุตอย่างน้อยจำนวนหลัก เอาท์พุทอย่างน้อยตัวเลขให้มากที่สุดเท่าที่อยู่ในการป้อนข้อมูล (ซึ่งอาจมีศูนย์ต่อท้าย) โปรดทราบว่าโดยธรรมชาติของความท้าทายนี้อนุสัญญาที่อาจใช้ตัวเลขแทนประเภทมาตรฐานมาตรฐานจะใช้ไม่ได้ยกเว้นการป้อนข้อมูลครั้งที่สองที่อธิบายไว้ในตัวเลือก …
13 code-golf  number 

7
ค้นหาเส้นผ่านศูนย์กลางของกราฟคำ
บทนำ ปริศนาคำศัพท์ยอดนิยมคือการแปลงหนึ่งคำเป็นอีกคำหนึ่งผ่านชุดของขั้นตอนที่แทนที่ตัวอักษรเพียงตัวเดียวและส่งผลให้เกิดคำที่ถูกต้องเสมอ ตัวอย่างเช่น BAG สามารถแปลงเป็น DOG ผ่านเส้นทางห้าขั้นตอน: BAG -> BAT -> CAT -> COT -> COG -> DOG เส้นทางที่สั้นกว่านั้นมีอยู่ในกรณีนี้เช่นกัน ตัวอย่างเช่น: BAG -> BOG -> DOG หากมีใครวาดกราฟซึ่งจุดยอดถูกติดป้ายกำกับด้วยคำโดยมีขอบระหว่างคำคู่ใด ๆ ที่แตกต่างกันด้วยตัวอักษรหนึ่งตัวเส้นทางที่สั้นที่สุดจาก "BAG" ถึง "DOG" จะประกอบด้วยสองขอบ ท้าทาย คุณจะต้องเขียนโปรแกรมที่รับเป็น "พจนานุกรม" ของคำที่ทุกคนมีความยาวเท่ากันแสดงถึงคำที่อนุญาตทั้งหมดที่สามารถปรากฏเป็นขั้นตอนตามเส้นทาง มันควรจะส่งออกอย่างน้อยหนึ่ง "เส้นทางที่สั้นที่สุดที่ยาวที่สุด" นั่นคือเส้นทางระหว่างคำสองคำคือ: ไม่เกินเส้นทางอื่นระหว่างคำทั้งสองนี้ อย่างน้อยตราบใดที่เส้นทางที่สั้นที่สุดที่เป็นไปได้ระหว่างคำอื่น ๆ ในรายการ ในบริบทของกราฟที่อธิบายข้างต้นความยาวของเส้นทางดังกล่าวคือเส้นผ่านศูนย์กลางของกราฟ ในกรณีที่เสื่อมโทรมซึ่งไม่มีคำใดที่ป้อนเข้าสามารถแปลงเป็นคำอื่น ๆ ได้ให้ส่งออกอย่างน้อยหนึ่งเส้นทางที่มีความยาวศูนย์นั่นคือคำเดียว ตัวอย่าง อินพุต ["bag", …
13 code-golf 

2
ใครบ้างที่สามารถหลบหนีเกม Nonary ได้?
เกม Nonary เป็นเกมสวมบทบาทที่เล่นในวิดีโอเกมตอนจบที่มีชื่อเดียวกัน เป้าหมายของคุณคือค้นหาว่ามีผู้เล่นกี่คน (ที่ดีที่สุด) สามารถหลบหนีเกมที่กำหนดได้โดยใช้โค้ดน้อยที่สุด กฎของเกม มีผู้เล่น 9 คนหมายเลข 1 ถึง 9 ผู้เล่นทุกคนเริ่มต้นในห้องเดียวกัน มีประตูจำนวนหนึ่งแต่ละอันมีหมายเลข 1 ถึง 9 อาจมีหมายเลขประตูซ้ำหรือหายไป ประตูมีการเชื่อมต่อทางเดียวระหว่างห้อง แต่ละประตูสามารถใช้ได้เพียงครั้งเดียว มีเพียงกลุ่มที่มีผู้เล่น 3 ถึง 5 คนเท่านั้นที่สามารถผ่านเข้าประตูได้ กลุ่มสามารถผ่านประตูได้ถ้าผลรวมของตัวเลขโมดูโล 9ตรงกับหมายเลขโมดูโล 9ของประตู ผู้เล่นที่ผ่านประตู 9 ช่อง (ชนะ) ตัวอย่าง ┌───┬───┬───┐ │ 6 4 9 │ < │ | | │ 3 5 9 └───┴───┴───┘ <แสดงถึงจุดเริ่มต้น …
13 code-golf  game 

7
พิมพ์ความยาวทั้งหมดของอักขระ“ ที่ยกมา” ทั้งหมด
กฎระเบียบ ในความท้าทายนี้ฉันจะนิยามนิยามของ "คำพูด" อีกเล็กน้อย เครื่องหมายอัญประกาศ ( อัญประกาศ AKA ) เป็นอักขระที่เหมือนกันที่ใช้เป็นคู่ในระบบการเขียนต่าง ๆ เพื่อตั้งค่าการพูดโดยตรงใบเสนอราคาหรือวลี ทั้งคู่ประกอบด้วยเครื่องหมายคำพูดเปิดและเครื่องหมายคำพูดปิดซึ่งเป็นตัวละครเดียวกัน หากมีคู่คำพูดทับซ้อนกัน หากทั้งคู่ซ้อนกันทั้งคู่จะยังคงใช้งานได้ หากทั้งคู่ไม่ได้ซ้อนกันคู่ใหม่ที่เริ่มต้นยังคงใช้งานได้ อีกคู่ไม่ถือว่าเป็นคู่อีกต่อไป เมื่อทำการนับตัวอักษรที่ยกมา (ความยาวของคู่ของคำพูด) คำพูดนั้นไม่นับรวม ความยาวของแต่ละคู่ถูกนับอย่างอิสระ การซ้อนทับไม่ส่งผลกระทบต่ออีก เป้าหมาย เป้าหมายของคุณคือการพิมพ์ความยาวทั้งหมดของคำพูดที่ถูกต้องทั้งหมด นี่คือรหัสกอล์ฟดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ ตัวอย่าง Legend: <foo>: Valid quotes ^ : Cannot be paired character Input : ABCDDCBA `A` (6): <BCDDCB> `B` (4): <CDDC> `C` (2): <DD> `D` (0): …

29
เซตย่อยของชุด
งาน ที่กำหนดไว้ S=[1,2,3,4,5,6,7,8]S=[1,2,3,4,5,6,7,8]S = \left[{1,2,3,4,5,6,7,8}\right] และจำนวนเต็ม 0≤N&lt;2|S|0≤N&lt;2|S|0 \leq N < 2^{|S|} ค้นหาชุดย่อย Nth Input / Output Nถูกกำหนดเป็นจำนวนเต็มที่ไม่ได้ลงนามใน stdin คุณต้องพิมพ์เซตชับในรูปแบบที่เหมาะสมสำหรับภาษาของคุณ (ซึ่งอาจรวมถึง[1,2,3], {1,2,3}, [1, 2, 3], 1 2 3, 1,2,3ฯลฯ ให้นานเท่าที่จะเป็นมนุษย์ที่สามารถอ่านข้อความรูปแบบ) เล็กน้อยเกี่ยวกับชุดย่อย มีความสัมพันธ์ระหว่างชุดย่อยและตัวเลขในฐานสอง แต่ละหลัก ระบุว่าองค์ประกอบที่iของชุดอยู่ภายในชุดย่อยหรือไม่ ตัวอย่างเช่น00000000จะเป็นชุดว่างเปล่าและ10000001เป็นชุดย่อยที่มี(องค์ประกอบสุดท้ายและองค์ประกอบแรก) คุณจะได้รับเซตชับโดยการแปลงตัวเลขลงในฐานที่ 2 และจากนั้นเซตรวมถึงองค์ประกอบทั้งหมดที่0 เซตที่ 3 (3 = 00000011) จึงมี ตัวเลขที่ถูกต้องที่สุดคือตัวเลข # 0 มันตกลงที่จะพิมพ์ ไม่จำเป็นต้องจัดเรียงชุดdผมdid_{i}[1,8]dผม&gt; 0di&gt;0d_{i} > …
13 code-golf 

13
เคล็ดลับการตีกอล์ฟใน QBasic
คุณมีเคล็ดลับทั่วไปอะไรในการเล่นกอล์ฟใน QBasic ฉันกำลังมองหาความคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ QBasic (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) เคล็ดลับที่เกี่ยวกับตัวจำลองQB64ก็ยินดีต้อนรับเช่นกัน มันมีคุณสมบัติพิเศษบางอย่างที่ไม่ได้อยู่ใน Microsoft QBasic
13 code-golf  tips  basic 

7
การทดสอบลำดับที่ยอมรับได้
บทสรุปผู้บริหาร: ทดสอบว่าลำดับอินพุตของจำนวนเต็มเป็น "ที่ยอมรับได้" หมายความว่ามันไม่ครอบคลุมคลาสที่เหลือทั้งหมดสำหรับโมดูลัสใด ๆ ลำดับ "ที่ยอมรับได้" คืออะไร รับจำนวนเต็ม m ≥ 2, คลาสตกค้างมอดูโล mเป็นเพียงความก้าวหน้าทางคณิตศาสตร์ m ที่เป็นไปได้ของความแตกต่างทั่วไป m ตัวอย่างเช่นเมื่อ m = 4 คลาสที่เหลือ 4 แบบโมดูโล 4 คือ ..., -8, -4, 0, 4, 8, 12, ... ..., -7, -3, 1, 5, 9, 13, ... ..., -6, -2, 2, 6, 10, 14, ... …

4
คำนวณจุดแฟร์มาต์ของรูปสามเหลี่ยม
นี่ค่อนข้างคล้ายกับศูนย์กลางของรูปสามเหลี่ยมแต่มีจุดที่แตกต่างกัน แฟร์มาต์พอยต์เป็นจุด P ในรูปสามเหลี่ยม ABC ดังกล่าวว่าค่าของ AP + BP + ซีพีจะลดลง มีสองกรณี: หากมีมุมที่มากกว่า 120 องศาจุดยอดนั่นคือจุดแฟร์มาต์ มิฉะนั้นวาดรูปสามเหลี่ยมด้านเท่าที่ด้านข้างของ ABC เชื่อมต่อจุดสุดยอดของรูปสามเหลี่ยมด้านเท่าแต่ละด้านกับจุดยอดตรงข้ามของรูปสามเหลี่ยม ABC การทำเช่นนี้สำหรับสามเหลี่ยมมุมฉากแต่ละรูปสามรูปนั้นส่งผลให้เกิดจุดร่วมจุดเดียวของจุดตัดทั้งสามเส้นซึ่งก็คือจุดแฟร์มาต์ ควรรันภายใน 5 วินาทีบนเครื่องที่เหมาะสม อินพุต : ชุด 3 คะแนนไม่จำเป็นต้องเป็นจำนวนเต็ม สิ่งนี้สามารถนำมาเป็นอาร์เรย์สตริงรายการของสิ่งอันดับเป็นต้น (สิ่งใดก็ตามที่เหมาะสมกับภาษาของคุณ) เอาท์พุท : พิกัดของจุดแฟร์มาต์อีกครั้งอย่างไรก็ตามภาษาของคุณจัดการกับจุดที่ดีที่สุด ความไม่ถูกต้องของคะแนนลอยตัวจะไม่ถูกนับรวมกับคุณ กรณีทดสอบ : [[1, 1], [2, 2], [1, 2]] --&gt; [1.2113248654051871, 1.788675134594813] [[-1, -1], [-2, -1], [0, …

9
CamelCase2snake_case ()
เขียนฟังก์ชันเพื่อแปลงข้อความ CamelCased เป็น snake_case: FunctionForHTMLManipulationกลายเป็นfunction_for_html_manipulation ข้อความที่ป้อนจะเป็นตัวระบุที่เหมาะสมเดียวในหลายภาษา จะต้องเริ่มต้นด้วยตัวอักษรภาษาอังกฤษจากนั้นตามด้วยตัวอักษรหรือตัวเลขภาษาอังกฤษใด ๆ ไม่อนุญาตให้ใช้อักขระอื่น ๆ (ช่องว่างสัญลักษณ์ ฯลฯ ) "คำ" แต่ละคำในข้อความ CamelCased จะเริ่มต้นด้วยตัวอักษรพิมพ์ใหญ่ยกเว้นในตอนต้นของข้อความหรือหลังตัวเลขและตามด้วยตัวอักษรศูนย์หรือมากกว่านั้นในกรณีเดียวกันทั้งหมด กลุ่มของตัวเลขจะถูกพิจารณาว่าเป็นคำที่แยกต่างหาก แต่ไม่ผ่านการเปลี่ยนแปลง กล่าวอีกนัยหนึ่งอักษรตัวพิมพ์เล็กตามด้วยตัวอักษรตัวพิมพ์ใหญ่หมายถึงตัวแบ่งคำ ตัวอักษรและตัวเลขใด ๆ ที่อยู่ติดกันแสดงถึงการแบ่งคำ ตัวอักษรตัวพิมพ์ใหญ่ตามด้วยตัวอักษรตัวพิมพ์ใหญ่ตัวอื่นและตัวพิมพ์เล็กหมายถึงตัวแบ่งคำ ...lU...=&gt; ...l_u... ...l9...=&gt; ...l_9... ...U9...=&gt; ...u_9... ...9l...=&gt; ...9_l... ...9U...=&gt; ...9_u... ...UUl...=&gt;...u_ul... ทั้งสองBuy24Beersและกลายเป็นbuy24beers จะกลายเป็น จะกลายเป็น buy_24_beers MacDonaldAndObrianmac_donald_and_obrian MACDonaldAndOBrianmac_donald_and_o_brian
13 code-golf  string 

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