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

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

13
ดังนั้น…คะแนน StackOverflow ของคุณคืออะไร
นี่คือหนึ่งที่เรียบง่าย ได้รับการป้อนข้อมูลของจำนวนการคืนชื่อและชื่อเสียงของคะแนนของผู้ใช้มากเกิน Stack กับรหัสที่ระบุ โปรแกรมของคุณสามารถสมมติว่าได้รับ ID ผู้ใช้ที่ถูกต้องและมีอยู่เสมอ ตัวอย่างเช่น: กำหนดอินพุต764357(ซึ่งคือ userID ของฉันบน StackOverflow) โปรแกรมจะส่งคืนLegoStormtroopr 3,088(โดยประมาณ) อาจมีการเปลี่ยนแปลง คุณจะได้รับ URL นี้: " /programming//users/ " หรือ " http://api.stackexchange.com/2.1/users/ " ฟรีเพื่อให้คะแนนของคุณคือlength of your program - 31 or 39, ซึ่งขึ้นอยู่กับ URL ที่คุณใช้ - แต่ ประกาศว่ามันคืออะไร วิธีนี้ช่วยป้องกันไม่ให้ผู้อื่นใช้ URL แบบย่อ แก้ไข: และไม่มีการเรียกใช้ API ที่กำหนดเองซึ่งแบบสอบถาม Stack Overflow และส่งกลับเฉพาะชื่อและคะแนน แต่ถ้าคุณรู้เกี่ยวกับ …

23
สุขสันต์วันเกิดให้กับตัวเอง!
สุขสันต์วันเกิดให้กับตัวเอง! เขียนโปรแกรมที่พิมพ์Happy birthday to me!ในวันเกิดของมัน วันเกิดของโปรแกรมคือการสร้างการปรับเปลี่ยนครั้งล่าสุดหรือเวลาการคอมไพล์ของโปรแกรม (คุณเลือก) และต้องไม่ฮาร์ดโค้ด วันที่คุณใช้เป็นวันเกิดจะต้องไม่ได้รับผลกระทบจากการร้องขอหรือการดำเนินการของโปรแกรม แต่อย่างใด คุณไม่สามารถแก้ไขวันเกิดของคุณ สำหรับเครดิตพิเศษ (-15% จำนวนไบต์) พิมพ์Happy birthday to you!วันเกิดของคุณ (รหัสยาก) หากไม่ตรงกับโปรแกรม หรือใช้วันเกิดของคนดังและรับ -14% มันจะต้องพิมพ์เพียงแค่นี้และไม่ได้พิมพ์อะไรในวันอื่น ๆ นับจำนวนไบต์ใน UTF-8 ใช้ปฏิทินเกรกอเรียน ขอให้โชคดีและสุขสันต์วันเกิด (กับโปรแกรมแรกเกิด) PS หลังจากที่ความคิดเห็นของ Izkata ถ้าคุณพิมพ์Happy birthday to Melในเมลเคย์วันเกิดของคุณได้รับการปิด 20% แต่คุณต้องให้แหล่งข้อมูลที่น่าเชื่อถือว่าเป็นวันที่นี้
21 code-golf 

