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

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

19
หมายเลขนี้เป็นเลขเนินหรือไม่?
หมายเลขฮิลล์คือตัวเลขที่มีตัวเลขเหมือนกันในตัวแรกและตัวสุดท้ายแต่นั่นไม่ใช่ทั้งหมด ในจำนวนเนินตัวเลขแรกจะเพิ่มขึ้นอย่างเข้มงวดและตัวเลขสุดท้ายจะลดลงอย่างเคร่งครัด ตัวเลขที่ใหญ่ที่สุดสามารถทำซ้ำได้ นี่คือตัวอย่างของจำนวนเขา: 12377731 | 1237... | ...731 ^ same ^ | strictly increasing | strictly decreasing ---------+---------------------+--------------------- 12377731 ^^^ okay because largest digit can be repeated นี่ไม่ใช่ : 4588774 | ...8774 | ^^ not the largest digit | so this has to be strictly decreasing | but it's …

4
คุณจะได้รับสตริงเพื่อสร้างและเริ่มต้นด้วยสตริงที่ว่างเปล่าให้ใช้สตริงต่อท้ายและการโคลนต้นทุน
งานของคุณคือการสร้างสตริงเป้าหมายที่กำหนด เริ่มต้นด้วยสตริงที่ว่างเปล่าคุณจะต้องเพิ่มตัวอักษรลงไปจนกว่าสตริงของคุณจะเหมือนกับที่เราต้องการ คุณสามารถเพิ่มอักขระที่ส่วนท้ายของสตริงด้วย cost x หรือคุณสามารถโคลนสตริงด้วย cost y สิ่งที่เราต้องการคือวิธีที่ถูกที่สุดในการทำสิ่งนี้ กรณีทดสอบ targetString , appendcost, clonecost -> totalcost "bb", 1, 2 -> 2 "bbbb", 2, 3 -> 7 "xzxpcxzxpy", 10, 11 -> 71 "abababab", 3, 5 -> 16 "abababab", 3, 11 -> 23
17 code-golf  string 

19
ลำดับของตัวเลขที่เขียน
นี่คือลำดับที่น่ารำคาญพอสมควรซึ่งไม่ได้อยู่ในสารานุกรมออนไลน์ของจำนวนเต็มลำดับ เริ่มต้นด้วยลำดับที่ว่างเปล่าจากนั้นกำหนดแต่ละคำเป็นจำนวนอักขระที่ต้องใช้ในการเขียนออกมาเป็นภาษาอังกฤษตัวเลขทั้งหมดของลำดับนั้นจนถึงขณะนี้โดยไม่มีช่องว่าง * สำหรับการอ้างอิงจำนวนตัวอักษรของตัวเลขทั้งหมด (ฐานสิบ) ในภาษาอังกฤษคือ: zero one two three four five six seven eight nine 4 3 3 5 4 4 3 5 5 4 (ซึ่งเป็นจุดเริ่มต้นของทั้งA52360และA5589 ) สิ่งนี้ทำให้รายการแรกa(0)=0a(0)=0a(0) = 0เนื่องจากไม่มีเลขศูนย์ในลำดับที่ว่าง สิ่งนี้ทำให้รายการที่สองa(1)=4a(1)=4a(1) = 4เนื่องจากมันใช้อักขระสี่ตัวในการเขียน "ศูนย์" ซึ่งเป็นตัวเลขหลักเดียวเท่านั้น สิ่งนี้ทำให้รายการที่สามa(2)=8a(2)=8a(2) = 8เนื่องจากใช้อักขระเพิ่มอีกสี่ตัวในการเขียน "สี่" เพื่อรวมแปดเพื่อเขียน "zerofour" สิ่งนี้ทำให้รายการที่สี่a(3)=13a(3)=13a(3) = 13เนื่องจากใช้อักขระเพิ่มอีกห้าตัวในการเขียน "แปด" สำหรับผลรวมสิบสามในการเขียน "zerofoureight" นี่ทำให้รายการที่ห้าa(4)=21a(4)=21a(4) = …

