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

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

12
มาสร้าง Diet Haskell กันเถอะ
Haskell มีสิ่งอันดับที่สามารถเขียนได้เช่น (a,b,c) อย่างไรก็ตามนี่เป็นเพียงน้ำตาล syntactic สำหรับ (,,)a b c โดยทั่วไปn tuple สามารถเกิดขึ้นได้ด้วยn-1 , s ระหว่าง(... )ตามด้วยองค์ประกอบที่คั่นด้วยช่องว่าง ตัวอย่างเช่น 7-tuple (1,2,3,4,5,6,7)สามารถสร้างขึ้นโดย (,,,,,,)1 2 3 4 5 6 7 เนื่องจาก Haskell ไม่มี 1-tuples จึงไม่สามารถสร้างได้ คุณจะไม่รับผิดชอบต่อสิ่งอันดับที่ว่างเปล่า tuples ที่ซ้อนกันสามารถเกิดขึ้นได้โดยใช้ parens เพื่อแทนที่ลำดับของการดำเนินการ ((1,2),3) == (,)((,)1 2)3 ในฐานะที่เป็นส่วนหนึ่งของการติดตามของเราที่จะลบน้ำตาล syntactic ทั้งหมดออกจาก Haskell ฉันจะขอให้คุณเขียนโปรแกรมที่ลบน้ำตาล syntactic จาก Tuples ของ Haskell …

19
สามเหลี่ยมสลับของ Pascal
รูปสามเหลี่ยมของปาสคาลนั้นสร้างขึ้นโดยเริ่มจาก1และทำให้แต่ละแถวเกิดขึ้นจากการต่อเนื่องกัน ตรงนี้แทนเราจะสร้างสามเหลี่ยมโดยสลับการคูณและการบวก เราเริ่มต้นแถวมีเพียงโดดเดี่ยว1 1หลังจากนั้นจะทำการเพิ่มในแถวคี่และการคูณจะทำบนแถวคู่ (ทำดัชนี 1 ครั้ง) เมื่อดำเนินการตามขั้นตอนเพิ่มเติมให้ถือว่าช่องว่างด้านนอกของรูปสามเหลี่ยมเต็มไปด้วย0s เมื่อดำเนินการขั้นตอนการคูณให้ถือว่าด้านนอกเต็มไปด้วย1s นี่คือสามเหลี่ยมเต็มรูปแบบลงไป 7 แถว *หรือ+ในรายการที่ยังเหลือขั้นตอนสิ่งที่ได้ดำเนินการในการสร้างแถวนั้น 1 1 2 * 1 1 3 + 1 2 1 4 * 1 2 2 1 5 + 1 3 4 3 1 6 * 1 3 12 12 3 1 7 + 1 4 15 …

25
อาร์เรย์ย่อยสูงสุด
กำหนด "อาเรย์ย่อยสูงสุด" ของอาเรย์ที่กำหนดเป็น "อาเรย์ย่อย (ต่อเนื่อง) ที่มีผลรวมมากที่สุด" หมายเหตุไม่มีข้อกำหนด "ไม่เป็นศูนย์" ผลรวมนั้น ให้คำอธิบายรหัสของคุณถ้าเป็นไปได้ ตัวอย่างอินพุต 1: 1 2 3 -4 -5 6 7 -8 9 10 -11 -12 -13 14 ตัวอย่างผลลัพธ์ 1: 24 คำอธิบาย 1: ผลรวมที่ยิ่งใหญ่ที่สุดเกิดจากการตัด6 7 -8 9 10ออกและสรุป ตัวอย่างอินพุต 2: -1 -2 -3 เอาต์พุตตัวอย่าง 2: 0 คำอธิบาย 2: ง่ายมาก :) subarray ว่างเปล่าคือ …

