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

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

14
ค้นหารูปแบบในลำดับเลขนี้ของ 1 และ 0
เขียนโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดซึ่งสร้าง 1,000 หมายเลขหรือลำดับ (0- หรือ 1-indexed) ซึ่งขึ้นต้นด้วย [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, …

2
เคล็ดลับสำหรับการเล่นกอล์ฟแบบ numpy, scipy หรือ pylab
แล้วมีรายการที่ครอบคลุมของเคล็ดลับสำหรับการหลามที่นี่ดังนั้นสิ่งที่ฉันขอเป็นเคล็ดลับที่เฉพาะนำไปใช้กับการใช้numpy, scipyหรือpylabห้องสมุด สิ่งเหล่านี้อาจเป็นวิธีการย่อรหัสที่ใช้ไปแล้วnumpyหรือวิธีการลดขนาดการดำเนินการของงูใหญ่โดยใช้ไลบรารีเหล่านี้ กรุณาหนึ่งเคล็ดลับต่อคำตอบ
10 code-golf  tips  python 

6
โปรแกรมกระดานหมากรุกรูปสามเหลี่ยมที่ตรวจสอบตัวเอง
โปรแกรมกระดานหมากรุกเป็นโปรแกรมที่ค่าลำดับของตัวละครแต่ละตัวจะเปลี่ยนจากคู่ไปเป็นคี่โดยไม่รวมตัวยุติบรรทัด (ซึ่งอาจเป็นจุดสิ้นสุดบรรทัดมาตรฐาน) โปรแกรมรูปสามเหลี่ยมเป็นโปรแกรมที่แต่ละบรรทัดมีหนึ่งอักขระเพิ่มเติมนอกเหนือจากบรรทัดก่อนหน้าโดยที่บรรทัดแรกจะมีหนึ่งอักขระ คุณไม่จำเป็นต้องจัดการอินพุตว่าง งานของคุณคือการสร้างโปรแกรมที่ตรวจสอบว่าข้อมูลที่กำหนดให้เป็นไปตามเกณฑ์เหล่านั้นและเอาท์พุท / ส่งกลับบางสิ่งที่เป็นจริงถ้าโปรแกรมตรงตามเกณฑ์หรือบางสิ่งบางอย่างผิดพลาด โปรแกรมของคุณจะต้องตรงตามเกณฑ์เหล่านี้ ตัวอย่างของโปรแกรมที่ถูกต้อง G `e @u^ 5r{B ^ cB +$C VA01 กฎระเบียบ โปรแกรมของคุณอาจเริ่มต้นด้วยคี่หรือไบต์คู่ตราบใดที่พาริตี้ของอักขระสลับกัน โปรแกรมของคุณต้องตรวจสอบโปรแกรมที่เริ่มต้นด้วยตัวอักษรคี่หรือคู่ สำหรับอักขระยูนิโค้ดค่าไบต์พื้นฐานจะต้องมีการสลับพาริตี คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นมีอักขระที่พิมพ์ได้เท่านั้น หากโปรแกรมของคุณมี unprintables ก็ควรจะตรวจสอบตัวเอง โปรแกรมของคุณอาจมีการขึ้นบรรทัดใหม่หนึ่งบรรทัดซึ่งไม่จำเป็นต้องได้รับอนุญาตจากการตรวจสอบของคุณเนื่องจากคุณสามารถสันนิษฐานได้ว่าสิ่งนี้จะถูกลบก่อนที่จะทำการตรวจสอบ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม รหัสสั้นที่สุดเป็นไบต์ในแต่ละภาษาชนะ

7
ที่นั่นฉันแก้ไขมัน (มีเชือก)
ที่เกี่ยวข้อง: ความท้าทายค่อนข้างคล้ายกัน (แต่ง่ายกว่ามาก) ในแนวนอน: ที่นั่นฉันซ่อมมัน (ด้วยเทป) ท้าทาย: กำหนดสตริงที่มีตัวอักษรพิมพ์ใหญ่และ / หรือตัวพิมพ์เล็ก (แล้วแต่จำนวนใดก็ได้ที่คุณต้องการ) และขึ้นบรรทัดใหม่ใส่ในropeแนวตั้งเพื่อแก้ไข เราทำสิ่งนี้โดยการตรวจสอบความแตกต่างของตัวอักษรสองตัวที่อยู่ติดกันในตัวอักษร (ละเว้นการล้อมรอบและลงไปด้านล่างเท่านั้น) และเติมเต็มพื้นที่ROPE/ มากเท่าropeที่เราต้องการ หมายเหตุ: ความแตกต่างที่สำคัญอีกข้อหนึ่งระหว่างการท้าทายนี้และการท้าทายที่นั่นฉันแก้ไข (ด้วยเทป)คือเราไม่ต้องเสียropeเวลาเช่นนี้กับที่เราทำกับtape(แนะนำโดย@JonathanAllanในส่วนหนึ่งของการท้าทาย) ตัวอย่าง: การป้อนข้อมูล: abc bcd ddd eex gfz hka imh เอาท์พุท: abc bcd Rdd deE efR OPO gEP hRE iOR kO PP mE R O P E R O P E R …

4
เศษส่วนต่อเนื่องของผลรวมหลักของ Square Roots
บทนำ งานของคุณคือการสร้างคำศัพท์ 1,000 คำแรกในการแสดงเศษส่วนต่อเนื่องของผลรวมหลักที่สองของรากที่สองของ 2 และรากที่สองของ 3 กล่าวอีกนัยหนึ่งให้ผลิตรายการต่อไปนี้อย่างแน่นอน (แต่รูปแบบผลลัพธ์มีความยืดหยุ่น) [2, 6, 1, 5, 7, 2, 4, 4, 1, 11, 68, 17, 1, 19, 5, 6, 1, 5, 3, 2, 1, 2, 3, 21, 1, 2, 1, 2, 2, 9, 8, 1, 1, 1, 1, 6, 2, 1, 4, 1, 1, …

9
การบรรจบกันของกระบวนการมาร์คอฟ
ท้าทาย ให้เมทริกซ์ซ้ายหรือขวาสุ่มซึ่งขีด จำกัด เมื่อ x เข้าใกล้อนันต์ของเมทริกซ์กับกำลังของ x เข้าใกล้เมทริกซ์ด้วยค่า จำกัด ทั้งหมดคืนเมทริกซ์ที่เมทริกซ์ลู่เข้าหากัน โดยพื้นฐานแล้วคุณต้องการคูณเมทริกซ์ด้วยตัวเองจนกว่าผลลัพธ์จะไม่เปลี่ยนแปลงอีกต่อไป กรณีทดสอบ [[7/10, 4/10], [3/10, 6/10]] -> [[4/7, 4/7], [3/7, 3/7]] [[2/5, 4/5], [3/5, 1/5]] -> [[4/7, 4/7], [3/7, 3/7]] [[1/2, 1/2], [1/2, 1/2]] -> [[1/2, 1/2], [1/2, 1/2]] [[1/3, 2/3], [2/3, 1/3]] -> [[1/2, 1/2], [1/2, 1/2]] [[1/10, 2/10, …
10 code-golf  matrix 

3
ล่าม RoboZZle
งานของคุณคือการเขียนล่าม RoboZZle หากคุณไม่คุ้นเคยกับเกมนี้โปรดดูวิดีโอที่ robozzle.comหรืออ่านคำอธิบายของฉันด้านล่าง หุ่นยนต์อาศัยอยู่บนกริดสี่เหลี่ยมของสี่เหลี่ยมสีแดงเขียวน้ำเงินหรือดำ สี่เหลี่ยมสีดำไม่สามารถเข้าถึงได้ คนอื่นสามารถเข้าถึงได้และบางคนก็มีดาว เป้าหมายคือการรวบรวมดาวทั้งหมดโดยไม่ต้องเหยียบบนช่องสี่เหลี่ยมสีดำหรือตกจากแผนที่ หุ่นยนต์ใช้พื้นที่หนึ่งตารางเมตรและหันไปทิศทางใดทิศทางหนึ่ง - ซ้าย, ขวา, ขึ้นหรือลง มันทำตามคำแนะนำเหมือนการประกอบที่จัดกลุ่มเป็นรูทีนย่อย F1, F2, ... , F5 คำสั่งเป็นคู่ของคำกริยา ("ไม่มี", "ถ้าเป็นสีแดง", "ถ้าเป็นสีเขียว", "ถ้าเป็นสีน้ำเงิน") และการกระทำ ("ไปข้างหน้า", "เลี้ยวซ้าย", "เลี้ยวขวา", "วาดสี่เหลี่ยมจัตุรัสสีแดงปัจจุบัน", "ทาสีเขียว", "ทาสีฟ้า", "ไม่ทำอะไรเลย", "เรียก F1", ... , "เรียก F5") การเรียกรูทีนย่อยใช้ stack และสามารถเรียกซ้ำได้ เช่นเดียวกับในการเขียนโปรแกรมทั่วไปหลังจากคำสั่งสุดท้ายของรูทีนย่อยเสร็จสมบูรณ์การดำเนินการจะดำเนินต่อจากจุดที่เรียกรูทีนย่อย การประหารเริ่มต้นจากคำสั่งแรกของ F1 และดำเนินต่อไปจนกระทั่งทั้งหุ่นยนต์ได้เยี่ยมชมช่องสี่เหลี่ยมที่มีดาวทั้งหมดหรือเมื่อหุ่นยนต์เหยียบบนสี่เหลี่ยมสีดำหรือนอกแผนที่หรือมีการดำเนินการคำสั่ง 1,000 ครั้ง (เพรดิเคตที่ล้มเหลว ไม่นับ) หรือไม่มีคำแนะนำในการดำเนินการอีกต่อไป …

3
สร้างรายการโดยใช้หมายเลขเฉพาะ
คุณได้รับเหรียญ N กอง คุณได้ตัดสินใจแบ่งกองB 1 , B 2 , ... , B N แต่ละกองในกลุ่มคนที่แยกกัน จำนวนคนที่รับเหรียญจะต้องเป็นจำนวนเฉพาะและจำนวนเงินที่มอบให้กับแต่ละคนจะต้องแตกต่างกันในแต่ละกอง อินพุต: N, B 1 , B 2 , ... , B N (จำนวนเหรียญในแต่ละกอง) เอาท์พุท: NP 1 , NP 2 , ... , NP Nโดย NP เป็นจำนวนคน (จำนวนเฉพาะ) ที่ได้รับเหรียญ ถ้าเรื่องนี้เป็นไปไม่ได้แล้วให้ผลผลิตผลบางอย่าง unachievable (เช่น0, -1, None, []หรือ"impossible") หรือเพิ่มข้อผิดพลาด …

8
การรวบรวมจากลำดับที่เป็นสี่เหลี่ยมจัตุรัสที่สมบูรณ์แบบ
ที่กำหนดลำดับOEIS A033581ซึ่งเป็นลำดับอนันต์ที่n 'TH ระยะ (0 ดัชนี) จะได้รับจากรูปแบบสูตรปิด6 × n 2 งานของคุณคือการเขียนโค้ดซึ่งจะส่งออกชุดย่อยทั้งหมดของชุดหมายเลขแรกของ N ในลำดับเช่นว่าผลรวมของเซตย่อยเป็นรูปสี่เหลี่ยมจัตุรัสที่สมบูรณ์แบบ กฎระเบียบ จำนวนเต็มNถูกกำหนดเป็นอินพุต คุณไม่สามารถใช้ซ้ำหมายเลขที่ใช้แล้วในผลรวม (นั่นคือแต่ละหมายเลขสามารถปรากฏในแต่ละชุดย่อยได้ไม่เกินหนึ่งครั้ง) หมายเลขที่ใช้สามารถติดต่อกันไม่ได้ รหัสที่มีขนาดน้อยที่สุดชนะ ตัวอย่าง ลำดับที่กำหนดคือ {0,6,24,54,96, ... , 15000} หนึ่งในเซตย่อยที่ต้องการคือ {6,24,294} เพราะ 6+24+294 = 324 = 18^2 คุณต้องค้นหาชุดดังกล่าวของความยาวที่เป็นไปได้ทั้งหมดในช่วงที่กำหนด

4
ฉันได้รับอนุญาตหรือไม่
ความท้าทาย ระบุสตริงที่ระบุสัญลักษณ์ของการอนุญาต UNIX ของไฟล์และความเป็นเจ้าของ (ID ผู้ใช้และ ID กลุ่ม) ให้ตัดสินใจว่าผู้ใช้ที่Aได้รับมีสิทธิ์ในการอ่าน / เขียน / ดำเนินการหรือไม่ ที่เกี่ยวข้อง สิทธิ์ในระบบ UNIX ใน UNIX, ไฟล์ทุกคนมีสามชั้นของสิทธิ์ ( ผู้ใช้ , กลุ่มและคนอื่น ๆ ) และความเป็นเจ้าของรวมทั้งผู้ใช้และกลุ่มที่มันเป็น สัญกรณ์สัญลักษณ์ประกอบด้วยอักขระสิบตัว ตัวละครตัวแรกนั้นไม่สำคัญสำหรับความท้าทายนี้ อักขระเก้าตัวที่เหลืออยู่ในสามชุดสามอักขระซึ่งเป็นตัวแทนสิทธิ์ของผู้ใช้กลุ่มและคลาสอื่น ๆ อักขระในแต่ละชุดระบุว่าอนุญาตให้อ่าน / เขียน / ดำเนินการได้หรือไม่ หากได้รับอนุญาตก็จะเป็นr, หรือw มิฉะนั้นก็จะเป็นx- โปรดทราบว่าsetuid , setgidและเหนียวบิตอาจมีการเปลี่ยนแปลงตัวละครในสามของแต่ละชุดเพื่อs, S, หรือt Tนี่เป็นกฎง่ายๆ: ถ้าตัวละครเป็นตัวอักษรตัวเล็กก็จะได้รับอนุญาตตั้ง; มิฉะนั้นจะไม่ (สำหรับรายละเอียดเกี่ยวกับสัญลักษณ์การอนุญาตโปรดดูที่นี่ ) ผู้ใช้ทุกคนมี ID …

6
มันเป็นจำนวนที่น่าพอใจ?
แรงบันดาลใจจากการสนทนาการสนทนานี้ จำนวนที่น่าพอใจเป็นตัวเลขที่มีการแสดงทศนิยมเป็นของแบบฟอร์มabxที่มีคุณสมบัติดังต่อไปนี้: xเป็นคำต่อท้ายที่ยาวที่สุดที่ต่อท้ายซ้ำกันหรือหลักสุดท้ายหากไม่มีการซ้ำซ้อนในตอนท้าย ( 123333-> 3333, 545656-> 5656, 123- -> 3) bเป็นตัวเลขหลักเดียวก่อนx( 123333-> 2, 55545656-> 4) aเป็นคำนำหน้าที่เหลืออยู่ ( 123333-> 1, 55545656-> 555) a == c**b( **หมายถึง exponentation) โดยที่cจำนวนการทำซ้ำของส่วนการทำซ้ำที่เล็กที่สุดของx( 1623333-> 4( 3 3 3 3ไม่ใช่33 33) ยกตัวอย่างเช่น8300เป็นจำนวนที่น่าพอใจกับa = 8, b = 3, และc = 2 ไม่ได้เป็นจำนวนที่น่าพอใจเพราะ, , และมีจำนวนเต็มไม่มีที่น่าพอใจ นอกจากนี้ยังไม่ได้เป็นจำนวนที่น่าพอใจเพราะมีและไม่มีตัวเลขที่เหลือx = 0024651x …

1
Advent Challenge 8: การวางแผนการขนส่งรถเข็นที่เก็บ
<< ก่อนหน้า ต้องขอบคุณชุมชน PPCG ตอนนี้ซานต้าจึงมีรถเข็นจัดเก็บของเขาสมดุล ตอนนี้เขาต้องการย้ายพวกเขาไปยังท่าเรือขนส่งเพื่อให้พวกเขาสามารถส่งไปยังอ่าวโหลด โชคไม่ดีที่แทร็คที่จะย้ายเกวียนเป็นเรื่องยุ่งเหยิงและเขาต้องการที่จะเข้าใจว่าจะนำพวกมันไปรอบ ๆ ได้อย่างไรโดยที่พวกเขาไม่ชนกัน! ท้าทาย คุณจะได้รับแทร็กสำหรับรถเข็นแต่ละรายการเป็นรายการของ "ป้ายกำกับ" (หรือสถานี) รถเข็นต้องเคลื่อนย้ายโดยไม่ต้องมีรถเข็นสองคันอยู่บนฉลาก / สถานีเดียวกัน โดยพื้นฐานแล้วรถเข็นจะเลื่อนไปมาระหว่างตำแหน่งที่แต่ละป้ายมีป้ายกำกับที่ไม่ซ้ำกัน งาน กำหนดแทร็กสำหรับรถเข็นแต่ละคันให้เป็นรายการของป้ายกำกับ (ซึ่งเป็นจำนวนเต็มบวกทั้งหมด) กำหนดว่าควรปล่อยรถเข็นแต่ละคันเมื่อใดเพื่อส่งรถเข็นทั้งหมดไปยังจุดหมายปลายทางอย่างปลอดภัยในเวลาอันสั้นที่สุด นี่คือคำอธิบายว่าระบบติดตามทั้งหมดทำงานอย่างไร รถเข็นพูด Let 's iถูกปล่อยออกมาในเวลาที่เข้าสู่การติดตามที่มีป้ายกำกับt_i T_i_1, T_i_2, ..., T_i_nจากนั้นในระหว่างt_1ถึงt_i-1รถเข็นiไม่ได้อยู่ในกริดและสามารถละเว้นได้ ในกรอบเวลาที่t_iรถเข็นที่อยู่บนฉลากT_i_1และสำหรับกรอบเวลาในแต่ละt_kจากt_iไปt_i+n(ครึ่งรวม) T_i_k+1รถที่อยู่บนฉลาก สำหรับกรอบเวลาทั้งหมดหลังจากและรวมถึงt_i+nรถเข็นอยู่ที่ปลายทางและไม่อยู่ในกริดอีกต่อไป จำนวนเวลาทั้งหมดที่t_Tใช้คือกรอบเวลาสุดท้ายที่รถเข็นยังคงติดตามอยู่ในระบบ ข้อมูลจำเพาะ เมื่อได้รับระบบติดตามให้ส่งคืนรายการกรอบเวลา[t_1, t_2, ..., t_n]ที่รถเข็นคันนั้นiเริ่มต้นในเวลาt_iเช่นไม่มีข้อตกลงอื่นใดที่อนุญาตให้รถเข็นเดินทางไปยังจุดหมายปลายทางได้อย่างปลอดภัยด้วยเวลารวมน้อยกว่า ในแง่ของ "ปลอดภัย" ถ้าในกรอบเวลาใด ๆ จากt_1ถึงt_Tมีรถเข็นมากกว่าหนึ่งคันบนฉลากใด ๆ พวกเขาก็ชนกันและการจัดเรียงนั้นไม่ "ปลอดภัย" โปรดทราบว่ารถเข็นสองคันสามารถเลื่อนจากa, bไปb, aยังและยังคง …

3
อะไรที่กำหนดให้กับอะไร
ที่เกี่ยวข้อง อะไรที่กำหนดให้กับอะไร ในความท้าทายนี้คุณจะได้รับสองประเภทAและBและตรวจสอบว่าAเป็นไปมอบหมายB, Bย่อมโอนไปAหรือไม่ ระบบประเภท (ฉันจะใช้tเพื่อเป็นตัวแทนประเภทใด ๆ ) ประเภทพื้นฐาน Xประเภทพื้นฐานจะถูกแทนด้วยอักษรตัวใหญ่เดียวเช่น พวกเขาเป็นชั้นเรียนโดยทั่วไป Xย่อมโอนไปYถ้าเป็นอย่างใดอย่างหนึ่งเช่นเดียวกับหรือระดับผู้ปกครองของYX ประเภทแยก ประเภทการแยกจะถูกแทนด้วยintersect<X, Y>และสามารถมีประเภทจำนวนเท่าใดก็ได้ระหว่าง<'s (เช่นintersect<X, Y, Z, D, E>) tสามารถมอบหมายได้intersect<X1, X2... Xn>หากtสามารถมอบหมายให้กับทุกคนXได้ intersect<X1, X2... Xn>ย่อมโอนไปtถ้าเป็นไปมอบหมายXt ประเภทสหภาพ ประเภทสหภาพถูกแสดงโดยunion<X, Y>และสามารถมีจำนวนประเภทใดก็ได้ระหว่าง<'s (เช่นunion<X, Y, Z, D, E>) tย่อมโอนไปunion<X1, X2... Xn>ถ้าเป็นมอบหมายใด ๆtX union<X1, X2... Xn>สามารถมอบหมายให้ได้tหากทุกอย่างXสามารถมอบหมายtได้ อินพุต คุณจะได้รับเป็นอินพุต: ลำดับชั้นของชั้นเรียน คุณสามารถเลือกวิธีการป้อนข้อมูลสำหรับลำดับชั้นของคลาส คุณสามารถป้อนการแสดงทรีหรือแต่ละชนิดด้วยรายการของพาเรนต์หรือสิ่งอื่นที่แสดงถึงลำดับชั้นของคลาสได้อย่างถูกต้อง สองประเภท (อินพุตมีความยืดหยุ่นตราบใดที่สัญกรณ์สอดคล้องกันคุณอาจได้รับประเภทเหล่านี้ตามที่คุณต้องการ) เอาท์พุต คุณจะเป็นหนึ่งในการส่งออกของสามค่าที่สอดคล้องกันและแตกต่างกันเรียกพวกเขาX, …

8
หมายเลข BIU (หรือตัวเลขที่รวมแล้ว)
วิธีสังเกตพวกมัน ใช้จำนวนเต็มบวก k สิ่งหาร ค้นหาปัจจัยสำคัญที่แตกต่างกันของแต่ละตัวหาร รวมปัจจัยทั้งหมดเหล่านี้เข้าด้วยกัน ถ้าจำนวนนี้ (ผลรวม) เป็นตัวหารของ k ( ถ้าผลรวมหาร k ) ดังนั้นตัวเลขนี้ k คือตัวเลข BIU ตัวอย่าง ลอง54 หาตัวเลขค้นหาตัวหาร ทั้งหมด:[1, 2, 3, 6, 9, 18, 27, 54] ค้นหาตัวประกอบสำคัญของตัวหารแต่ละตัว หมายเหตุ:สำหรับกรณีของตัว1เรา1 1 -> 1 2 -> 2 3 -> 3 6 -> 2,3 9 -> 3 18 -> 2,3 27 …

17
กำลังสองของฉันโดยประมาณ
แรงบันดาลใจจากวิดีโอนี้โดย tecmath ประมาณของรากที่สองของจำนวนใด ๆ ที่xสามารถพบได้โดยการจำนวนเต็มรากs(เช่นที่ใหญ่ที่สุดจำนวนเต็มเช่นนั้นs * s ≤ x) s + (x - s^2) / (2 * s)และจากนั้นการคำนวณ ให้เราเรียกการประมาณนี้S(x)ว่า (หมายเหตุ: นี่เทียบเท่ากับการใช้ขั้นตอนเดียวของวิธีการ Newton-Raphson) แม้ว่านี่จะมีมุมแหลมที่ S (n ^ 2 - 1) จะเป็น√ (n ^ 2) เสมอ แต่โดยทั่วไปมันจะแม่นยำมาก ในบางกรณีที่มีขนาดใหญ่กว่านี้อาจมีความแม่นยำมากกว่า 99.99% อินพุตและเอาต์พุต คุณจะใช้หมายเลขหนึ่งในรูปแบบ Convienent ใด ๆ ตัวอย่าง รูปแบบ: อินพุต -> เอาท์พุท 2 -> 1.50 …

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