19
ถอดรหัสการแสดงผล 7 ส่วน
คุณทุกคนอาจรู้จักจอแสดงผล 7 ส่วนซึ่งสามารถแสดงตัวเลขหลักทั้งหมดได้ตั้งแต่0…90...90\dots 9 : ท้าทาย เราพิจารณาเซA…GA…G\texttt{A}\dots\texttt{G}เท่านั้นงานของคุณคือการถอดรหัสตัวเลขเดียวที่กำหนดว่าจะเปิดเซ็กเมนต์ใด สิ่งนี้สามารถเข้ารหัสเป็นเลขจำนวนเต็ม 8 บิตนี่คือตารางของแต่ละหลักที่มีการแทนเลขฐานสองของพวกเขาและค่าน้อยที่สุดของ endian และ big-endian ที่สอดคล้องกัน: Digit0123456789.ABCDEFG01111110001100000110110101111001001100110101101101011111011100000111111101111011Little-endian126481091215191951121271230x7E0x300x6D0x790x330x5B0x5F0x700x7F0x7BBig-endian12612182158204218250142542220x7E0x0C0xB60x9E0xCC0xDA0xFA0x0E0xFE0xDEDigit.ABCDEFGLittle-endianBig-endian0011111101260x7E1260x7E100110000480x30120x0C2011011011090x6D1820xB63011110011210x791580x9E400110011510x332040xCC501011011910x5B2180xDA601011111950x5F2500xFA7011100001120x70140x0E8011111111270x7F2540xFE9011110111230x7B2220xDE \begin{array}{c|c|rr|rr} \text{Digit} & \texttt{.ABCDEFG} & \text{Little-endian} && \text{Big-endian} & \\ \hline 0 & \texttt{01111110} & 126 & \texttt{0x7E} & 126 & \texttt{0x7E} \\ 1 & \texttt{00110000} & 48 & \texttt{0x30} & 12 & \texttt{0x0C} \\ …
17 code-golf  decode 

28
รับสตริงคำนวณจำนวนคอลัมน์ที่สอดคล้องกับ
ใน Excel คอลัมน์มีช่วงตั้งแต่A-Z, AA,AB,AZ,BA,..,BZและอื่น ๆ จริงๆแล้วพวกเขาแต่ละคนยืนสำหรับตัวเลข แต่จะถูกเข้ารหัสเป็นสตริงตัวอักษร ในการท้าทายนี้คุณจะได้รับสตริงตัวอักษรและคุณจะต้องคำนวณคอลัมน์ที่สอดคล้อง การทดสอบบางอย่าง: 'A' ส่งคืน 1 (หมายถึงเป็นคอลัมน์แรก) 'B' ส่งคืน 2 'Z' ส่งคืน 26 'AA' ส่งคืน 27 'AB' ส่งคืน 28 'AZ' ส่งคืน 52 'ZZ' ส่งคืน 702 'AAA' ส่งคืน 703 คุณสามารถสันนิษฐานได้ว่าจะให้อักษรตัวใหญ่เท่านั้น ไบต์ที่สั้นที่สุดชนะ โชคดี!
17 code-golf  math 