16
ย่อหน้าซิป
(แรงบันดาลใจจากความท้าทายนี้ ) รับสายอินพุตสองสายหนึ่งในนั้นคือตัวละครตัวหนึ่งยาวกว่าอีกสายหนึ่งจัดเรียงสตริงให้เป็นงานศิลปะ ASCII ราวกับว่าพวกเขาเป็นซิปสองครึ่งที่ซิปเพียงครึ่งเดียว คำที่ยาวกว่าจะรวมอยู่ที่ด้านล่างของซิปและเป็นอักขระตัวแรกและตัวสุดท้ายของส่วนซิปรวม เนื่องจากย่อหน้านั้นยากที่จะเข้าใจให้ดูตัวอย่าง: zippered paragraph z i p p gerraepdh a r a p ให้สังเกตว่าparagraph(คำที่ยาวกว่า) สร้างซิปด้านล่างอย่างไรและg r a p hส่วนที่ห่อหุ้มe r e dส่วนของzipperedและz i p pและและp a r aส่วนต่าง ๆ จะถูกหักล้างกัน อินพุต สตริง ASCII สองรูปแบบในรูปแบบที่สะดวกใด ๆโดยมีหนึ่งสายที่รับประกันว่าจะมีความยาวและอีกสายหนึ่งยาวกว่า สตริงจะไม่มีช่องว่าง แต่อาจมีค่า ASCII ที่พิมพ์ได้อื่น ๆ คุณสามารถรับอินพุตตามลำดับใดก็ได้ โปรดระบุในการส่งคำสั่งซื้อของคุณ เอาท์พุต การแสดงภาพ ASCII …

1
การเล่น Python ของสตริงตัวอักษร
พื้นหลัง Python 3 มีสตริงตัวอักษรหลายประเภท ตัวอย่างเช่นสตริงthis 'is' an exa\\m/pleสามารถแสดงเป็น: 'this \'is\' an exa\\\\m/ple' "this 'is' an exa\\\\m/ple" r"this 'is' an exa\\m/ple" '''this 'is' an exa\\\\m/ple''' """this 'is' an exa\\\\m/ple""" r'''this 'is' an exa\\m/ple''' r"""this 'is' an exa\\m/ple""" อย่างที่คุณเห็นการใช้ตัวคั่นที่แตกต่างกันสำหรับสตริงสามารถทำให้สตริงยาวขึ้นหรือสั้นลงได้โดยการเปลี่ยนการหลบหลีกที่จำเป็นสำหรับตัวละครบางตัว ตัวคั่นบางตัวไม่สามารถใช้กับสตริงทั้งหมด: r'หายไปด้านบน (ดูคำอธิบายภายหลัง) การรู้จักสายอักขระของคุณนั้นมีประโยชน์มากในการตีกอล์ฟ หนึ่งยังสามารถรวมตัวอักษรสตริงหลายตัวเป็นหนึ่ง: 'this \'is\' an ''''exa\\\\m/ple''' "this 'is' an "r'exa\\m/ple' …

18
นี่เป็นบอร์ด Takuzu ที่ถูกต้องหรือไม่?
Takuzu เป็นเกมลอจิกที่คุณต้องทำกริดกับเซลล์ที่มี0s และ1s กริดต้องเป็นไปตามกฎ 3 ข้อ: ไม่มีเซลล์ติดต่อกันสามเซลล์ในแนวนอนหรือแนวตั้ง จะต้องมีจำนวน0s และ1s เท่ากันในแต่ละแถวและคอลัมน์ ไม่มีสองแถวที่เหมือนกันและไม่มีสองคอลัมน์ที่เหมือนกัน ลองดูตารางที่เสร็จแล้ว: 0011 1100 0101 1010 ที่คุณสามารถดูบอร์ดนี้เป็นไปตามกฎ1, และ2 3ไม่มีเซลล์แนวนอนหรือแนวตั้งสามเซลล์ที่เหมือนกันแถวและคอลัมน์ทั้งหมดมีจำนวน0s และ1s เท่ากันและไม่มีสองแถวและไม่มีสองคอลัมน์เหมือนกัน ลองดูตารางที่ไม่ถูกต้อง: 110100 010011 011010 101100 100011 001101 มีปัญหามากมายกับกริดนี้ ตัวอย่างเช่นแถว5มีสาม0s ในแถวและคอลัมน์2มีสาม1s ในแถวตามด้วยสาม0s ดังนั้นนี่ไม่ใช่กริดที่ถูกต้อง งาน: งานของคุณคือการทำโปรแกรมที่กำหนดให้อาร์เรย์n* n 0s และ1s เป็นแบบ 2 มิติตรวจสอบบอร์ดเพื่อดูว่าบอร์ดทาคูซุที่ใช้งานได้นั้นถูกต้องหรือไม่ ตัวอย่าง: 0011 1100 0101 1010 บอร์ดนี้ปฏิบัติตามกฎทั้งหมดและดังนั้นจึงเป็นบอร์ด Takuzu ที่ถูกต้อง คุณต้องส่งคืนค่าความจริงสำหรับสิ่งนี้ …

