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

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

5
พาร์ติชันของรายการ
คำตอบสำหรับคำถามนี้ยาวเกินไป ความท้าทายของคุณคือการเขียนฟังก์ชั่นการแบ่งพาร์ติชันด้วยจำนวนอักขระที่น้อยที่สุด ตัวอย่างอินพุต ['a', 'b', 'c'] ตัวอย่างผลลัพธ์ [(('a'),('b'),('c')), (('a', 'b'), ('c')), (('a', 'c'), ('b')), (('b', 'c'), ('a')), (('a', 'b', 'c'))] อินพุตสามารถเป็นรายการ / อาร์เรย์ / ชุด / สตริง ฯลฯ สิ่งที่ง่ายที่สุดสำหรับการทำงานของคุณในการประมวลผล คุณยังสามารถเลือกรูปแบบผลลัพธ์ให้เหมาะกับตัวเองได้ตราบใดที่โครงสร้างมีความชัดเจน ฟังก์ชันของคุณควรทำงานอย่างน้อย 6 รายการในอินพุต

9
คำนวณสัมประสิทธิ์สหสัมพันธ์
กำหนดตัวเลขสำหรับเหตุการณ์ X และ Y ให้คำนวณสัมประสิทธิ์สหสัมพันธ์ของเพียร์สัน ความน่าจะเป็นของแต่ละเหตุการณ์มีค่าเท่ากันดังนั้นค่าที่คาดหวังสามารถคำนวณได้โดยรวมเพียงแต่ละชุดและหารด้วยจำนวนการทดลอง อินพุต 1 6.86 2 5.92 3 6.08 4 8.34 5 8.7 6 8.16 7 8.22 8 7.68 9 12.04 10 8.6 11 10.96 เอาท์พุต 0.769 รหัสที่สั้นที่สุดชนะ การป้อนข้อมูลสามารถโดย stdin หรือหาเรื่อง เอาต์พุตจะเป็นโดย stdout แก้ไข: ไม่ควรอนุญาตให้ใช้ฟังก์ชัน Builtin (เช่นคำนวณค่าคาดหวังความแปรปรวนเบี่ยงเบน ฯลฯ ) เพื่อให้มีความหลากหลายมากขึ้นในโซลูชัน อย่างไรก็ตามอย่าลังเลที่จะสาธิตภาษาที่เหมาะกับงานที่ใช้บิวอิน (สำหรับการจัดนิทรรศการ) ตามแนวคิดของ David สำหรับการป้อนข้อมูลใน Mathematica …

7
เอาต์พุตสำรับแบบสับโดยใช้อินพุตแบบสุ่ม
Input / Output: อินพุต : สตริงที่มีความยาวและไม่ จำกัด จำนวนสุ่มจาก 0 0 และ '1' มาจาก stdin สตริงจะถือว่าสุ่มอย่างแท้จริงไม่ใช่การสุ่มหลอก มันเหมือนกันในแต่ละตัวละครมีแนวโน้มที่จะเป็น '0' หรือ '1' อย่างเท่าเทียมกัน ระวัง! อินพุตมีความยาวไม่ จำกัด ดังนั้นคุณจึงไม่สามารถเก็บไว้ในหน่วยความจำได้โดยใช้ฟังก์ชั่นเช่น raw_input () ในไพ ธ อน ถ้าฉันไม่เข้าใจผิด golfscript จะล้มเหลวด้วยอินพุตไม่ จำกัด เนื่องจากมันจะดันอินพุตทั้งหมดไปยังสแต็กก่อนที่จะทำงาน เอาท์พุท : สำรับสุ่มแบบสุ่มที่สม่ำเสมอโดยไม่ต้องมีโจ๊กเกอร์ มันเหมือนกันในทุกคำสั่งมีแนวโน้มที่เท่าเทียมกัน การ์ดแต่ละใบในเอ้าท์พุทคืออันดับ, A, 2-9, T, J, Q หรือ K เรียงต่อกันด้วยชุดสูท, c, d, h …