7
แยกบิต!
เรากำหนดV(x)V(x)V(x)เป็นรายการของอำนาจที่แตกต่างกันของ222ว่าผลรวมไปxxxxยกตัวอย่างเช่นV(35)=[32,2,1]V(35)=[32,2,1]V(35)=[32,2,1] ] ตามแบบแผนอำนาจจะถูกจัดเรียงที่นี่จากมากไปหาน้อย แต่มันไม่ได้ส่งผลกระทบต่อตรรกะของความท้าทายหรือการแก้ปัญหาที่คาดหวัง งาน รับsemiprime NNN , แทนที่แต่ละเทอมในV(N)V(N)V(N)ด้วยรายชื่อของพลังของที่รวมกับเทอมนี้ในลักษณะที่การรวมกันของรายการย่อยที่เกิดขึ้นทั้งหมดเป็นหน้าปกที่แน่นอนของเมทริกซ์นิยามดังนี้M222MMM Mi,j=V(P)i×V(Q)jMi,j=V(P)i×V(Q)jM_{i,j}=V(P)_i \times V(Q)_j ที่และเป็นปัจจัยที่สำคัญของNQPPPQQQNNN นี่เป็นตัวอย่างที่เข้าใจได้ง่ายกว่ามาก ตัวอย่างที่ 1 สำหรับเรามี:N=21N=21N=21 V(N)=[16,4,1]V(N)=[16,4,1]V(N)=[16,4,1] และ V ( P ) = [ 4 , 2 , 1 ]P=7P=7P=7V(P)=[4,2,1]V(P)=[4,2,1]V(P)=[4,2,1] และ V ( Q ) = [ 2 , 1 ]Q=3Q=3Q=3V(Q)=[2,1]V(Q)=[2,1]V(Q)=[2,1] M=(844221)M=(842421)M=\pmatrix{8&4&2\\4&2&1} ในการเปลี่ยนให้เป็นหน้าปกที่แน่นอนของMเราอาจแบ่ง16เป็น8 + 4 + 4และ4เป็น2 + 2ในขณะที่1ไม่มีการเปลี่ยนแปลง …

18
การทำซ้ำที่ยาวที่สุดของตัวเลขหลักเดียว
ท้าทาย: รับจำนวนเต็มบวกเอาท์พุทการเรียงลำดับเลขหลักเดียวที่ยาวที่สุดที่เกิดขึ้นอย่างน้อยสองครั้งและมีขอบเขตของตัวเลขอื่น (หรือจุดเริ่มต้น / สิ้นสุดของจำนวนเต็ม) ตัวอย่าง: อินพุต: 7888885466662716666 การเรียงลำดับที่ยาวที่สุดของหลักเดียวคือ88888( 7[88888]5466662716666) ที่มีความยาว 5 อย่างไรก็ตามการเรียงลำดับนี้จะเกิดขึ้นเพียงครั้งเดียวในจำนวนเต็ม แต่ผลลัพธ์ของอินพุต7888885466662716666ควรเป็น6666( 78888854[6666]271[6666]) เนื่องจากเกิดขึ้น (อย่างน้อย) สองครั้ง กฏท้าทาย: ความยาวขององค์ประกอบจะมีความสำคัญมากกว่าจำนวนครั้งที่มันเกิดขึ้น (เช่นมีอินพุต8888858888866656665666เราเอาต์พุต88888( [88888]5[88888]66656665666; ความยาว 5 เกิดขึ้นสองครั้ง) และไม่ใช่666( 88888588888[666]5[666]5[666]; ความยาว 3 เกิดขึ้นสามครั้ง) หากความยาวของหลายองค์ประกอบเท่ากันเราจะแสดงผลลัพธ์ที่มีการนับเหตุการณ์มากที่สุด เช่นกับอินพุท3331113331119111เราเอาท์พุท111( 333[111]333[111]9[111]; ความยาว 3, เกิดขึ้นสามครั้ง), และไม่ใช่333( [333]111[333]1119111; ความยาว 3 ด้วย, แต่เกิดขึ้นสองครั้ง) หากจำนวนการเกิดและความยาวของหลายองค์ประกอบเท่ากันคุณสามารถส่งออกอย่างใดอย่างหนึ่งของพวกเขาหรือทั้งหมด (ในลำดับใด ๆ ) เช่นอินพุต777333777333, เอาต์พุตที่เป็นไปได้คือ: 777; 333; …

30
Sum
ให้n=42n=42n=42 (อินพุต) จากนั้นตัวหารคือ: 1, 2, 3, 6, 7, 14, 21, 42 กำลังสองแต่ละตัวหาร: 1, 4, 9, 36, 49, 196, 441, 1764 กำลังรวม (เพิ่ม): 2500 ตั้งแต่ดังนั้นเราจึงคืนค่าความจริง ถ้ามันไม่ใช่สแควร์ที่สมบูรณ์แบบให้คืนค่าที่ผิดพลาด50×50=250050×50=250050\times 50=2500 ตัวอย่าง : 42 ---> true 1 ---> true 246 ---> true 10 ---> false 16 ---> false นี่คือโค้ดกอล์ฟที่สั้นที่สุดในหน่วยไบต์สำหรับแต่ละภาษาที่ชนะ ขอบคุณ @Arnauld ที่ชี้ให้เห็นลำดับ: A046655

25
นับถอยหลังวันทำงาน
ฉันแค่มีความคิดอัจฉริยะที่ทำให้ชีวิตการทำงานง่ายขึ้น - นับถอยหลังสู่วันที่ระบุซึ่งนับเฉพาะวันทำงาน ภารกิจพื้นฐานคือการสร้างการนับถอยหลังถึงวันที่ระบุซึ่งรวมเฉพาะวันทำงานในการนับถอยหลัง ในฐานะที่นับวันทำงานจันทร์ , อังคาร , พุธ , พฤหัสบดีและศุกร์ อินพุตควรเป็นวันที่ที่ระบุในรูปแบบมาตรฐานยุโรป "ไม่เป็นทางการ" dd.MM.yyyyและต้องเป็นวันนี้หรือวันในอนาคต ผลลัพธ์ควรเป็นจำนวนวันที่เหลืออยู่เท่านั้น ในขณะที่มันเป็นcode-golfรหัสที่สั้นที่สุดชนะ กรณีทดสอบ: Today | Input | Output 10.12.2018 | 17.12.2018 | 5 02.10.2018 | 16.10.2018 | 10 หากฉันพลาดบางสิ่งในคำถามโปรดยกโทษให้ฉัน - เป็นคำถามแรกของฉัน :) แก้ไข: คุณสามารถใช้falseเป็นเอาต์พุตแทนที่จะเป็น0 <- แต่ไม่สวย ไม่จำเป็นต้องเคารพ DST
17 code-golf  date 