8
คุณสามารถนับจำนวนสี่เหลี่ยมได้หรือไม่
หนึ่งในงานอดิเรกทางคณิตศาสตร์ที่ฉันโปรดปรานคือการวาดกริดสี่เหลี่ยมจากนั้นหาสี่เหลี่ยมทั้งหมดที่มองเห็นได้ในกริดนั้น ที่นี่ใช้คำถามนี้และเสี่ยงสำหรับตัวเอง! คุณสามารถนับจำนวนสี่เหลี่ยมได้หรือไม่ +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ | | | | | | | | | | +-----+-----+-----+-----+ จำนวนรวมของสี่เหลี่ยมจัตุรัสสำหรับ4 x …

14
อ่อนแอกำแพงไบนารี
แรงบันดาลใจจากสร้างกำแพงไบนารี รับรายการของจำนวนเต็มบวกเราสามารถเขียนพวกมันออกมาเหมือน[2, 6, 9, 4]กันตัวอย่างเช่น: 0010 0110 1001 0100 เราสามารถจินตนาการสิ่งนี้ว่าเป็นกำแพง: ..#. .##. #..# .#.. อย่างไรก็ตามนี่เป็นกำแพงที่อ่อนแอมากและมันทรุดลง! แต่ละ1( #) ต่ำลงจนฮิตว่า "ดิน" หรืออีก1( #) 0s ( .s) ที่มีอยู่ในจุดซ้ายโดยย้าย1s สิ่งนี้จะกลายเป็นสิ่งต่อไปนี้: .... .... .##. #### ซึ่งแปลกลับเป็น: 0000 0000 0110 1111 [0, 0, 6, 15]ซึ่งเป็นรายการของตัวเลขเป็น อีกกรณีทดสอบ [10, 17, 19, 23] สิ่งนี้กลายเป็น: 01010 10001 10011 10111 ซึ่งกลายเป็น: …

20
ยังไม่ได้ใช้คู่
ลองกำหนดลำดับของจำนวนเต็มบวก เราจะกำหนดลำดับของเลขคู่ให้เป็นสองเท่าของคำก่อนหน้านี้ ดัชนีคี่ของลำดับจะเป็นจำนวนเต็มบวกที่เล็กที่สุดที่ยังไม่ปรากฏในลำดับ นี่เป็นคำศัพท์คู่แรก 1,2,3,6,4,8,5,10,7,14,9,18,11,22,12,24,13,26,15,30 คุณสามารถคิดว่านี่เป็นรายการของคู่ที่ต่อกัน(n, 2n)โดยที่nเป็นจำนวนเต็มบวกที่น้อยที่สุดที่ยังไม่ได้ใช้ งาน รับตัวเลขnเป็นอินพุตคำนวณคำศัพท์ที่nในลำดับนี้ นี่คือcode-golfดังนั้นคุณควรตั้งเป้าหมายที่จะลดขนาดซอร์สโค้ดของคุณตามที่วัดเป็นไบต์ OEIS A036552