3
เส้นทางที่สั้นที่สุดผ่านระบบทางเดียว
Rhylเมืองบ้านเกิดของฉันมีระบบการจราจรทางเดียวซึ่งดูเหมือนว่าได้รับการออกแบบมาเพื่อให้ผู้คนอยู่ห่างจากจุดหมายปลายทางของพวกเขาให้นานที่สุด งานของคุณถ้าคุณเลือกที่จะลองมันคือการผลิตโปรแกรมเพื่อให้เส้นทางที่สั้นที่สุดผ่านระบบการจราจร อินพุต อินพุตจะเปิดSTDINและจะเป็นรายการของจุดเริ่มต้นและจุดสิ้นสุดตามด้วยบรรทัดว่างตามด้วยรายการของแบบสอบถามดังนี้: A B B A B C C D D C A D C A B A ถนนแต่ละเส้นสามารถเดินทางได้ในทิศทางที่กำหนดดังนั้นในตัวอย่างข้างต้นถนน A - B เป็นถนนสองทางในขณะที่ B - C เป็นถนนเดินรถทางเดียวจาก B ถึง C การเดินทางจาก C ไป B เป็นสิ่งต้องห้าม จุดเริ่มต้นและจุดสิ้นสุดทั้งหมดจะถูกแสดงด้วยตัวอักษรตัวพิมพ์ใหญ่ตัวเดียว เอาท์พุต ผลลัพธ์ควรเป็นเส้นทางที่สั้นที่สุด (วัดจากจำนวนจุดที่เยี่ยมชม) จากจุดเริ่มต้นที่กำหนดไปยังจุดสิ้นสุดที่กำหนดสำหรับแต่ละแบบสอบถามที่ได้รับ หากไม่มีเส้นทางดังกล่าวเอาท์พุทบรรทัดว่าง หากมีเส้นทางที่สั้นที่สุดมากกว่าหนึ่งเส้นทางให้ส่งออกเส้นทางแรกเมื่อเรียงเส้นทางที่สั้นที่สุดทั้งหมดโดยใช้วิธีการทางพจนานุกรม สำหรับตัวอย่างข้างต้นผลลัพธ์จะเป็น: A B C D B …

