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

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

28
การแยกตัวของอาเรย์
รับอาร์เรย์ของจำนวนเต็มบวกส่งออกอาร์เรย์ที่มั่นคงของปัจจัยหลักที่แตกต่างของจำนวนเต็มเหล่านี้ กล่าวอีกนัยหนึ่งสำหรับแต่ละจำนวนเต็มในอินพุตตามลำดับรับปัจจัยสำคัญเรียงลำดับและผนวกเฉพาะช่วงเวลาใด ๆ ที่ไม่ได้อยู่ในเอาต์พุตไปยังเอาต์พุต กรณีทดสอบ [1,2,3,4,5,6,7,8,9,10] -> [2,3,5,7] [10,9,8,7,6,5,4,3,2,1] -> [2,5,3,7] [100,99,98,1,2,3,4,5] -> [2,5,3,11,7] [541,60,19,17,22] -> [541,2,3,5,19,17,11] [1,1,2,3,5,8,13,21,34,45] -> [2,3,5,13,7,17] [6,7,6,7,6,7,6,5] -> [2,3,7,5] [1] -> [] [8] -> [2] [] -> [] เอาต์พุตสามารถเป็นอาร์เรย์หรือรายการของจำนวนเต็มหรือสตริง, เอาต์พุตแบบมีตัวคั่นหรือวิธีมาตรฐานอื่นใดของเอาต์พุตเอาต์พุตรายการตัวเลข นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

5
ค่าสัมประสิทธิ์สหสัมพันธ์อันดับ
ค่าสัมประสิทธิ์สหสัมพันธ์ปกติ(ใน 2d) วัดว่าชุดของจุดสามารถอธิบายได้ดีแค่ไหนและถ้าใช่สัญญาณของมันบอกเราว่าเรามีความสัมพันธ์เชิงบวกหรือเชิงลบ แต่นี่อนุมานว่าพิกัดของจุดสามารถแปลความหมายเชิงปริมาณเช่นการวัดได้ หากคุณไม่สามารถทำเช่นนั้นได้ แต่คุณยังสามารถสั่งพิกัดได้นั่นก็คือสัมประสิทธิ์สหสัมพันธ์อันดับ : มันจะวัดว่าจุดใดที่สามารถอธิบายคะแนนได้ด้วยฟังก์ชั่นโมโนโทน ท้าทาย ได้รับรายชื่อของจุด 2d การตรวจสอบของพวกเขามีค่าสัมประสิทธิ์สหสัมพันธ์อันดับ รายละเอียด คุณสามารถสมมติว่าอินพุตเป็นจำนวนเต็มบวก (แต่คุณไม่จำเป็นต้อง) หรือค่า "เรียงลำดับ" อื่น ๆ คะแนนสามารถนำมาเป็นรายการของจุดหรือสองรายการสำหรับ x- และ y- พิกัดหรือเมทริกซ์หรืออาร์เรย์ 2d เป็นต้น ผลลัพธ์จะต้องเป็นทศนิยมหรือประเภทเหตุผลตามที่ควรเป็นตัวแทนจำนวนจริงระหว่าง 0 และ 1 คำนิยาม ตำแหน่ง:ได้รับรายชื่อของตัวเลขX=[x(1),...,x(n)]ที่เราสามารถกำหนดจำนวนบวกrx(i)เรียกว่าอันดับของx(i)แต่ละรายการ เราทำได้โดยการเรียงลำดับรายการและการกำหนดดัชนีของในรายการที่เรียงลำดับx(i) rx(i)หากสองคนขึ้นไปx(i)มีค่าเท่ากันเราก็แค่ใช้ค่าเฉลี่ยเลขคณิตของดัชนีที่สอดคล้องกันทั้งหมดเป็นอันดับ ตัวอย่าง: List: [21, 10, 10, 25, 3] Indices sorted: [4, 2, 3, 5, 1] หมายเลข10ปรากฏสองครั้งที่นี่ ในรายการที่เรียงลำดับก็จะครอบครองดัชนีและ2 …