20
สร้างโซลูชั่น Sudoku CHECKER
สร้าง CHECKER โซลูชัน Sudoku มีเยอะแยะของ Sudoku SOLVERS อยู่ที่นี่ แต่ฉันต้องการให้คุณสร้าง CHECKER ที่มีขนาดเล็กที่สุดเท่าที่มนุษย์สามารถทำได้ (code-golf) รายการที่ถูกต้องจะสามารถใช้อาร์เรย์ 9x9 เป็นอาร์กิวเมนต์ (ส่งผ่านโดยอ้างอิงต่อเนื่องบนบรรทัดคำสั่งหรืออย่างไรก็ตามคุณต้องการที่จะใช้มัน) หรือยอมรับไฟล์อินพุตที่เป็นเก้าเก้าบรรทัดของตารางสุดท้าย . ดูตัวอย่างของการป้อนข้อมูลด้านล่าง อินพุตที่ถูกต้องควรเป็นเลขฐาน 10 (1-9) ตำแหน่งที่ขาดหายไปว่างเกินหรือไม่ใช่ตัวเลขหรือตำแหน่งที่มีตัวเลขที่อยู่นอก 1-9 ควรถูกปฏิเสธว่าเป็นอินพุตที่ไม่ถูกต้องโดยส่งกลับผลลัพธ์ที่ไม่เป็นศูนย์พิมพ์ข้อผิดพลาดหรือทั้งสองอย่าง โปรแกรมของคุณต้องทดสอบว่าแต่ละหมายเลขปรากฏหนึ่งครั้งต่อหนึ่งคอลัมน์ต่อหนึ่งบรรทัดและหนึ่งครั้งต่อ 3x3 ตารางย่อย หากผ่านให้ส่งคืน "0" และหากไม่ส่งคืนผลลัพธ์ที่ไม่เป็นศูนย์ หลีกเลี่ยงการใช้ทรัพยากรภายนอก (เว็บไซต์ ฯลฯ ) หากโซลูชันของคุณเป็นโปรแกรมแบบสแตนด์อะโลนการออกจากสถานะออกหรือการพิมพ์ "0" หรือไม่ใช่ศูนย์สำหรับ "Pass" หรือ "Fail" ตามลำดับก็โอเค ให้คำตอบที่เล็กที่สุดชนะ! ตัวอย่างอินพุต: อาร์เรย์ c: int input[9][9]={{1,2,3,4,5,6,7,8,9}, {4,5,6,7,8,9,1,2,3}, {7,8,9,1,2,3,4,5,6}, …

13
การแปลงจำนวนเต็มเป็นคำภาษาอังกฤษ
เป้าหมายของรหัสนี้คือการแปลงจำนวนเต็มเป็นคำภาษาอังกฤษ โปรแกรมแจ้งให้ป้อนข้อมูล NaNถ้าใส่นี้ไม่ได้เป็นจำนวนเต็มพิมพ์ หากเป็นจำนวนเต็มให้แปลงเป็นคำภาษาอังกฤษและพิมพ์คำเหล่านี้ อินพุตขั้นต่ำ: 0 (ศูนย์) อินพุตสูงสุด: 9000 (เก้าพัน) ดังนั้น5ผลตอบแทนfive(กรณีไม่สำคัญ) และ500ผลตอบแทนfive hundredหรือfive-hundred (ขีดกลางไม่สำคัญ) กฎอื่น ๆ : oneก่อนhundredหรือthousandเป็นตัวเลือก: one hundredถูกต้อง แต่hundredเกินไป (ถ้าใส่เป็น100ของหลักสูตร) คำandในตัวอย่างเช่นone hundred and forty fiveตัวเลือกเช่นกัน ช่องว่างสำคัญ ดังนั้นสำหรับ500, five-hundredหรือfive hundredถูกต้อง แต่fivehundredไม่ได้เป็น โชคดี!
21 code-golf 

4
เครื่องกำเนิดเลขโรมันที่เหมาะที่สุด
เป้าหมาย: เขียนฟังก์ชันที่ใช้ตัวเลขเป็นอินพุตและส่งกลับตัวเลขโรมันแบบสั้นสำหรับหมายเลขนั้นเป็นเอาต์พุต สัญลักษณ์ตัวเลขโรมัน: Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1,000 สำหรับตัวอย่างของสิ่งที่ฉันหมายถึงเมื่อฉันพูดว่า "เลขโรมันสั้น ๆ " ลองพิจารณาหาตัวเลขโรมันเพื่อเป็นตัวแทนปี 1983 เพราะนั่นคือปีที่ฉันเกิด ทางเลือกหนึ่งคือทำตามวิธีปกติ (10 ตัวอักษร): 1983 = MCMLXXXIII = (1,000 - 100 + 1000 + 50 + 30 + 3) อีกทางเลือกหนึ่งคือทำด้วยวิธีทางลัด (6 ตัวอักษร): 1983 = MXVIIM …

5
“ ขออภัยชายหนุ่ม แต่เต่าลงไปหมด!”
ดำเนินการระบบ Lindenmayer Lindenmayer ระบบ (หรือ L ระบบ) มีความเกี่ยวข้องกับThueและโพสต์ระบบและถูกนำมาใช้ในการสร้างแบบจำลองทางพฤกษศาสตร์และรุ่นเศษส่วน L-ระบบมีการอธิบายโดยสตริงเขียนใหม่ที่เป็นสัญลักษณ์จากสัญลักษณ์ตัวอักษรจะถูกจับคู่กับการเปลี่ยนลำดับของสัญลักษณ์ การรวบรวมการแม็พเหล่านี้ถือเป็นระบบ L ที่เหมาะสม วิธีการแสดงผลกราฟิกที่คิดค้นโดย Prusinkiewicz ตีความลำดับผลลัพธ์หลังจากการแมปได้ถูกนำไปใช้กับลำดับเริ่มต้นสำหรับการวนซ้ำตามจำนวนที่ระบุตามคำสั่ง Turtle-Drawing นี่อาจต้องใช้รหัสพิเศษเพื่อควบคุมขนาดของการวาดภาพเนื่องจากจำนวนการทำซ้ำที่แตกต่างกันอาจสร้างภาพที่มีขนาดต่างกันอย่างมาก งานของคุณคือรันระบบ L ในจำนวนอักขระน้อยที่สุด โปรแกรมของคุณจะต้องสามารถแสดงผลทั้ง Dragon Curve และ Branching Stems จากหน้า Wikipedia โดยให้ข้อมูลที่เหมาะสม (ไฟล์บรรทัดคำสั่ง แต่ภายนอกไปยังแหล่งที่มาโปรด) นี่คือรหัสกอล์ฟ แก้ไข: นี่คือตัวอย่างที่ฉันโพสต์รอบเมือง คำตอบ SO / หมุนไปทางทิศเหนือ { ที่ฉันค้นพบครั้งแรก L-ระบบ } , คำตอบ SO / วิธีการโปรแกรม-a-เศษส่วน , คำตอบ SO …

11
ตีความภาษาของคุณ แต่ไม่ใช่ด้วยตัวคุณเอง?
มีความท้าทายมากมายที่พูดว่า "ตีความ X" ซึ่ง X เป็นภาษาที่เรียบง่าย ในความคิดของฉันมันน่าเบื่อเกินไป เพื่อให้ทุกคนที่ผัดวันประกันพรุ่งในอินเทอร์เน็ตเป็นสิ่งที่น่าสนใจที่จะทำคุณสามารถลองทำสิ่งนี้: ท้าทาย $LANGเลือกภาษา $LANGสามารถเป็นภาษาการเขียนโปรแกรมที่สมบูรณ์ทัวริงหรือชุดย่อยที่สมบูรณ์ของภาษาการเขียนโปรแกรม ระวังหากคุณไม่ใช้คุณสมบัติของภาษาของคุณใน$LANGการตีความคุณจะต้องไม่ใช้มันสำหรับโปรแกรมของคุณเองเช่นกันเนื่องจากการส่งของคุณจะต้องเขียน$LANGด้วย เขียนคอมไพเลอร์ / ล่ามเขียนใน$LANG $LANGคุณสามารถใช้สิ่งอำนวยความสะดวกทั้งหมด (รวมถึงevalและเพื่อน) ของภาษาของคุณที่มีอยู่เพื่อเขียนคอมไพเลอร์นี้ เพื่อให้งานมีความท้าทายมากขึ้นมีข้อ จำกัด เพียงข้อเดียว: โปรแกรมของคุณควรสามารถตีความ / คอมไพล์โปรแกรมที่ใช้ได้ทั้งหมด$LANGยกเว้นล่าม / คอมไพเลอร์ของคุณเอง หากเกิดขึ้นว่าโปรแกรมที่จะตีความ / รวบรวมเป็นล่ามหรือคอมไพเลอร์ของคุณเอง (โดยไม่คำนึงถึงชื่อไฟล์) โปรแกรมของคุณควรทำสิ่งที่ไม่เกี่ยวข้องอย่างสมบูรณ์กับการทำงานของล่ามหรือคอมไพเลอร์ (เช่น barfing หรือการพิมพ์Hello, world!) เพื่อให้งานนี้ซับซ้อนยิ่งขึ้นโปรแกรมของคุณจะต้องไม่อ่านซอร์สของตัวเองเมื่อรวบรวมหรือตีความ ข้อมูลจำเพาะ งานนี้เป็นรหัสกอล์ฟ การส่งที่มีอักขระน้อยที่สุดที่ชนะถูกต้อง ในกรณีที่เสมอกันการแก้ปัญหาที่ถูกส่งมาก่อนชนะ โปรแกรม / สคริปต์ของคุณควรอ่านโปรแกรมที่จะตีความจากไฟล์ คุณอาจ hardcode เส้นทางและชื่อของมัน เมื่อไฟล์ถูกอ่านคุณอาจรวบรวมไฟล์ไปยังไฟล์อื่น (ซึ่งจะต้องสามารถเรียกใช้งานได้ในระบบของคุณ) หรือเรียกใช้โดยตรง หากขาดความสามารถในการอ่านไฟล์ที่คุณสามารถเลือกวิธีการอ่านรหัสที่พอดีอีก$LANG …

4
ตรวจสอบว่ารูปหลายเหลี่ยมนูนออกมาหรือไม่
เขียนโปรแกรมเพื่อตรวจสอบว่ารูปหลายเหลี่ยมอินพุทนั้นนูนหรือไม่ รูปหลายเหลี่ยมถูกระบุด้วยหนึ่งบรรทัดที่มีNจำนวนของจุดยอดจากนั้นเส้นNที่มีพิกัดxและyของแต่ละจุดยอด จุดยอดจะถูกแสดงตามเข็มนาฬิกาเริ่มต้นจากจุดสุดยอดโดยพลการ ตัวอย่างที่ 1 อินพุต 4 0 0 0 1 1 1 1 0 เอาท์พุต convex ตัวอย่างที่ 2 อินพุต 4 0 0 2 1 1 0 2 -1 เอาท์พุต concave ตัวอย่างที่ 3 อินพุต 8 0 0 0 1 0 2 1 2 2 2 2 1 2 0 1 …

17
เคมบริดจ์ขนย้าย
ฉันแน่ใจว่าส่วนใหญ่ของคุณได้เจอสิ่งนี้ในบางจุดหรือไม่: เมื่อมองไปที่การค้นหาที่ Cmabrigde Uinervtisy มันไม่ได้เป็นเพียงแค่คนที่อยู่ในความอัปยศ, olny iprmoetnt tihng นั้นเป็นคนแรก rset สามารถเป็นโทเค็น mses และคุณสามารถเพิ่มได้ด้วย porbelm Tihs คือ bcuseae huamn mnid deos ไม่ได้ยก ervey lteter โดย istlef แต่ wrod เป็น wlohe สร้างโปรแกรมที่ป้อนข้อความจำนวนเท่าใดก็ได้ สำหรับวัตถุประสงค์ในการทดสอบให้ใช้ข้อความด้านบนที่ไม่มีข้อความในเวอร์ชันด้านล่าง โปรแกรมจะต้องแปลงตัวอักษรของแต่ละคำด้วยความยาว 4 ตัวอักษรขึ้นไปยกเว้นตัวอักษรตัวแรกและตัวสุดท้ายของแต่ละคำ การจัดรูปแบบอื่น ๆ ทั้งหมดจะต้องยังคงเหมือนเดิม (ตัวพิมพ์ใหญ่และเครื่องหมายวรรคตอน ฯลฯ ) ข้อความทดสอบ: นักวิจัยจากมหาวิทยาลัยเคมบริดจ์กล่าวว่ามันไม่สำคัญว่าจะเรียงลำดับตัวอักษรเป็นคำสิ่งสำคัญเพียงอย่างเดียวคือตัวอักษรตัวแรกและตัวสุดท้ายอยู่ในตำแหน่งที่ถูกต้อง ส่วนที่เหลือสามารถเป็นระเบียบทั้งหมดและคุณยังสามารถอ่านได้โดยไม่มีปัญหา นี่เป็นเพราะจิตใจมนุษย์ไม่ได้อ่านจดหมายทุกฉบับด้วยตัวเอง แต่เป็นคำทั้งหมด ตามปกตินี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดชนะ

30
แสดงจำนวนการเกิดขึ้นสำหรับทุกอักขระในสตริงอินพุต
รหัสควรใช้สายอักขระเป็นอินพุตจากแป้นพิมพ์: The definition of insanity is quoting the same phrase again and again and not expect despair. ผลลัพธ์ควรเป็นเช่นนี้ (ไม่เรียงตามลำดับเฉพาะ): : 15 . : 1 T : 1 a : 10 c : 1 e : 8 d : 4 g : 3 f : 2 i : 10 h : …

30
โลกสิ้นสุดลงในเอ็ด
ถ่ายโดยตรงจากการประกวดการเขียนโปรแกรม ACM Winter 2013 คุณเป็นคนที่ชอบทำสิ่งต่าง ๆ อย่างแท้จริง ดังนั้นสำหรับคุณการสิ้นสุดของโลกจึงเป็นเอ็ด ตัวอักษรสุดท้ายของ "The" และ "World" เรียงต่อกัน จัดทำโปรแกรมที่ใช้ประโยคและพิมพ์ตัวอักษรสุดท้ายของแต่ละคำในประโยคนั้นให้มีพื้นที่น้อยที่สุดเท่าที่จะเป็นไปได้ คำจะถูกคั่นด้วยอะไรก็ได้ยกเว้นตัวอักษรจากตัวอักษร (65 - 90, 97 - 122 บนตาราง ASCII) นั่นหมายถึงขีดล่างเครื่องหมายตัวหนอนหลุมฝังศพเครื่องหมายวงเล็บปีกกา ฯลฯ เป็นตัวคั่น แต่ละคำมีตัวคั่นมากกว่าหนึ่งตัว asdf jkl;__zxcv~< vbnm,.qwer| |uiop-> flvmrp pigs, eat dogs; eat Bob: eat pigs-> ststbts looc si siht ,gnitirw esreveR-> citwR 99_bottles_of_beer_on_the_wall->sfrnel
21 code-golf  string 

15
สร้างโปรแกรมสุ่มในภาษาที่คุณชื่นชอบ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา เราทุกคนได้ยินการทดสอบคอมไพเลอร์โดยใช้อินพุตที่สร้างแบบสุ่ม งานของคุณคือการเขียนโปรแกรมเพื่อสร้างโปรแกรมที่ถูกต้อง (รวมถึงไม่มีพฤติกรรมที่ไม่ได้กำหนด) ในภาษาที่คุณชื่นชอบ ภาษาของโปรแกรมที่สร้างไม่จำเป็นต้องเหมือนกับภาษาของโปรแกรมที่สร้างขึ้น โปรแกรมของคุณจะได้รับจำนวนเต็มเป็นอาร์กิวเมนต์ที่คุณสามารถใช้เป็นเมล็ดสำหรับตัวสร้างหมายเลขสุ่มของคุณ โปรแกรมที่สร้างขึ้นควรมีโครงสร้างที่แตกต่างกัน (รับเมล็ดที่แตกต่างกัน) ไม่เพียง แต่ชื่อตัวแปรหรือค่าคงที่ที่แตกต่างกัน ตัวอย่าง: $ ./generate 1 int main() { return 0; } $ ./generate 2 #include <math.h> int main() { return (int) pow(4, 3); } โปรดรวมเอาท์พุทสองสามในคำตอบของคุณ ทางออกที่สั้นที่สุดชนะ ฉันจะให้โบนัสเล็กน้อยตามจำนวนคะแนนดังนั้นโปรดลงคะแนนโซลูชั่นที่สร้างสรรค์ที่สุด

6
Koch Snowflake - codegolf
Koch เกล็ดหิมะ (ที่เรียกกันว่าดาว Koch และเกาะโคช์) เป็นเส้นโค้งทางคณิตศาสตร์และเป็นหนึ่งในโค้งเศษส่วนที่เก่าแก่ที่สุดได้รับการอธิบาย มันขึ้นอยู่กับเส้นโค้ง Koch ซึ่งปรากฏในกระดาษ 1904 หัวข้อ "ในโค้งอย่างต่อเนื่องโดยไม่ต้องเสียสละสร้างจากเรขาคณิตเบื้องต้น" (ต้นฉบับภาษาฝรั่งเศสชื่อ: "Sur une courbe ยังคง sang tangente, obtenue พาร์ une ก่อสร้างgéométriqueélémentaire") โดย นักคณิตศาสตร์ชาวสวีเดน Helge von Koch นี่คือบางส่วนที่เป็นตัวแทนของการทำซ้ำต่างๆ: n=1 __ \/ n=2 __/\__ \ / /_ _\ \/ n=3 __/\__ \ / __/\__/ \__/\__ \ / /_ _\ \ …

7
ตีความ> <> (ปลา)
ในขณะที่&gt; &lt;&gt; ไม่ใช่ภาษายอดนิยมมันสามารถดีสำหรับการเล่นกอล์ฟและถูกนำมาใช้ในเว็บไซต์นี้ มันได้แรงบันดาลใจจากBefungeและมีความคล้ายคลึงกันในคำแนะนำ คำสั่งที่จำเป็น: &gt; &lt; ^ v เปลี่ยนทิศทางของตัวชี้คำสั่ง (ขวา, ซ้าย, ขึ้น, ลง) / \ | _ # กระจก; ตัวชี้จะเปลี่ยนทิศทางขึ้นอยู่กับทิศทางที่มีอยู่แล้ว x ทิศทางแบบสุ่ม + - * , % การบวกการลบการคูณการหารและโมดูโลตามลำดับ ดึง A และ B ออกจากสแต็กและส่งตัวดำเนินการ B ตัวหาร A ด้วย 0 ทำให้เกิดข้อผิดพลาด 0-9 a-f ส่งค่าที่สอดคล้องกันไปยังสแต็ก a = 10, ... , f = …

28
ค้นหาว่าตัวเลขมีความสุขหรือไม่?
จำนวนแฮปปี้ถูกกำหนดโดยกระบวนการต่อไปนี้ เริ่มต้นด้วยจำนวนเต็มบวกใด ๆ แทนที่ตัวเลขด้วยผลรวมของกำลังสองของตัวเลขและทำซ้ำกระบวนการจนกว่าจำนวนเท่ากับ 1 (ที่มันจะอยู่) หรือมันวนซ้ำในรอบที่ไม่รวม 1 ตัวเลขเหล่านั้น ซึ่งกระบวนการนี้สิ้นสุดลงใน 1 เป็นตัวเลขที่มีความสุขในขณะที่กระบวนการที่ไม่ได้ลงท้ายด้วย 1 คือตัวเลขที่ไม่มีความสุข (หรือตัวเลขที่น่าเศร้า) รับพิมพ์ตัวเลขไม่ว่าจะเป็นความสุขหรือไม่มีความสุข Sample Inputs 7 4 13 Sample Outputs Happy Unhappy Happy หมายเหตุ: โปรแกรมของคุณไม่ควรใช้เวลาเกิน 10 วินาทีสำหรับหมายเลขใด ๆ ที่ต่ำกว่า 1,000,000,000

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