22
จัดเรียงตามสิ่งที่คู่หลักอธิบาย
ด้วยจำนวนเต็มบวกเราสามารถสร้างตัวเลขใหม่ที่อธิบายโดยตัวเลขที่ถูกจับเป็นคู่ (โดยนำ 0 เพิ่มสำหรับตัวเลขที่มีจำนวนหลักคี่) สำหรับเช่น: 1234 สามารถอ่านได้หนึ่ง 2, สาม 4s - ดังนั้นเอาต์พุตสำหรับ 1234 คือ 2444 643 มีจำนวนเลขคี่ดังนั้นศูนย์นำหน้าจึงถูกเพิ่มเพื่อทำให้เป็นเลขคู่ จากนั้นสามารถอ่าน 0643 เป็น: ศูนย์ 6s, สี่ 3s ดังนั้นผลลัพธ์จะเป็น 3333 (นี่คือOEIS A056967 ) ภารกิจ:กำหนดอาร์เรย์ของจำนวนเต็มบวกเรียงลำดับตามค่าที่อธิบายคู่หลักในลำดับจากน้อยไปหามาก การสั่งซื้อไม่สำคัญระหว่างหมายเลขอินพุตที่นำไปสู่ค่าเดียวกัน อินพุต : อาร์เรย์ / รายการ / ชุดของจำนวนเต็มบวก ไม่อนุญาตให้นำหน้าศูนย์ในอินพุตและป้อนเป็นสตริง / รายการของตัวเลข / ฯลฯ ไม่ได้รับอนุญาต - อินพุตควรใกล้เคียงกับจำนวนเต็ม / ตัวเลขเนื่องจากภาษาของคุณสามารถใช้งานได้ เอาท์พุท : …