1
กลายเป็นผู้ฆ่าไฮดรา
คุณเป็นฮีโร่ที่ดีที่สุดและมีชื่อเสียงที่สุดในพื้นที่ เมื่อไม่นานมานี้มีข่าวลือว่าไฮดราถูกแขวนอยู่ในหุบเขาใกล้เคียง เป็นฮีโร่ที่กล้าหาญและมีคุณธรรมที่คุณเป็นคุณจะต้องไปตรวจสอบในวันนี้ ปัญหาของไฮดราคือทุกครั้งที่คุณพยายามที่จะตัดหัวของพวกเขาบางคนก็งอกใหม่ โชคดีสำหรับคุณคุณมีดาบที่สามารถตัดหัวได้หลายหัวในครั้งเดียว แต่มีการจับถ้าไฮดรามีหัวน้อยกว่าการตัดดาบของคุณคุณจะไม่สามารถโจมตีไฮดรา เมื่อไฮดรามีหัวเป็นศูนย์แน่นอนคุณได้ฆ่ามัน นอกจากนี้ยังมีดาบพิเศษที่เรียกว่าThe Bisectorซึ่งจะตัดหัวของไฮดราออกครึ่งหนึ่ง แต่ถ้าจำนวนหัวเท่ากัน Bisector ไม่สามารถใช้งานได้เลยเมื่อจำนวนของหัวเป็นเลขคี่ สิ่งนี้แตกต่างจากการตัดศูนย์หัว ดังนั้นคุณตัดสินใจว่าคุณจะเขียนโปรแกรมคอมพิวเตอร์เพื่อหาวิธีที่ดีที่สุดในการสังหารไฮดรา งาน คุณจะได้รับเป็นอินพุต จำนวนหัวที่ไฮดราเริ่มต้นด้วย จำนวนของหัวที่ไฮดรางอกใหม่ในแต่ละเทิร์น รายการดาบที่มีให้ใช้งานแต่ละอัน (แต่ละอันคือเส้นแบ่งครึ่งหรือตัดจำนวนคงที่ของหัวแต่ละตา) คุณควรแสดงรายการการเคลื่อนไหวที่จะฆ่าไฮดราในจำนวนรอบที่น้อยที่สุดที่เป็นไปได้ หากไม่มีวิธีที่จะฆ่าไฮดราคุณต้องส่งออกค่าอื่น ๆ ที่ระบุดังนี้ หากมีหลายวิธีที่ดีที่สุดในการฆ่าไฮดราคุณสามารถส่งออกหนึ่งในนั้นหรือทั้งหมด นี่เป็นคำถามเกี่ยวกับรหัสกอล์ฟดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยมีจำนวนไบต์น้อยกว่าดีกว่า กรณีทดสอบ เพิ่มเติมตามคำขอ 5 heads, 9 each turn, [-1,-2,-5] -> [-5] 12 heads, 1 each turn, [/2,-1] -> No solution 8 heads, 2 each turn, …
13 code-golf  math  game 

5
การแฮ็กสถานีออกมาเสีย
มีใครที่นี่ที่เป็นแฟนของ Bethesda หรือ? บางทีคุณอาจชอบ Obsidian Entertainment? ถ้าคุณเป็นอย่างใดอย่างหนึ่งของสิ่งเหล่านั้นกว่าภาพต่อไปนี้ควรจะค่อนข้างคุ้นเคยกับคุณ ฉันได้รับอิสรภาพในการเตรียมการท้าทาย ASCII-Art ที่ไม่เหมือนใครดังนั้นนี่เป็นเงื่อนงำแรกเกี่ยวกับสิ่งที่ฉันจะให้คุณทำ: _____________________________________________________ / \ | _____________________________________________ | | | | | | | Welcome to ROBCO Industries (TM) Termlink | | | | Password Required | | | | Attempts Remaining: | | | | | | | | 0x01 | …

