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

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

12
พื้นที่จุดตัดวงกลม
คำอธิบาย: ให้xและyตำแหน่งของวงกลมสองวงพร้อมกับพวกradiiมันออกพื้นที่จุดตัดของวงกลมทั้งสอง อินพุต: คุณจะได้รับข้อมูลต่อไปนี้: array 1 = x and y positions of circle a array 2 = x and y positions of circle b radius = radii of the two congruent circles วิธีการป้อนข้อมูล: ([12 , 20] , [20 , 18] , 12) ---> two array and number ([12 , 20 …

11
ช่วยฉันเล่นทรัมเป็ต
ทรัมเป็ตเป็นเครื่องดนตรี aerophone valved B♭มักจะตั้งค่ายอยู่ เสียงจะเกิดขึ้นเมื่อผู้เล่นสั่นริมฝีปากเพื่อไล่อากาศออกจากเครื่องดนตรี การสั่นสะเทือนนั้นเกิดขึ้นได้จากการตั้งปากในลักษณะเฉพาะเรียกว่าการสัมผัส การตกแต่งที่แตกต่างกันด้วยริมฝีปากที่แน่นหรือแน่น นอกจากนี้แต่ละวาล์วในทรัมเป็ตยังเปลี่ยนระดับเสียงของเครื่องดนตรี เมื่อหดหู่วาล์วจะปิดทางเดินภายในท่อของเครื่องมือทำให้อากาศไหลผ่านทางที่ยาวขึ้นซึ่งจะลดระดับเสียงของเสียงต้นฉบับ สำหรับจุดประสงค์ของการท้าทายนี้เราจะพิจารณาถึงมาตรฐานB♭ทรัมเป็ตซึ่งวาล์วตัวแรกลดระดับเสียงลงด้วยขั้นตอนเต็มขั้นที่สองจะลดระดับเสียงลงครึ่งก้าวและอีกระดับหนึ่งลดระดับเสียงลงหนึ่งและหนึ่ง ครึ่งก้าว ความท้าทาย ความท้าทายของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่กำหนดอินพุตสองตัวembouchureและvalvesกำหนดระดับเสียงของโน้ตที่กำลังเล่น สำหรับจุดประสงค์ของการท้าทายบันทึกย่อจะเป็นไปตามลำดับ: B♭, B, C, C♯, D, E♭, E, F, F♯, G, G♯, A. กฎระเบียบ I / O สามารถนำ / รับในวิธีการที่เหมาะสม ช่องโหว่มาตรฐานใช้ คุณได้รับอนุญาตให้ใช้bและ#แทน♭และ♯ถ้าคุณต้องการ อินพุตvalvesสามารถถูกใช้เป็นรายการของวาล์วที่หดหู่ ( 1, 3) หรือรายการบูลีน ( 1, 0, 1) นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาจะชนะ กรณีทดสอบ: Valves ในกรณีทดสอบเหล่านี้จะได้รับเป็นรายการบูลีนที่ …
14 code-golf  music 

1
Regex สำหรับผลคูณของ 9
เป็นการง่ายที่จะอธิบายเครื่องจักรสถานะ จำกัด ที่รับรู้การทวีคูณของ 9: ติดตามผลรวมหลัก (mod 9) และเพิ่มตัวเลขใดก็ตามที่ยอมรับต่อไป FSM เช่นนี้มีเพียง 9 รัฐง่ายมาก! โดยการเทียบเท่าระหว่าง FSM-recognizability และภาษาปกติมีการแสดงออกปกติสำหรับทวีคูณของ 9 อย่างไรก็ตามการแสดงออกปกติดังกล่าวใด ๆ ที่เป็น ... นานมาก ... เช่นเดียวกับในคำสั่งของกิกะไบต์ มีตัวอย่างการทำงานที่https://www.quaxio.com/triple/สำหรับการทวีคูณของ 3 ที่ด้านล่างของหน้าผู้เขียนมีวิธีแก้ปัญหา "มือที่เหมาะที่สุด" ที่สั้นกว่าการแปลงที่ไร้เดียงสาเล็กน้อย FSM เป็น regex ความท้าทาย: คุณต้องสร้าง regex เพื่อตรวจสอบทวีคูณของ 9 เนื่องจากคาดว่า regex ดังกล่าวจะยาวมากฉันขอให้คุณจัดเตรียมโปรแกรมที่สามารถพิมพ์ regex ของคุณได้ (หากคุณต้องการให้ regex ทั้งหมดอาจโฮสต์ที่อื่นและเชื่อมโยงที่นี่!) คุณต้องสามารถบอกจำนวนตัวอักษรที่แน่นอนของผลลัพธ์ของโปรแกรมของคุณได้ดังนั้นให้มีโปรแกรมที่พยายาม regexes ทั้งหมดจนถึงความยาวที่แน่นอนจนกว่าจะพบว่าตัวที่ใช้งานได้นั้นไม่สามารถยอมรับได้เว้นแต่ว่ามันจะเร็วพอที่คุณจะทำได้ เรียกใช้ให้เสร็จสมบูรณ์และให้ความยาว regex กับเรา! …

9
ตรวจสอบชุดผลต่างแบบวน
ชุดวงจรผลต่างคือชุดของจำนวนเต็มบวกที่มีคุณสมบัติเฉพาะ: อนุญาตnเป็นจำนวนเต็มที่มากที่สุดในชุด อนุญาตrเป็นจำนวนเต็มใด ๆ (ไม่จำเป็นต้องอยู่ในชุด) มากกว่า 0 n/2แต่น้อยกว่าหรือเท่ากับ อนุญาตkเป็นจำนวนของการแก้ปัญหาเพื่อ(b - a) % n = rที่aและbเป็นสมาชิกของชุดใด ๆ (a,b)วิธีการแก้ปัญหาแต่ละคนเป็นคู่ที่ได้รับคำสั่ง (โปรดทราบว่า modulo รุ่นนี้ทำให้ตัวเลขติดลบเป็นบวกโดยเพิ่มnลงไปซึ่งแตกต่างจากการใช้งานในหลายภาษา) ท้ายที่สุดถ้าหากว่านี่เป็นชุดความแตกต่างแบบวนรอบค่าของkไม่ขึ้นอยู่กับการเลือกของrคุณ นั่นคือค่าทั้งหมดของการrให้จำนวนเดียวกันของการแก้ปัญหาเพื่อความสอดคล้องข้างต้น สิ่งนี้สามารถแสดงได้ด้วยตัวอย่างต่อไปนี้: Cyclic difference set: {4,5,6,8,9,11} 0 < r <= 11/2, so r = 1,2,3,4,5 r=1: (4,5) (5,6) (8,9) r=2: (4,6) (6,8) (9,11) r=3: (5,8) (6,9) (8,11) r=4: (4,8) …

18
ค้นหาการจัดกลุ่มตัวเลขที่เกี่ยวข้อง
เมื่อเร็ว ๆ 25,121นี้ชื่อเสียงของฉันคือ ฉันสังเกตเห็นว่าการจัดกลุ่มตัวเลขแต่ละหลัก (เช่นตัวเลขคั่นด้วยเครื่องหมายจุลภาค) เป็นรูปสี่เหลี่ยมจัตุรัสที่สมบูรณ์แบบ ความท้าทายของคุณคือให้เป็นจำนวนเต็มที่ไม่ใช่ลบNและฟังก์ชันกล่องดำ แบบบูล unary f : Z * → Bให้ค่าจริงถ้าแต่ละค่าfนำไปใช้กับการจัดกลุ่มหลักของNคือความจริงและเท็จเป็นอย่างอื่น หนึ่งสามารถค้นหาการจัดกลุ่มหลักโดยแยกหมายเลขออกเป็นกลุ่ม 3 โดยเริ่มจากด้านขวา กลุ่มซ้ายสุดอาจมี 1, 2 หรือ 3 หลัก ตัวอย่างบางส่วน: 12398123 -> 12,398,123 (3 digit groupings) 10 -> 10 (1 digit grouping) 23045 -> 23,045 (2 digit groupings) 100000001 -> 100,000,001 (3 digit groupings) 1337 …

12
ต่อกันเป็น Palindrome จาก Substrings Palindromic
รับสตริงlค้นหาสตริงย่อย palindromic ทั้งหมดpของl(รวมถึงรายการซ้ำและสตริงอักขระเดี่ยว) ถัดไปจัดเรียงสตริงย่อยทั้งหมดใหม่pให้เป็นพาลินโดรมที่ถูกต้อง (อาจมีคำตอบที่ถูกต้องหลายข้อ) ถ้ามันเป็นไปไม่ได้ที่จะจัดเรียงใหม่pใน palindrome เดียวโปรแกรมของคุณอาจมีพฤติกรรมที่ไม่ได้กำหนด (ข้อผิดพลาดสแต็ค - ล้น, ออก, แขวน / / ฆ่า John Dvorak ฯลฯ โดยไม่ได้ตั้งใจ) ตัวอย่าง กรณีทดสอบที่ถูกต้อง l = anaa p = ['a', 'n', 'a', 'a', 'aa', 'ana'] result = anaaaaana or aanaaanaa or aaananaaa l = 1213235 p = ['1', '2', '1', '3', '2', …

14
สร้างเมทริกซ์ย่อยทั้งหมดของขนาดที่กำหนด
คุณจะได้รับเมทริกซ์จตุรัสของจำนวนเต็มMและอีกจำนวนเต็มบวกnอย่างเคร่งครัดมีขนาดเล็กกว่าขนาดของM งานของคุณคือการสร้างทุกตารางย่อยของเมทริกซ์Mขนาดn สำหรับวัตถุประสงค์ของการท้าทายนี้เป็นตารางย่อยเมทริกซ์เป็นกลุ่มที่อยู่ติดกันแถวและคอลัมน์ที่มีอยู่ในM รูปแบบอินพุต / เอาต์พุต คุณมีอิสระที่จะเลือกรูปแบบที่เหมาะสมอื่น ๆ เหล่านี้เป็นเพียงตัวอย่าง อินพุต เมทริกซ์ในประเภทเมทริกซ์เนทีฟ (หากภาษาของคุณมี) อาร์เรย์ 2 มิติ (อาร์เรย์ 1D ของอาร์เรย์แต่ละแถวสอดคล้องกับหนึ่งแถว / หนึ่งคอลัมน์) อาร์เรย์ 1D (เนื่องจากเมทริกซ์เป็นจตุรัสเสมอ) สตริง (คุณเลือกการเว้นวรรค แต่โปรดอย่าใช้สิ่งนี้ในทางที่ผิด) ฯลฯ เอาท์พุต เมทริกซ์ของเมทริกซ์ อาเรย์ 4D ที่แต่ละองค์ประกอบ (รายการ 3D) แสดงเมทริกซ์ย่อยในแถว / คอลัมน์ อาร์เรย์ 3 มิติที่แต่ละองค์ประกอบ (รายการ 2D) แสดงเมทริกซ์ย่อย การแทนค่าสตริงของเมทริกซ์ย่อยที่ได้เป็นต้น รายละเอียด คุณอาจเลือกที่จะใช้ขนาดของMเป็นอินพุตเช่นกัน มันมีการประกันเพื่อมีอย่างน้อย2 การวางแนวของเอาต์พุตนั้นโดยพลการ: คุณอาจเลือกที่จะเอาท์พุทเมทริกซ์ย่อยเป็นรายการของคอลัมน์หรือรายการของแถว แต่ตัวเลือกของคุณจะต้องสอดคล้องกัน …

9
ค้นหา Maxima ท้องถิ่นและ Minima
คำนิยาม maxima และ minima ของฟังก์ชั่นที่กำหนดเป็นค่าที่ใหญ่ที่สุดและน้อยที่สุดของฟังก์ชั่นทั้งในช่วงที่กำหนดหรือภายในโดเมนทั้งหมดของฟังก์ชั่น ท้าทาย ความท้าทายคือการหาสิ่งที่สูงสุดในท้องถิ่นและต่ำสุดของฟังก์ชันพหุนามให้ใช้วิธีการใด ๆ ที่คุณอาจชอบ ไม่ต้องกังวลฉันจะพยายามทำให้ดีที่สุดเพื่ออธิบายการท้าทายและทำให้มันง่ายที่สุดเท่าที่จะทำได้ อินพุตจะมีสัมประสิทธิ์ทั้งหมดของพหุนามตัวแปรเดียวไม่ว่าจะเป็นการลดหรือเพิ่มลำดับพลังงาน (ขึ้นอยู่กับคุณ) ตัวอย่างเช่น, [3,-7,1] จะเป็นตัวแทนของ 3x2 - 7x + 1 = 0 [4,0,0,-3] จะเป็นตัวแทนของ 4x3-3=0. วิธีการแก้ปัญหา (ใช้อนุพันธ์) ตอนนี้ขอบอกว่าการป้อนข้อมูลของเราคือ[1,-12,45,8]ซึ่งเป็นอะไร แต่ฟังก์ชั่นx3 - 12x2 + 45x + 8 ภารกิจแรกคือการหาอนุพันธ์ของฟังก์ชันนั้น เนื่องจากเป็นฟังก์ชันพหุนามดังนั้นจึงเป็นเรื่องง่ายที่จะทำ อนุพันธ์ของมี เงื่อนไขคงที่ใด ๆ ที่มีอยู่จะถูกคูณด้วย นอกจากนี้หากมีการบวก / ลบคำศัพท์อนุพันธ์ของพวกเขาจะถูกเพิ่มหรือลบตามลำดับ จำไว้ว่าอนุพันธ์ของค่าตัวเลขคงที่ใด ๆ คือศูนย์ นี่คือตัวอย่างบางส่วน:xnn*xn-1xn x3 -> …

4
ส่วนล่างของนาฬิกาทราย
ท้าทาย: อินพุต:สามจำนวนเต็ม: ความยาวขอบด้านล่าง; ปริมาณเริ่มต้นของเม็ดทราย ดัชนี เอาท์พุท:เอาท์พุทสถานะของส่วนด้านล่างของนาฬิกาทรายที่ดัชนีที่กำหนดขึ้นอยู่กับความยาวขอบด้านล่างที่กำหนดและปริมาณของเม็ดทราย กฏท้าทาย: เราจำลองเม็ดทรายที่มีตัวเลข 1-9 เราใส่จำนวนเม็ดทรายที่เหลืออยู่ในปัจจุบันที่ด้านบนตรงกลางตามด้วยอักขระเดี่ยวที่คุณเลือก (ยกเว้นตัวเลข, ช่องว่างและบรรทัดใหม่; เช่น-) บนบรรทัดด้านล่าง เมื่อนาฬิกาทรายถูกเติมเต็มเราจะเติมมันต่อแถวหนึ่งหลักในแต่ละครั้ง เมื่อทรายสามารถไปทางซ้ายหรือทางขวาเราจะไปทางขวาเสมอ (เช่นเดียวกับการปรับสมดุลของเม็ดทรายที่เหลืออยู่เหนือแก้วชั่วโมง) เมื่อเราไปถึง 9 มันเต็มแล้วและเราไม่สามารถใส่ทรายอีกต่อไปในสถานที่เฉพาะในนาฬิกาทราย จำนวนเม็ดทรายที่เหลือจะถูกจัดเรียงอย่างถูกต้องเสมอ เมื่อด้านล่างของนาฬิกาทรายลดลงครึ่งหนึ่งหรือเม็ดทรายเหลือถึง 0 เราจะไปต่อไม่ได้อีกและนี่จะเป็นผลลัพธ์สำหรับดัชนีทั้งหมดที่อยู่นอกเหนือจุดนี้ อนุญาตทั้งดัชนี 0 หรือดัชนี 1 ดัชนีและโปรดระบุสิ่งที่คุณใช้ในคำตอบของคุณ ช่องว่างต่อท้ายและนำหน้าและต่อท้ายเดียวหรือนำขึ้นบรรทัดใหม่เป็นทางเลือก คุณได้รับอนุญาตให้ใช้อักขระอื่นแทนศูนย์เพื่อเติมเต็มช่องว่างของส่วนล่างของนาฬิกาทราย (ไม่รวมตัวเลขบรรทัดใหม่หรืออักขระที่คุณใช้เป็นคอ) หากคุณเลือกที่จะแสดง ความยาวขอบด้านล่างจะเป็นเลขคี่เสมอ ความยาวขอบด้านล่างจะเป็น>= 3; และปริมาณของเม็ดทราย>= 0 หากคุณต้องการให้คุณพิมพ์สถานะทั้งหมดและรวมถึงดัชนีที่กำหนดด้วย คุณสามารถสันนิษฐานได้ว่าดัชนี (0 ดัชนี) จะไม่ใหญ่กว่าจำนวนเม็ดทรายทั้งหมด (ดังนั้นเมื่อมีทราย 100 เม็ดดัชนี 100 คือดัชนีป้อนเข้าที่ถูกต้องสูงสุด) ดัชนีแรก (0 …

14
เปรียบเทียบสองรายการตามค่าสูงสุด
รับรายการที่แตกต่างกันสองรายการของจำนวนเต็มที่ไม่เป็นลบให้ส่งคืนรายการที่มีค่าสูงสุดสูงสุด (เช่น[4, 2], [3, 3, 1] -> [4, 2]) หากทั้งคู่มีค่าสูงสุดเท่ากันให้ส่งคืนรายการที่มีอินสแตนซ์มากที่สุดของค่าสูงสุดนี้ (เช่น[4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4]) หากหลังจากการเปรียบเทียบเหล่านี้พวกเขาเท่าเทียมกันให้ทำการเปรียบเทียบแบบเดียวกัน แต่ใช้ไอเท็มสูงสุดถัดไป (เช่น[2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1]) หากหลังจากการเปรียบเทียบทั้งหมดนี้พวกเขายังคงมีความเท่าเทียมกันเอาท์พุทรายการที่ยาวขึ้น (เช่น[4, 3, 2, 1, 0], [1, 2, 3, 4] …

15
สร้างชุดค่าผสมที่รวมกันเป็นค่าเป้าหมาย
ท้าทาย สมมติว่าคุณมีรายการตัวเลขและค่าเป้าหมาย ค้นหาชุดของการรวมกันทั้งหมดของตัวเลขของคุณซึ่งรวมถึงค่าเป้าหมายและส่งกลับเป็นดัชนีรายการ อินพุตและเอาต์พุต อินพุตจะใช้รายการของตัวเลข (ไม่จำเป็นต้องซ้ำกัน) และหมายเลขการสรุปเป้าหมาย เอาท์พุทจะเป็นชุดของรายการที่ไม่ว่างเปล่าแต่ละรายการมีค่าจำนวนเต็มที่สอดคล้องกับตำแหน่งของค่าในรายการอินพุตดั้งเดิม ตัวอย่าง Input: values = [1, 2, 1, 5], target = 8 Output: [ [0,1,3], [1,2,3] ] Input: values = [4.8, 9.5, 2.7, 11.12, 10], target = 14.8 Output: [ [0,4] ] Input: values = [7, 8, 9, -10, 20, 27], target = …

16
Mod 2 สัมประสิทธิ์ Multinomial
quintopia ได้โพสต์ที่นี่ความท้าทายในการคำนวณค่าสัมประสิทธิ์ multinomial (ข้อความบางส่วนที่นี่ถูกคัดลอกมาจากที่นั่น) มีอัลกอริทึมที่สนุกในการคำนวณสัมประสิทธิ์ multinomial mod 2 รับรายการตัวเลขk 1 , k 2 , ... , k m , เอาท์พุทที่เหลือของสัมประสิทธิ์ multinomial: ลดลง mod 2. ต่อไปนี้ขั้นตอนวิธีการนี้ไม่ได้อย่างมีประสิทธิภาพ: สำหรับแต่ละk ผมคำนวณการขยายตัวของฐานk ผม , ที่อยู่, หาIJเช่นกันว่าIJเป็น 1 หรือ 0 หากมีเจใด ๆ ดังกล่าวที่RJ = a SJ = 1สำหรับ R ≠ s แล้วเกี่ยวข้อง mod 2 ค่าสัมประสิทธิ์พหุนามคือ 0 …

7
พวกเขาจะเป็นวันเดียวกันของสัปดาห์ได้ไหม?
ท้าทาย ให้เป็นจำนวนเต็มไม่เป็นลบเอาท์พุทไม่ว่ามันจะเป็นไปได้สำหรับสองวัน (ของปฏิทินเกรโกเรียน) แตกต่างกันหลายปีที่ผ่านมาเพื่อแบ่งปันวันของสัปดาห์ ปีจะถือว่าเป็นปีอธิกสุรทินทั้งสองถ้าหารด้วย 4 แต่ไม่ใช่ 100 หรือหารด้วย 400 ผลลัพธ์อาจเป็น: ความเท็จ / ความจริง (ในทิศทางใด) สองค่าที่แตกต่างกัน ค่าหนึ่งที่แตกต่างและหนึ่งเป็นสิ่งอื่น โดยรหัสส่งคืนโปรแกรม โดยสำเร็จ / ผิดพลาด ด้วยวิธีการอื่นที่สมเหตุสมผล - เพียงแค่ถามว่าคุณสงสัยหรือไม่ว่าอาจเป็นการโต้เถียง แต่ไม่ได้สองชุดที่ไม่แตกต่างของค่ายกเว้น falsey / truthy (เช่นนี้จะช่วยให้ไม่มี-op) รายละเอียด นี่คือว่าอินพุตเป็นสมาชิกของลำดับ OEIS A230995หรือไม่ สมาชิก: 0, 5, 6, 7, 11, 12, 17, 18, 22, 23, 28, 29, 33, 34, 35, 39, …

6
จับคู่นาฬิกาโดดเด่น
บทนำ: ที่บ้านเรามีนาฬิกาที่นัดเวลาตามที่ระบุไว้ในแต่ละชั่วโมง แต่ก็นัดกันทุกครึ่งชั่วโมง ดังนั้นจาก 0:01 ถึงและรวมถึง 12:00 มันนัดในลำดับนี้: 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12 ท้าทาย: ได้รับจำนวนเต็มออกรายการของกรอบเวลาที่นัดรวมเท่ากับn nนอกจากนี้ให้เริ่มอย่างน้อย 1 นาทีก่อนกำหนดกรอบเวลานี้และสิ้นสุดอย่างน้อย 1 นาทีหลังจากกรอบเวลานี้ (และไม่เกิน 29 นาที) ตัวอย่างเช่นถ้าอินพุตn=8เอาต์พุตอาจเป็น: [00:59-03:01, 01:29-03:31, 02:59-04:01, 05:29-06:31, 06:29-07:01, 06:59-07:31, 07:59-08:01] …

10
ย่อยสลายเป็นจำนวนเฉพาะ
กำหนดจำนวนเต็มnส่งคืนจำนวนวิธีที่ n สามารถเขียนเป็นรายการของจำนวนเฉพาะ ยกตัวอย่างเช่น2323สามารถเขียนเป็น(2,3,23), (23,23)หรือ(2,3,2,3)หรือดังนั้นคุณจะเอาท์พุท(23,2,3) หากไม่สามารถเขียนในลักษณะนี้คุณควรเอาท์พุท40 จำนวนเฉพาะเช่น019หรือ00000037เป็นจำนวนเฉพาะที่ถูกต้องสำหรับปัญหานี้ กรณีทดสอบ: 5 -> 1 55 -> 1 3593 -> 4 (359 and 3, or 3 and 593, or 3 and 59 and 3, or 3593) 3079 -> 2 (3 and 079, or 3079) 119 -> 0 5730000037 -> 7 (5,7,3,000003,7, 5,7,3,0000037, 5,73,000003,7, 5,73,0000037, …

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