15
ช่วยฉันด้วย polyrhythms ของฉัน
ฉันเป็นนักดนตรีและฉันต้องการ polyrhythms มากขึ้นในชีวิตของฉัน! Polyrhythm เกิดขึ้นในดนตรี (และโดยธรรมชาติ) เมื่อมีเหตุการณ์สองเหตุการณ์ (ตบมือ, โน้ต, หิ่งห้อยที่กระพริบ ฯลฯ ) กำลังเกิดขึ้นในสองช่วงเวลาที่แตกต่างกัน เหตุการณ์สองชนิดนั้นเกิดขึ้นหลายครั้งในช่วงเวลาเดียวกัน หากฉันแตะด้วยมือซ้ายสองครั้งและด้วยมือขวาของฉัน 3 ครั้งในเวลาเดียวกันดูเหมือนเล็กน้อยดังนี้ ------ R . . . L . . ยัติภังค์ที่ด้านบนแสดงถึงความยาวของรูปแบบ polyrthmic ซึ่งเป็นพหุคูณสามัญที่ต่ำที่สุดหรือ 2 และ 3 ซึ่งสามารถเข้าใจได้ว่าเป็นจุดที่รูปแบบซ้ำ นอกจากนี้ยังมี 'metarhythm' ซึ่งเป็นรูปแบบที่เกิดขึ้นเมื่อมือทั้งสองแตะที่: ------ R . . . L . . M . ... นี่คือ polyrhythm ธรรมดาและเรียบง่ายมากที่มีอัตราส่วน 3: …
17 code-golf 

7
บันไดหลักซ้อนกัน
รับจำนวนเต็มบวกและhเอาต์พุตคอลัมน์และWWwชั่วโมงชั่วโมงhชมWWwชั่วโมงชั่วโมงhแถวของข้อความตามที่อธิบายไว้ด้านล่าง แถวแรกเริ่มต้นด้วย 11 0วินาทีแถวที่สองมี 10 วินาทีแถว1ที่สามมีเก้า2แถวและลงแถวที่สิบด้วยสอง9วินาที ในแต่ละสิบแถวแรกหลังจากการเริ่มต้นของตัวเลขที่ต่อเนื่องกันเลขหลักถัดไปจะปรากฏขึ้นสองครั้งก่อนที่ตัวเลขต่ำสุดถัดไปที่สองจะปรากฏขึ้นสองครั้งด้วยรูปแบบนี้ซ้ำตลอดไป หากมีการเรียกใช้0s จำนวนหลักหลังจากนั้นเสมอ9 s แถวด้านล่างแถวที่สิบจะเหมือนกับแถวที่อยู่ด้านบนทันที แต่เลื่อนไปทางขวาทีละหนึ่ง ตัวเลขใหม่ที่ปรากฏขึ้นนั้นเหมือนกับตัวเลขหลักซ้ายสุดก่อนหน้าหากไม่ใช่ตัวเลขถัดจากอินสแตนซ์อื่นของตัวเอง ไม่เช่นนั้นมันจะเป็นตัวเลขสูงสุดถัดไป (หมุนเวียนจาก 9 กลับเป็น 0) องค์ประกอบแรกมีดังนี้:11 ×1011×1011\times10 00000000000 11111111110 22222222211 33333333221 44444443322 55555544332 66666554433 77776655443 88877665544 99887766554 นี่คือภาพที่มีข้อความสีเพื่อทำให้รูปแบบชัดเจนยิ่งขึ้น หากคุณต้องการสร้างคอลัมน์ / แถวให้น้อยลงคุณควรครอบตัดข้อความด้านบน หากคุณต้องการสร้างคอลัมน์ / แถวมากกว่านี้บันไดที่มีอยู่ควรจะขยายออกไป หากมีคอลัมน์ / แถวเพิ่มจำนวนบันไดที่เพิ่มขึ้นของตัวเลขติดต่อกันควรเลือกตัวเลขด้วยจำนวนเต็ม ดังนั้นสำหรับอินพุตเอาต์พุตควรเป็น( 15 , 13 )(15,13)(15,13) 000000000009988 111111111100998 222222222110099 333333332211009 444444433221100 …