8
แผนที่ระยะทางรถแท็กซี่น้อยที่สุด
คำอธิบายการท้าทาย ในตัวชี้วัดรถแท็กซี่ระยะห่างระหว่างจุดสองจุดถูกกำหนดเป็น: พิจารณาเมทริกซ์ที่มีค่าศูนย์และรายการเดียว: 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 Let 's map แต่ละ1ระยะทางที่ใกล้ที่สุดที่จะแตกต่างกัน 1ในเมทริกซ์ (แน่นอนสมมติว่าระยะห่างระหว่างสองแถวที่อยู่ติดกัน / คอลัมน์ที่มีค่าเท่ากับ 1): 0 0 0 3 0 2 0 0 0 0 0 0 0 …

4
แฟร์มาต์หมายเลขนี้เป็นอย่างไร?
ตัวเลขแฟร์มาต์เป็นจำนวนเต็มบวกที่สามารถแสดงเป็น 2 2 x +1 ด้วยจำนวนเต็ม x ให้เรากำหนดคุณลักษณะของจำนวนที่เรียกว่า "แฟร์มาต์เนส": แฟร์มาต์ของจำนวนนั้นน้อยกว่าความยาวของห่วงโซ่แห่งพลังทั้งสองเริ่มต้นจากฐานด้วยพลังของทั้งสองขยายตัวเพื่อเพิ่มความสมบูรณ์ของแฟร์มาต์ หมายเลขที่ไม่ใช่หมายเลขแฟร์มาต์มีจำนวนแฟร์มาต์เป็นศูนย์ ดังนั้น 17 (= 2 2 2 2 0 +1) มีแฟร์มาต์สามคน ท้าทาย รับจำนวนเต็มบวกที่ไม่ใช่ศูนย์เป็นอินพุตส่งออกแฟร์มาต์ของจำนวน กฎระเบียบ คุณสามารถรับอินพุตเป็นเลขฐานสองทศนิยมฐานสิบหกเป็นค่าขยายหรือรูปแบบใดก็ตามที่ช่วยให้คุณตีกอล์ฟได้ดีที่สุด โซลูชันของคุณจะต้องสามารถประมวลผลหมายเลขที่มีความยาวบิตมากกว่า 64 ไม่ว่าคุณจะใช้วิธีใด จำนวนเต็มไม่ใช่ค่าลบเท่านั้น แน่นอนช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุดจึงชนะ กรณีทดสอบ input->outputเหล่านี้อยู่ในรูปแบบ อินพุตอยู่ในเลขฐานสิบหกเพื่อประหยัดพื้นที่ 10000000000000000000000000000000000000000000000000000000000000001 -> 2 1000000000000BC00000000000000000000000000000000001000000000000001 ->0 1234567890ABCDEF -> 0 100000000000000000000000000000001 -> 1 5 -> 2 11 -> …

3
ถนนสามารถข้ามแม่น้ำได้หลายวิธี
ลองนึกภาพแม่น้ำตรงและถนนที่จะไปข้ามแม่น้ำnครั้งผ่านสะพาน ถนนไม่วนตัวเองและมีความยาวไม่ จำกัด ถนนเส้นนี้จะถือว่าเป็นเส้นทางคดเคี้ยว เปิดคดเคี้ยวเป็นเส้นโค้งเปิดที่ไม่ได้ตัดเองและขยายอนันต์ที่ปลายทั้งสองซึ่งตัดเป็นเส้นnครั้ง คดเคี้ยวที่ถูกต้องอาจอธิบายได้ทั้งหมดตามคำสั่งของจุดตัดที่มันเข้าชม จำนวนของรูปแบบที่แตกต่างของจุดตัดกับnแยกคดเคี้ยวสามารถเป็นจำนวน meandric ที่ n ตัวอย่างเช่น n = 4: ตัวเลขสองสามตัวแรกของลำดับนี้คือ: 1, 1, 1, 2, 3, 8, 14, 42, 81, 262, 538, 1828, 3926, 13820, 30694, 110954... นี่คือOEIS ลำดับ A005316 ท้าทาย เขียนโปรแกรม / ฟังก์ชั่นที่ใช้เป็นจำนวนเต็มบวกnเป็น input และพิมพ์จำนวน meandric ที่ n ข้อมูลจำเพาะ ใช้กฎ I / O มาตรฐาน ช่องโหว่มาตรฐานจะต้องห้าม …