7
เอาหน้านิ่วคิ้วและหมุนไปรอบ ๆ
การเฉลิมฉลองหลาย ๆ ใบหน้าของ APL กำหนดสตริงในคอลัมน์ 1 หรือ 2 ของตารางด้านล่างให้คืนค่าเพื่อนบ้านของสตริงไปทางขวา กล่าวอีกนัยหนึ่งหากได้รับสตริงในคอลัมน์ 1 จากนั้นส่งคืนสตริงของคอลัมน์ 2 บนแถวนั้นและหากกำหนดสตริงในคอลัมน์ 2 ให้ส่งคืนสตริงของคอลัมน์ 3 ในแถวนั้น codepoints (นอกเหนือจาก:รายการ) อยู่ทางขวาสุด คอลัมน์ 1 คอลัมน์คอลัมน์ 2 3 :⊢ →การ ⍡ →การ ⊣: U + 22a2 U + 2361 U + 22a3 :▷ →การ ⍢ →การ ◁: U + 25b7 U + …

30
วงกลมซ้อนกันหรือไม่
เมื่อกำหนดพิกัดของจุดศูนย์กลางและรัศมี 2 วงกลมให้ส่งค่าความจริงว่าพวกมันทำหรือไม่ทับซ้อนกัน อินพุต อินพุตอาจถูกใช้ผ่าน STDIN หรืออาร์กิวเมนต์ฟังก์ชันที่เทียบเท่า แต่ไม่สามารถใช้เป็นตัวแปรได้ คุณสามารถใช้มันเป็นตัวแปรเดียว (รายการสตริง ฯลฯ ) หรือเป็นอินพุต / อาร์กิวเมนต์หลายรายการตามลำดับที่คุณต้องการ อินพุตจะเป็นหกลอย ทุ่นเหล่านี้จะมีทศนิยมสูงสุด 3 ตำแหน่ง พิกัดอาจเป็นบวกหรือลบ รัศมีจะเป็นค่าบวก เอาท์พุต เอาต์พุตสามารถผ่าน STDOUT หรือฟังก์ชันส่งคืน โปรแกรมจะต้องมีเอาต์พุตที่แตกต่างกัน 2 รายการ - หนึ่งรายการสำหรับค่า True (วงกลมซ้อนทับกัน) และอีกรายการหนึ่งสำหรับเอาต์พุตเท็จ (พวกเขาไม่ทับซ้อนกัน) กรณีทดสอบ (อินพุตถูกระบุเป็นรายการของ tuples [(x1, y1, r1), (x2, y2, r2)]สำหรับกรณีทดสอบคุณสามารถรับอินพุตในรูปแบบใดก็ได้) จริง [(5.86, 3.92, 1.670), (11.8, 2.98, 4.571)] …

9
คำนวณค่าผกผันของโมดูโลจำนวนเต็ม 100000000003
ภารกิจมีดังต่อไปนี้ ได้รับจำนวนเต็มx(เช่นที่xโมดูโล100000000003ไม่เท่ากับ0) นำเสนอให้กับรหัสของคุณในทางที่คุณพบว่าสะดวกเอาท์พุทจำนวนเต็มอีกเพื่อให้y < 100000000003(x * y) mod 100000000003 = 1 รหัสจะต้องใช้เวลาน้อยกว่า 30 นาทีในการทำงานบนเครื่องเดสก์ท็มาตรฐานสำหรับการใด ๆการป้อนข้อมูลดังกล่าวว่าx|x| < 2^40 กรณีทดสอบ อินพุต: 400000001 เอาต์พุต: 65991902837 อินพุต: 4000000001 เอาต์พุต: 68181818185 อินพุต: 2. เอาต์พุต: 50000000002 อินพุต: 50000000002 เอาต์พุต: 2 อินพุต: 1000000 เอาต์พุต: 33333300001 ข้อ จำกัด คุณไม่สามารถใช้งานไลบรารีหรือฟังก์ชันบิวด์อินใด ๆ ที่ดำเนินการทางคณิตศาสตร์แบบโมดูโล (หรือการดำเนินการแบบผกผันนี้) ซึ่งหมายความว่าคุณไม่สามารถทำได้a % bโดยไม่ต้องดำเนินการ%เอง คุณสามารถใช้ฟังก์ชั่นทางคณิตศาสตร์อื่น ๆ ที่ไม่ใช่แบบโมดูโลได้ …