15
แยกรายการออกเป็นชิ้นขนาด แต่ไม่นับรายการที่ล้มเหลวในการสรุป
แรงจูงใจ : บางครั้งบางรายการในรายการจะไม่นับรวมกับยอดรวมของคุณ ตัวอย่างเช่นการนับจำนวนผู้โดยสารเครื่องบินในแถวที่ทารกนั่งอยู่บนตักของผู้ปกครอง ท้าทาย : เขียนโปรแกรมในการแยกรายชื่อของรายการเป็นชิ้น แต่ละอัน (ยกเว้นอาจเป็นครั้งสุดท้าย) มีขนาดเท่ากันซึ่งขนาดถูกกำหนดเป็นจำนวนรายการที่ผ่านฟังก์ชันเพรดิเคต กฎ : โปรแกรมของคุณต้องใช้ รายการของรายการ ขนาดก้อนจำนวนเต็มบวก ฟังก์ชันเพรดิเคต (รับไอเท็มและส่งคืนจริงหรือเท็จ) คุณต้องส่งคืนรายการอินพุตแยกเป็นชิ้น ๆ แต่ละอันคือรายการของรายการ โดยรวมแล้วรายการจะต้องอยู่ในลำดับเดียวกันโดยไม่มีใครสนใจ จำนวนรายการที่ผ่านเพรดิเคตในแต่ละก้อน (ยกเว้นอาจเป็นรายการสุดท้าย) ควรตรงกับขนาดของก้อนข้อมูลเข้า รายการที่ล้มเหลวเพรดิเคตไม่ควรนับรวมกับขนาดนี้ รายการที่ล้มเหลวของกริยาคือ ยังคงรวมอยู่ในกลุ่มเอาต์พุต จัดสรรให้กับชิ้นแรกสุดในกรณีที่ชิ้นเป็น "เต็ม" แต่รายการถัดไปเป็นรายการที่ล้มเหลวในเพรดิเคต ดังนั้นชิ้นสุดท้ายอาจไม่เพียง แต่ประกอบด้วยรายการที่ล้มเหลวของเพรดิเคต ก้อนสุดท้ายอาจมีขนาดน้อยกว่าขนาดก้อนเนื่องจากรายการทั้งหมดได้รับการพิจารณา ตัวอย่างที่ไม่ครบถ้วนสมบูรณ์: ตัวอย่างที่ง่ายที่สุดคือการพิจารณา1และ0s x ==> x > 0ที่ฟังก์ชั่นการวินิจฉัยคือ ในกรณีนี้sumแต่ละอันจะต้องตรงกับขนาดของก้อน รายการ: [], ขนาด: 2, เพรดิเคต: x > 0-> อย่างใดอย่างหนึ่ง[]หรือ[[]] …

3
กบเดินตาย
บทนำ จอนนี่ต้องการเล่น Frogger อย่างไรก็ตามเขาไม่ดีมาก ในความเป็นจริงเขาจะพยายามก้าวไปข้างหน้าและหลังจากแพลตฟอร์มได้ย้าย ค้นหาว่ากบของจอนนี่สามารถไปถึงจุดสิ้นสุดของเส้นทางหรือว่ามันตายไปแล้วหรือไม่ ท้าทาย โปรแกรมจะได้รับเป็นอินพุตของตาราง Frogger ที่ประกอบด้วย0s และ1s ด้วยรูปแบบต่อไปนี้: ตารางจะมีความกว้างและความยาวแบบสุ่มและอย่างน้อย 3x3 1 แสดงถึงแพลตฟอร์ม 0 แสดงถึงน้ำ F แสดงถึงตำแหน่งเริ่มต้นของกบ ทุกบรรทัดแรกและสุดท้ายของกริดจะถูกแต่งโดย1s เท่านั้นและจะไม่ย้ายและกบFจะถูกวางที่สุ่มในบรรทัดสุดท้าย เลเยอร์กลางทุกอันจะมีการเคลื่อนไหวอยู่เสมอและจะมี<หรือ>ในตอนท้ายของทุกบรรทัดที่ระบุว่ามันเลื่อนไปทางซ้ายหรือขวา อนุญาตให้ใช้การแทนที่สัญลักษณ์เหล่านี้ด้วยของคุณเองตราบใดที่สัญลักษณ์เหล่านี้มีความแตกต่างกันและคุณระบุการแทนที่ในคำตอบของคุณ อินพุตอาจอยู่ในรูปแบบที่เข้ากันได้ (สตริงที่มีตัวแบ่งบรรทัดอาร์เรย์ของสตริงอาร์เรย์ของอักขระ ... ) กฏท้าทาย ทุกเทิร์นทุกแพลทฟอร์มจะเลื่อนหนึ่งช่องขึ้นอยู่กับทิศทางที่ระบุโดย<หรือ>เครื่องหมาย แพลตฟอร์มปรากฏขึ้นอีกครั้งที่อีกด้านหนึ่งของตารางถ้าพวกเขาถูกผลักออกจาก "หน้าจอ" หากกบอยู่บนแท่นเคลื่อนที่มันจะเคลื่อนที่ไปพร้อมกับมัน หลังจากนั้นกบจะกระโดดหนึ่งตารางไปยังแถวบนสุด กบจะย้ายทุกเทิร์น กบจะตายหากมันกระโดดในน้ำ ( 0) หรือสัมผัสกับด้านข้างของตารางพร้อมกับแท่นเคลื่อนที่ โปรแกรมของคุณต้องส่งออกค่าความจริงหากกบยังมีชีวิตอยู่และค่าที่ผิดพลาดเป็นอย่างอื่น นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานใช้ ตัวอย่าง ตัวอย่างที่ 1 อินพุต 11111 00111> 00101< 1F111 …