1
องค์ประกอบทั่วไปของรายการใน Python
นี่คือคำถามเคล็ดลับสำหรับการเล่นกอล์ฟใน Python ซึ่งอยู่ในหัวข้อหลัก ฉันกำลังมองหาวิธีที่สั้นที่สุดเพื่อให้ได้องค์ประกอบทั้งหมดที่พบบ่อยที่สุดของรายการใน Python ในวิธีที่สั้นที่สุด นี่คือสิ่งที่ฉันได้ลองสมมติว่ารายการอยู่ในตัวแปรที่เรียกว่าl: from statistics import* mode(l) การทำเช่นนี้จะเกิดข้อผิดพลาดหากมีหลายโหมด max(l,key=l.count) คืนนี้มีเพียง 1 รายการฉันต้องได้องค์ประกอบทั้งหมดที่มีค่ามากที่สุด from collections import* Counter(l).most_common() ส่งคืนรายการของ tuples ของ(element, count)เรียงตามจำนวน จากนี้ฉันสามารถดึงองค์ประกอบทั้งหมดที่มีจำนวนที่สอดคล้องกันเท่ากับครั้งแรก แต่ฉันไม่เห็นวิธีการเล่นกอล์ฟที่ดีกว่านี้มาก: from collections import* c=Counter(l).most_common() [s for s,i in c if i==c[0][1]] ฉันแน่ใจว่ามีวิธีที่สั้นกว่า! นอกจากนี้หากสามารถทำได้โดยไม่ต้องกำหนดค่าตัวแปรหรือใช้หลายครั้งlฉันสามารถเก็บรหัสที่เหลือไว้เป็นนิพจน์แลมบ์ดาเพื่อประหยัดไบต์ได้มากขึ้น แก้ไข: ตามข้อเสนอแนะของ @ Uriel เราสามารถทำได้: {s for s in l if …
13 code-golf  tips  python 

16
สร้างบันไดปราสาทให้ฉัน!
คุณจะได้รับสตริงที่ประกอบด้วย ASCII ที่พิมพ์ได้ (โดยไม่ต้องขึ้นบรรทัดใหม่) งานของคุณคือสร้างบันไดที่ดีสำหรับปราสาทของฉัน วิธีการสร้างบันไดที่ดี? ก่อนอื่นคุณควรจะได้การหมุนทั้งหมดของ String ตัวอย่างเช่นสตริงabcdมีการหมุนต่อไปนี้: abcd, bcda, cdab, dabc(อักขระแต่ละตัวจะถูกย้ายไปยังจุดสิ้นสุดจนกว่าเราจะไปถึงอักขระสุดท้าย) ตอนนี้เราวางแต่ละการหมุนไว้ด้านบนของกันและกัน: abcd bcda cdab dabc เราปีนขึ้นไปบนกำแพงตรงไม่ได้ดังนั้นเราต้องสร้างบันได นั่นหมายความว่าคุณควรเพิ่มช่องว่างก่อนหมุนแต่ละครั้งที่สอดคล้องกับดัชนีในรายการการหมุน: abcd bcda cdab dabc คุณต้องมีบันไดที่เชื่อมโยงไปยังอีกด้านหนึ่งของปราสาทของฉันดังนั้นคุณควรสร้างสิ่งหนึ่งดังต่อไปนี้ย้อนกลับการหมุนแต่ละครั้งและเพิ่มระยะห่าง: abcd dcba bcda adcb cdab badc dabccbad นี่คือcode-golfดังนั้นจึงใช้รหัสสั้นที่สุดเป็นไบต์ชนะและใช้กฎมาตรฐานสำหรับแท็ก กรณีทดสอบ อินพุต: abcd, เอาต์พุต: abcd dcba bcda adcb cdab badc dabccbad อินพุต: aaaa, เอาต์พุต: aaaa aaaa aaaa …

2
braids เหล่านี้เท่ากันหรือไม่
หากคุณยังไม่คุ้นเคยกับการถักเปียทฤษฎีผมขอแนะนำให้คุณอ่านนี้เป็นครั้งแรก คำถามนี้สมมติว่าคุณมีความคุ้นเคยกับแนวคิดในมือและอย่างน้อยคุณก็คุ้นเคยกับทฤษฎีกลุ่ม ขอให้เรานิยามσ nให้เป็นถักเปียที่เส้นที่n (หนึ่งดัชนี) จากด้านบนข้ามเหนือเส้นที่n + 1 th และσ n -จะเป็นอินเวอร์สของσ n (นั่นคือn + 1 th เกลียวข้ามเส้นที่n ) กลุ่มถักเปียB nถูกสร้างขึ้นโดย<σ 1 , σ 2 , σ 3 , . . , σ n-1 > ดังนั้นทุกถักเปียในB nสามารถเขียนเป็นผลิตภัณฑ์ของ bra-braids 1 การพิจารณาว่า braids สองตัวในกลุ่มเท่ากันนั้นไม่ใช่งานง่าย มันอาจจะเห็นได้ชัดสวยที่σ 1 σ 3 = σ 3 σ …

9
เลื่อน Caesars เลื่อน
ลักษณะ Caesar Shift เป็นรหัสตัวเลขแบบ monoalphabetic ที่ง่ายมากโดยที่ตัวอักษรแต่ละตัวจะถูกแทนที่ด้วยตัวอักษรหนึ่งตัวตามด้วยตัวอักษร ตัวอย่าง: Hello world! -> IFMMP XPSME! ( IBSLR, EGUFV!เป็นผลลัพธ์สำหรับความท้าทายที่แท้จริงนี่เป็นตัวอย่างของการเลื่อนที่ 1) อย่างที่คุณเห็นระยะห่างและเครื่องหมายวรรคตอนยังคงไม่ได้รับผลกระทบ อย่างไรก็ตามเพื่อป้องกันการเดาข้อความตัวอักษรทั้งหมดจะเป็นตัวพิมพ์ใหญ่ เมื่อขยับตัวอักษรกลับข้อความจะถูกถอดรหัสสะดวก แต่ยังง่ายต่อการถอดรหัสโดยบุคคลอื่นที่ไม่ควรรู้ว่าข้อความนั้นหมายถึงอะไร ดังนั้นเราจะช่วย Caesar นิดหน่อยโดยใช้รูปแบบขั้นสูงของรหัสของเขา: Self-shifting Caesar Shift ! ท้าทาย งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ให้สายอักขระเข้ารหัสเอาท์พุทสตริงเข้ารหัสที่สอดคล้องกับอินพุต Caesar Shift ขั้นสูงทำงานได้ดังนี้: 1. Compute letter differences of all adjacent letters: 1.1. Letter difference is computed like this: Position of 2nd …

10
ตัวเลขสมดุลสามชั้น
ลักษณะ เราพิจารณาจำนวนเต็มอย่างน้อย 3 หลักที่มีความสมดุลสามเท่าหากเมื่อแบ่งออกเป็นสามส่วนตัวเลขในทุกส่วนจะรวมกันเป็นจำนวนเดียวกัน เราแบ่งตัวเลขดังนี้: abcdefghi - Standard case: the number of digits is divisable through 3: abc def ghi abcdefgh - Number % 3 == 2: The outer groups are both assigned another digit abc de fgh (the inner group will have one digit less than both outer groups) …

2
สตริงวน, โปรแกรมที่ซ่อนอยู่
เขียนโปรแกรม 3 โปรแกรมที่ทำงานต่อไปนี้: ให้ A, B, C ซอร์สโค้ดของทั้งสามโปรแกรม; ถ้า A รัน BC ถูกสร้างขึ้นเป็นเอาต์พุต ถ้า B ทำงาน CA ผลิต ถ้า C วิ่ง AB ผลิต ดังนั้นแต่ละโปรแกรมจะเขียนสตริง (กรณืสำหรับแต่ละโปรแกรม) และซ่อนตัวเองจากมัน ข้อ จำกัด เพิ่มเติม แต่สำคัญ: ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม แต่ละโปรแกรมต้องมีความยาวอย่างน้อย 1 ไบต์ แต่ละโปรแกรมต้องเขียนด้วยภาษาที่แตกต่างกัน มันจะดีถ้าการส่งของคุณมีรูปแบบนี้: ภาษา A (ขนาด A) - ภาษา B (ขนาด B) - ภาษา C (ขนาด C) …
13 code-golf  quine 

4
รากที่สองจำนวน
งานจะเป็นดังนี้: ให้เป็นจำนวนเต็มบวกxและนายกn > xเอาท์พุทจำนวนเต็มบวกที่เล็กที่สุดเช่นว่าy (y * y) mod n = xส่วนที่สำคัญของคำถามนี้คือการ จำกัด เวลาที่ระบุด้านล่างซึ่งไม่รวมการแก้ปัญหากำลังดุร้าย ถ้าไม่มีค่าดังกล่าวแล้วรหัสของคุณควรเอาท์พุทyN กรณีทดสอบ (2, 5, N), (3, 5, N), (4, 5, 2), (524291, 1048583, N), (529533, 1048583, N), (534775, 1048583, 436853), (540017, 1048583, 73675), (536870913, 1073741827, 375394238), (542239622, 1073741827, 267746399), (547608331, 1073741827, N), (552977040, 1073741827, 104595351), (1099511627676, 1099511627791, …

22
เอาท์พุทหมายเลขระฆังที่ n
จำนวน Bell ( OEIS A000110 ) คือจำนวนของวิธีการแบ่งพาร์ติชันชุดของ n ที่มีป้ายกำกับ (ที่แตกต่างกัน) องค์ประกอบ หมายเลขเบลล์ที่ 0 ถูกกำหนดเป็น 1 ลองดูตัวอย่าง (ฉันใช้วงเล็บเหลี่ยมเพื่อแสดงเซตย่อยและวงเล็บปีกกาสำหรับพาร์ติชัน): 1: {1} 2: {[1,2]}, {[1],[2]} 3: {[1,2,3]}, {[1,2],[3]}, {[1,3],[2]}, {[2,3],[1]}, {[1],[2],[3]} มีหลายวิธีในการคำนวณหมายเลขเบลล์และคุณมีอิสระที่จะใช้หมายเลขใดก็ได้ จะอธิบายวิธีหนึ่งที่นี่: วิธีที่ง่ายที่สุดในการคำนวณตัวเลขเบลล์คือการใช้รูปสามเหลี่ยมจำนวนที่มีลักษณะคล้ายสามเหลี่ยม Pascal สำหรับค่าสัมประสิทธิ์ทวินาม หมายเลขเบลล์จะปรากฏบนขอบของสามเหลี่ยม เริ่มต้นด้วย 1 แต่ละแถวใหม่ในรูปสามเหลี่ยมถูกสร้างขึ้นโดยนำรายการสุดท้ายในแถวก่อนหน้าเป็นรายการแรกจากนั้นตั้งค่ารายการใหม่แต่ละรายการเป็นเพื่อนบ้านด้านซ้ายพร้อมกับเพื่อนบ้านด้านซ้ายบน: 1 1 2 2 3 5 5 7 10 15 15 20 27 …
13 code-golf  math 

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