4
สร้างหมายเลขฟรีดแมน
จำนวนฟรีดแมนเป็นตัวเลขที่สามารถแสดงออกได้โดยการใช้ดำเนินการทางคณิตศาสตร์ขั้นพื้นฐาน (^ /, *, +, -) ทุกหลักของมัน การดำเนินการไม่จำเป็นต้องนำไปใช้กับตัวเลขแต่ละตัว แต่จะต้องเกี่ยวข้องกับตัวเลขทั้งหมด นั่นคือ 121 = 11 ^ 2 -> ตัวเลขทั้งหมดมีส่วนเกี่ยวข้อง แต่ 1 & 1 ถูกรวมเข้าด้วยกันเพื่อสร้าง 11 อนุญาตให้ใช้วงเล็บได้ แต่วิธีแก้ปัญหาเล็กน้อยx= (x)ไม่ใช่วิธีแก้ปัญหาที่ถูกต้อง ยังไม่ถูกต้อง, x= +x. ตัวอย่าง 25 = 5 ^ 2 121 = 11 ^ 2 343 = (3 + 4) ^ 3 2048 = (8 …
9 code-golf 

5
คำจากตารางธาตุ [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ย้อนกลับไปตอนที่ฉันยังเป็นน้องใหม่ในวิชาเคมีที่เรียนมัธยมปลายฉันจะดูตารางธาตุและสะกดคำสกปรกด้วยจำนวนขององค์ประกอบ (HeCK จะเป็น 2619, 2-6-19) ฉันกำลังคิดเกี่ยวกับเรื่องนี้เมื่อวันก่อนเมื่อฉันเห็นเสื้อมหัศจรรย์ที่สะกด BeEr (4-68) ดังนั้นความท้าทาย codegolf ของฉันจึงเป็นโปรแกรมที่สั้นที่สุดในการแสดงรายการคำที่คุณสามารถสะกดด้วยตารางธาตุและรหัสตัวเลขที่แทนคำนั้น / usr / share / dict / words หรือพจนานุกรมใด ๆ ที่คุณต้องการใช้สำหรับรายการคำ หากคุณกำลังใช้รายการคำศัพท์ "ที่ไม่ได้มาตรฐาน" แจ้งให้เราทราบว่ามันคืออะไร!
9 code-golf 

1
เพิ่มประสิทธิภาพการคูณเมทริกซ์โซ่
ความท้าทายนี้คือการคำนวณลำดับการคูณที่มีประสิทธิภาพที่สุดสำหรับผลิตภัณฑ์ของเมทริกซ์หลายตัว ขนาดของเมทริกซ์ถูกระบุในบรรทัดเดียวของอินพุตมาตรฐาน คุณควรพิมพ์รายการจำนวนเต็มที่แสดงลำดับที่ต้องทำการคูณเพื่อลดต้นทุนการคูณทั้งหมดออกไปยังเอาต์พุตมาตรฐาน ตัวอย่างที่ 1 อินพุต 5x6 6x12 12x100 100x7 เอาท์พุต 3 2 1 บรรทัดอินพุตจะเป็นรายการของขนาดเมทริกซ์ที่คั่นด้วยช่องว่างซึ่งแต่ละรายการเป็นจำนวนของแถวตามด้วย a xและตามด้วยจำนวนคอลัมน์ ตัวอย่างเช่นมี 4 เมทริกซ์ที่จะคูณกัน (รวม 3 การคูณทั้งหมด) และเนื่องจากการคูณเมทริกซ์เป็นความสัมพันธ์พวกมันสามารถทำได้ในลำดับใดก็ได้ ผลลัพธ์ควรเป็นลำดับที่จะทำการคูณเพื่อลดต้นทุนรวม นี่ควรเป็นรายการจำนวนเต็มคั่นด้วยช่องว่างซึ่งแสดงดัชนีของการคูณเพื่อดำเนินการต่อไป สำหรับเมทริกซ์ N รายการนี้ควรมีตัวเลข 1 ถึง N-1 โดยรวม ตัวอย่างเช่น 1 ผลลัพธ์3 2 1หมายความว่าคุณควรทำการ12x100 * 100x7คูณก่อนจากนั้นจึงทำการ6x12 * 12x7คูณ (เมทริกซ์ที่สองคูณผลลัพธ์ของขั้นตอนก่อนหน้า) จากนั้นก็5x6 * 6x7คูณผลลัพธ์ที่ได้ การคูณเมทริกซ์จะเข้ากันได้เสมอเช่นจำนวนคอลัมน์ของเมทริกซ์จะตรงกับจำนวนแถวของเมทริกซ์ที่ตามมา สมมติว่าค่าใช้จ่ายของการคูณสองการฝึกอบรมคือAxB * BxCA*B*C …
9 code-golf  math 

2
การติดตามรังสี 2 มิติ
ความท้าทายคือการใช้โปรแกรมติดตามเรย์แบบ 2 มิติซึ่งเป็นข้อความ แหล่งกำเนิดแสงสีขาวเป็น@สัญลักษณ์ R, GและBตัวกรองแสง /และ\เป็นกระจกที่มีการสะท้อนแสง 80% ?เป็นเซ็นเซอร์วัดแสง >, <, ^และVรวมแสงในทิศทางที่เหมาะสม (เช่นถ้าสีแดงและสีเขียวมาเป็น>แสงจะถูกปล่อยออกไปทางขวาและมันจะเป็นสีเหลือง) ตัวละครที่ไม่ใช่ช่องว่างอื่น ๆ ดูดซับแสงทั้งหมด แสงถูกปล่อยออกมาจาก@สัญลักษณ์ในสี่ทิศทาง เมื่อโปรแกรมทำงานก็ควรสร้างผลลัพธ์เช่นเดียวกับอินพุต แต่มีรังสีติดตาม เพราะนี่คือ 2 มิติและฉันรับประกันในการป้อนข้อมูลที่รังสีจะไม่เคยข้ามจะไม่มีปัญหากับสิ่งนั้น แต่ละเรย์ควรแสดงด้วยตัวอักษร r = แดง, g = เขียว, b = น้ำเงิน, c = cyan, m = ม่วงแดง, y = เหลือง, w = ขาว จะไม่มีสีประกอบไปด้วยเลย ปลอกเป็นสิ่งสำคัญที่แตกต่างจากอินพุต หลังจากเอาต์พุตนั้นค่าของแสงที่จับด้วยเครื่องหมายคำถาม (เรียงตามลำดับจากซ้ายไปขวาบนลงล่าง) ควรแสดงผลลัพธ์เป็นเปอร์เซ็นต์และสี ตัวอย่างเช่นอินพุตนี้: …

4
คำนวณจำนวนทอพอโลยีใน {1,2, …, n}
งาน เขียนฟังก์ชั่น / โปรแกรมซึ่งจะnเป็นพารามิเตอร์ / input และพิมพ์ / ส่งกลับจำนวนของโครงสร้าง (ซึ่งจะแสดงให้เห็นด้านล่าง) {1,2,...,n}ในชุด นิยามของโทโพโลยี ให้ X เป็นเซต จำกัด ใด ๆ และสมมติว่า T ซึ่งเป็นเซตย่อยของชุดพลังงานของ X (เช่นชุดที่มีชุดย่อยของ X) ให้เป็นไปตามเงื่อนไขเหล่านี้ : X และเซตว่างอยู่ใน T หากทั้งสองชุด U และ V อยู่ใน T ดังนั้นการรวมกันของทั้งสองชุดนั้นจะอยู่ใน T หากทั้งสองชุด U และ V อยู่ใน T ดังนั้นจุดตัดของทั้งสองชุดนั้นเป็น T ... ดังนั้น T เรียกว่าทอพอโลยีใน X …

2
การเติมจุดลอยตัวโดยไม่มีการลอยตัว!
งานของคุณคือการเขียนโปรแกรมในภาษาใด ๆ ที่เพิ่มตัวเลขทศนิยมสองตัวพร้อมกันโดยไม่ต้องใช้เลขเศษส่วนหรือทศนิยมใด ๆ อนุญาตให้ใช้เลขจำนวนเต็ม รูปแบบ รูปแบบสำหรับตัวเลขที่เป็นสตริงที่มี 1 และ 0 ซึ่งเป็นตัวแทนของค่าไบนารีของIEEE 754 ลอย ตัวอย่างเช่นหมายเลข 2.54 จะแทนด้วยสตริง "01000000001000101000111101011100" เป้าหมาย คุณโปรแกรมควรป้อนตัวเลขสองตัวในรูปแบบที่กล่าวถึงข้างต้นรวมเข้าด้วยกันและส่งออกผลลัพธ์ในรูปแบบเดียวกัน คำตอบที่สั้นที่สุดในทุกภาษาชนะ! กฎระเบียบ ไม่อนุญาตให้ใช้ฟังก์ชันทศนิยมจุดทศนิยมหรือฟังก์ชันคณิตศาสตร์ที่ไม่ใช่จำนวนเต็มชนิดใด ๆ คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นสะอาด (เช่นมีเพียง 1 และ 0) คุณสามารถสันนิษฐานได้ว่าอินพุตเป็นตัวเลขไม่ใช่ Inf, -Inf หรือ NaN หรือ subnormal อย่างไรก็ตามหากผลลัพธ์มากกว่าค่าสูงสุดหรือเล็กกว่าค่าขั้นต่ำคุณควรส่งคืน Inf และ -Inf ตามลำดับ ผลลัพธ์ย่อย (denormal) อาจถูกลบทิ้งเป็น 0 คุณไม่จำเป็นต้องจัดการการปัดเศษอย่างเหมาะสม ไม่ต้องกังวลหากผลลัพธ์ของคุณมีน้อย การทดสอบ เพื่อทดสอบโปรแกรมของคุณคุณสามารถแปลงระหว่างเลขฐานสองทศนิยมและทศนิยมโดยใช้เครื่องมือนี้ 1000 + …

5
ทาสีรั้วนั้น
คุณเป็นทอมซอเยอร์และคุณต้องทาสีรั้วยาว 1,600 เมตร โชคดีที่เพื่อนของคุณตัดสินใจช่วยคุณในการแลกเปลี่ยนสิ่งต่าง ๆ เพื่อนแต่ละคนจะวาดLเมตรเริ่มต้นจากSมีสีC S , Lคือจำนวนเต็มของเมตรและ 1 ≤ C ≤ 97 การเริ่มเบื่อคุณตัดสินใจที่จะหาว่าคุณมีกี่เมตรของแต่ละสี อินพุต อินพุตถูกอ่านจากอินพุตมาตรฐาน แต่ละบรรทัดมีสามตัวเลขS , L , Cตามที่อธิบายไว้ข้างต้น ouput เอาต์พุตถูกเขียนไปยังเอาต์พุตมาตรฐาน สำหรับแต่ละสีที่ปรากฏบนรั้วสุดท้ายพิมพ์หมายเลขสีและจำนวนครั้งที่ปรากฏ เรียงตามสี ตัวอย่าง อินพุต 0 .............. 0 3 1 111........... 2 4 2 112222........ 1 2 3 133222........ 0 4 1 111122........ 7 3 5 111122.555.... …
9 code-golf 

5
Tag Parser ง่าย ๆ
นี่คือรูปแบบของตัวแยกวิเคราะห์ HTML ที่ให้อภัย แทนการแยกวิเคราะห์ HTML และการแยกแอตทริบิวต์ในโค้ดกอล์ฟนี้ตัวแยกวิเคราะห์แท็กจะง่าย เขียนฟังก์ชั่นที่แยกวิเคราะห์โครงสร้างแท็กและส่งกลับแบบฟอร์มพาเรนต์ แท็กเปิดประกอบด้วยตัวอักษรตัวเล็กหนึ่งตัวและแท็กปิดประกอบด้วยตัวอักษรตัวใหญ่หนึ่งตัว ยกตัวอย่างเช่นการaAbaABแยกวิเคราะห์ลงไป(a)(b(a))หรือใน <a></a><b><a></a></b>HTML, แน่นอนแท็กสามารถอยู่ในการวางตำแหน่งและรัง ต้องจัดการแท็กที่ปิด "ก่อนกำหนด" ยกตัวอย่างเช่นในabcAการAปิดนอกสุดดังนั้นจึงแยกออกเป็นa(a(b(c))) ปิดแท็กพิเศษจะถูกละเว้นเพียง: แยกวิเคราะห์ลงในaAB(a) แท็กที่ทับซ้อนกันจะไม่ถูกจัดการ ตัวอย่างเช่นabABแยกวิเคราะห์(a(b))ไม่ใช่(a(b))(b)ตามกฎก่อนหน้าของแท็กปิดพิเศษ ( abAB-> abA( (a(b))) + B(พิเศษ)) สมมติว่าไม่มีช่องว่างและอักขระผิดกฎหมายอื่น ๆ ในอินพุต คุณไม่ได้รับอนุญาตให้ใช้ห้องสมุดใด ๆ นี่คือการดำเนินการอ้างอิงและรายการกรณีทดสอบ: #!/usr/bin/python def pars(inpu): outp = "" stac = [] i = 0 for x in inpu: lowr = x.lower() if …

1
สร้าง proxy อย่างง่าย
ทำพร็อกซีเซิร์ฟเวอร์สั้นที่สุด ข้อมูลจำเพาะอินพุต / เอาต์พุต ลูกค้า: อินพุต: หมายเลขพอร์ต (จำนวนเต็ม 32- บิต) (,) หรือ (ช่องว่าง) URL (ดูกรณีทดสอบ) เอาท์พุท: ที่มา HTML ของ URL เซิร์ฟเวอร์: อินพุต: พอร์ตเพื่อฟัง (จำนวนเต็ม 32 บิต) เอาท์พุท: RECเมื่อได้รับข้อมูลจากลูกค้าตกลงเมื่อเสร็จสิ้นการส่งแหล่ง html ไปยังลูกค้า กฎระเบียบ คุณอาจจะทำให้ทั้งโปรแกรมที่สมบูรณ์หรือฟังก์ชั่นในการแปลภาษา การป้อนข้อมูลจะได้รับการผ่านstdinหรือให้เป็นข้อโต้แย้ง รหัสของคุณต้องใช้กับกรณีทดสอบที่กำหนดเท่านั้น (มากกว่านั้นเป็นตัวเลือกน้อยกว่านั้นไม่ถูกต้อง) ผลลัพธ์ของไคลเอ็นต์จะต้องเหมือนกับสิ่งที่คุณได้รับเมื่อคุณ "ดูแหล่งที่มา" จากเบราว์เซอร์ เซิร์ฟเวอร์อาจจบการทำงานหลังจากคำขอที่จัดการแต่ละครั้ง (เช่นไม่ต้องเป็นแบบถาวร / daemon) ( แก้ไข ) ห้ามมิให้ป้อนข้อมูล / เอาต์พุตอื่นใดนอกเหนือจากที่ระบุ กรณีทดสอบ (อินพุตลูกค้า) …

13
เล่นเกมชื่อ
จงเขียนโปรแกรมที่จะเล่นเกมชื่อ อินพุต โปรแกรมของคุณควรยอมรับชื่อเดียวเป็นอินพุตจากผู้ใช้ในบางวิธี (เช่นอ่านจากอินพุตมาตรฐานหรือเป็นอาร์กิวเมนต์บรรทัดคำสั่ง) คุณสามารถสันนิษฐานได้ว่าชื่อนั้นเป็นคำเดียวที่ประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่และตามด้วยตัวอักษรตัวพิมพ์เล็กหนึ่งตัวหรือมากกว่า เอาท์พุต โปรแกรมของคุณจะต้องพิมพ์สัมผัสสำหรับชื่อที่กำหนดตามที่อธิบายไว้ในเพลงโดยกรอกแม่แบบต่อไปนี้: (X), (X), bo-b(Y) Banana-fana fo-f(Y) Fee-fi-mo-m(Y) (X)! นี่(X)คือชื่อเดิมและ(Y)เป็นชื่อในกรณีที่ต่ำกว่าด้วยการถอดพยัญชนะเริ่มต้นออก อย่างไรก็ตามมีข้อยกเว้นหนึ่งประการ หากชื่อเดิมเริ่มต้นด้วยm, fหรือbมันควรจะเขียนจดหมายฉบับนี้โดยไม่ต้องอยู่บนเส้นที่สอดคล้องกัน เช่นถ้ามีชื่อเป็นBobที่ "ข" bo-obสายควรจะจบลงด้วยการ ทราบว่าในกรณีนี้พยัญชนะอื่น ๆ จะถูกเก็บไว้เพื่อให้Fredมันไม่ได้fo-redfo-ed ตัวอย่าง เชอร์ลี่ย์: Shirley, Shirley, bo-birley Banana-fana fo-firley Fee-fi-mo-mirley Shirley! อาร์โนล: Arnold, Arnold, bo-barnold Banana-fana fo-farnold Fee-fi-mo-marnold Arnold! บ๊อบ: Bob, Bob, bo-ob Banana-fana fo-fob Fee-fi-mo-mob Bob! เฟร็ด: …
9 code-golf 

5
Combinator จุดคง Golfed
เขียนcombinator จุดคงที่ในตัวละครน้อยที่สุดในภาษาที่คุณเลือก รูปแบบอิสระ ( เช่นอะไรก็ตามที่สั้นที่สุด): ทั้งโปรแกรมฟังก์ชันที่แท้จริงโค้ดขนาดสั้น คุณไม่สามารถใช้ไลบรารีมาตรฐานของคุณถ้ามันมี อย่างไรก็ตามคุณสามารถดึงมันออกมาจากฟังก์ชั่นระดับสูงอื่น ๆ ที่คุณต้องการทำมากกว่าสร้างจากฐาน โปรดรวมแฟกทอเรียลแบบเรียกซ้ำหรือฟีโบนักชีที่ใช้เป็นตัวอย่าง ในคำถามนี้การอ้างอิงตนเองเป็นที่ยอมรับจุดมุ่งหมายนั้นเพียงเพื่อลบออกจากฟังก์ชั่นวนซ้ำที่จะนำไปใช้

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