12
ความยาวเซกเมนต์ของชุดคันทอร์ทั่วไป
ปัญหา ลองกำหนดคันทอร์ทั่วไปที่ตั้งค่าโดยการลบเซกเมนต์ความยาวแบบมีเหตุผลบางส่วนออกจากช่วงกลางของช่วงเวลาทั้งหมดที่ยังไม่ถูกลบโดยเริ่มจากช่วงเวลาต่อเนื่องเดียว กำหนดความยาวสัมพัทธ์ของเซกเมนต์ที่จะลบหรือไม่และจำนวนการวนซ้ำที่ต้องทำปัญหาคือการเขียนโปรแกรมหรือฟังก์ชันที่เอาต์พุตความยาวสัมพัทธ์ของเซกเมนต์ที่มีหรือไม่ถูกลบหลังจากnการวนซ้ำ ตัวอย่าง: ลบซ้ำอันดับที่ 4 และ 6 อย่างซ้ำ ๆ การป้อนข้อมูล: n - จำนวนการวนซ้ำการทำดัชนีเริ่มต้นจาก 0 หรือ 1 l- รายการความยาวเซกเมนต์เป็นจำนวนเต็มบวกที่มีgcd(l)=1และความยาวคี่แทนความยาวสัมพัทธ์ของส่วนต่าง ๆ ที่คงอยู่หรือถูกลบเริ่มต้นจากเซกเมนต์ที่ไม่ถูกลบ เนื่องจากความยาวของรายการเป็นเลขคี่กลุ่มแรกและกลุ่มสุดท้ายจะไม่ถูกลบ ตัวอย่างเช่นสำหรับคันทอร์ปกติตั้งค่านี้จะเป็น [1,1,1] สำหรับหนึ่งในสามที่อยู่หนึ่งในสามที่จะถูกลบและอีกหนึ่งในสามที่ไม่ เอาท์พุท: รายการจำนวนเต็มo, gcd(o)=1ของความยาวส่วนญาติในnการทำซ้ำ TH lเมื่อกลุ่มที่ไม่ได้ถูกลบในการทำซ้ำก่อนหน้านี้จะถูกแทนที่ด้วยสำเนาลดขนาดลงของรายการ [1]ย้ำเป็นเพียงครั้งแรก คุณสามารถใช้วิธีการแสดงผลที่ไม่คลุมเครือใด ๆได้ ตัวอย่าง n=0, l=[3,1,1,1,2] → [1] n=1, l=[3,1,1,1,2] → [3, 1, 1, 1, 2] n=2, l=[3,1,1,1,2] → [9,3,3,3,6,8,3,1,1,1,2,8,6,2,2,2,4] …

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