14
เปิดสตริงภายใน
สตริงที่สมดุลคือสตริงของวงเล็บ()เพื่อให้ทุกวงเล็บสามารถจับคู่กับวงเล็บอื่นได้ อย่างเข้มงวดยิ่งขึ้นพวกเขาเป็นสตริงทอดโดยไวยากรณ์นี้: S → (S)S | ε เราสามารถเปลี่ยนสตริง "inside out" โดย: สลับการเกิดขึ้นทั้งหมดของ(และ)กับแต่ละอื่น ๆ การย้ายตัวละครจากด้านหน้าของสตริงไปทางด้านหลังจนกระทั่งสตริงมีความสมดุลอีกครั้ง ให้ทำตัวอย่าง เราเริ่มต้นด้วยสตริงที่สมดุล: (()(())()) จากนั้นเราสลับ parens ให้เป็น ))())(()(( จากนั้นย้ายอักขระจากด้านหน้าของสตริงไปด้านหลังของสตริงจนกระทั่งสตริงมีความสมดุล ))())(()(( )())(()(() ())(()(()) ))(()(())( )(()(())() (()(())()) นั่นคือผลลัพธ์ของเรา! โปรดทราบว่าบางสายสามารถเปิดด้านในออกได้หลายวิธีตัวอย่างเช่นสตริง (()()) เมื่อหันด้านในออกมาสามารถเป็นได้ทั้ง: ()(()) หรือ (())() อย่างไรก็ตามทุกสตริงมีทางออกอย่างน้อยหนึ่งรายการ งาน เขียนโปรแกรมเพื่อใช้สตริงที่มีความสมดุลเป็นอินพุตและเอาต์พุตที่สตริงนั้นเปิดด้านใน ในกรณีที่อาจมีเอาต์พุตที่ถูกต้องหลายรายการคุณต้องใช้เอาต์พุตเพียงรายการเดียวเท่านั้น คุณอาจจะใช้ชนิดรั้งที่แตกต่างกัน ( <>, []หรือ{}) ดังนั้นหากคุณต้องการ นี่คือการแข่งขันรหัส - กอล์ฟดังนั้นคุณควรตั้งเป้าหมายลดขนาดซอร์สโค้ดของคุณตามขนาดเป็นไบต์ กรณีทดสอบ (()()) -> …

30
พิสัย, ย้อนกลับ, รวม!
รับจำนวนเต็มบวก n เป็นอินพุทเอาท์พุทผลรวมของช่วงที่กลับด้านของ n ผลรวมของช่วงที่ย้อนกลับถูกสร้างขึ้นโดยการทำให้ช่วงครอบคลุมถึง n เริ่มต้นด้วย 1 และรวมถึง n ย้อนกลับแต่ละตัวเลขภายในและรวมมัน ตัวอย่าง: นี่คือสิ่งที่จะเกิดขึ้นสำหรับอินพุต 10: พิสัย: [1,2,3,4,5,6,7,8,9,10] ย้อนกลับ: [1,2,3,4,5,6,7,8,9,01](หมายเลข 1- อักขระที่ตรงกันข้ามคือตัวเอง 10 รายการกลับเป็น 01 หรือ 1) ผลรวม: 46 ตัวเลขที่มีตัวเลข 3+ จะกลับด้านเช่นเดียวกับตัวเลขที่มี 2 หลัก ตัวอย่างเช่น 1234 จะกลายเป็น 4321 กรณีทดสอบ: Input -> Output 10 -> 46 5 -> 15 21 -> 519 58 …

30
ผลิตภัณฑ์ของตัวหาร
ท้าทาย รับจำนวนเต็มบวกคืนผลคูณของตัวหารรวมถึงตัวมันเอง นี่คือA007955 ลำดับใน OEIS กรณีทดสอบ 1: 1 2: 2 3: 3 4: 8 5: 5 6: 36 7: 7 8: 64 9: 27 10: 100 12: 1728 14: 196 24: 331776 25: 125 28: 21952 30: 810000 เกณฑ์การให้คะแนน นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะชนะ!

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