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

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

30
วิธีที่สั้นที่สุดเพื่อกลับจำนวน
เขียนฟังก์ชั่น (หรือโปรแกรมย่อยเทียบเท่า) เพื่อยอมรับอาร์กิวเมนต์ค่าจำนวนเต็มเดี่ยวและส่งกลับค่า (พิมพ์คล้ายกัน) ที่พบโดยการกลับคำสั่งของตัวเลขฐาน 10 ของอาร์กิวเมนต์ ตัวอย่างเช่นได้รับ 76543 ผลตอบแทน 34567
31 code-golf  number 

29
สนามมืด (Earth Hour Remembrance)
เป้าหมายของคุณเป็นเรื่องง่าย: โปรแกรมต้องเปิดหน้าจอคอมพิวเตอร์ของคุณสีดำทั้งหมด หลังจากที่โปรแกรมเริ่มทำงานหน้าจอจะต้องเปลี่ยนเป็นสีดำอย่างรวดเร็วและยังคงอยู่จนกว่าโปรแกรมจะออก (คีย์ใด ๆ หรือ alt + F4 การเคลื่อนไหวของเมาส์เป็นต้น) หลังจากนั้นสิ่งต่าง ๆ ควรกลับมาเป็นปกติ ดังนั้นปิดเครื่องคอมพิวเตอร์หรือการเปลี่ยนอำนาจในการปิดจอภาพไม่ได้รับอนุญาต ไม่ควรมองเห็นพิกเซลที่ไม่ใช่สีดำเดียวในช่วงเวลานี้แม้กระทั่งเคอร์เซอร์ที่กะพริบ ผู้ใช้ไม่ควรเตรียมการใด ๆ (เลื่อนเมาส์ออกนอกหน้าจอถอดสายเคเบิล ฯลฯ หรือป้อนข้อมูลผู้ใช้หลังจากที่โปรแกรมเริ่มทำงาน) เพียงแค่เริ่มโปรแกรม คุณสามารถสันนิษฐานได้ว่าคอมพิวเตอร์มีจอภาพเพียงจอเดียวเท่านั้น นอกจากนี้เรายังถือว่าคอมพิวเตอร์เดสก์ท็อปหรือโน้ตบุ๊กมาตรฐานเพราะการทำมันบนอุปกรณ์เฉพาะที่ไม่มีจอภาพปกติจะง่ายเกินไป หากคุณใช้ทรัพยากรภายนอกใด ๆ (ภาพสีดำไฟล์ GUI ฯลฯ ) ขนาดของไฟล์เป็นไบต์จะถูกเพิ่มเข้าไปในขนาดรหัสของคุณ ไม่เป็นไรถ้าใช้งานได้กับระบบปฏิบัติการตระกูลเดียวหรือถ้าต้องการ OpenGL และอื่น ๆ แต่ต้องมีการกำหนดค่าฮาร์ดแวร์เฉพาะอย่างมาก ซอร์สโค้ดของคุณต้องเขียนด้วยภาษาการเขียนโปรแกรมไม่ใช่เฉพาะไฟล์กำหนดค่าบางโปรแกรมอื่น (เช่นโปรแกรมรักษาหน้าจอ) จะใช้งาน
31 code-golf 

30
ตรวจสอบว่าตัวเลขหารด้วย 13 (ไม่ใช้ 13 ตัวเอง) หรือไม่ [ปิด]
ความท้าทายของคุณคุณควรเลือกที่จะยอมรับมันคือการสร้างฟังก์ชั่นหรือโปรแกรมที่ส่งออก "ใช่" ถ้าจำนวนที่กำหนดคือหารด้วย 13 และเอาท์พุท "ไม่" ถ้ามันไม่ได้ กฎ: - คุณไม่ได้รับอนุญาตให้ใช้หมายเลข 13 ทุกที่ - ไม่มีคำพ้องแบบคัดออกสำหรับทั้ง 13 ข้อ (เช่นใช้ 15 - 2) - คะแนนโบนัสจะได้รับเมื่อไม่ได้ใช้โมดูลัสและโบนัสเพิ่มเติมสำหรับการไม่ใช้ส่วน การให้คะแนน: - คะแนนของคุณจะเป็นจำนวนไบต์ในโค้ดของคุณ ( ไม่รวมช่องว่าง) คูณด้วยโบนัสของคุณ - หากคุณไม่ได้ใช้มอดุลัสโบนัสนั้นคือ 0.90; หากคุณไม่ได้ใช้การแบ่งโบนัสนั้นคือ 0.90 - หากคุณไม่ได้ใช้อย่างใดอย่างหนึ่งโบนัสนั้นคือ 0.80 - ยิ่งคะแนนของคุณต่ำลงเท่าไหร่ก็ยิ่งดีเท่านั้น อินพุตจะเป็นจำนวนเต็มมากกว่า 0 และน้อยกว่า 2 ^ 32 เสมอ ผลลัพธ์ของคุณควรเป็น "ใช่" หรือ "ไม่" ง่าย …

3
พิมพ์ดีดเมา
พื้นหลัง นักพิมพ์ดีดกลับมาบ้านหลังจากดื่มเหล้ารัมบ้างแล้วก็ตระหนักว่าจดหมายที่นำเข้ายังคงไม่ถูกต้อง เพื่อให้แน่ใจว่าเขาได้แก้ไขข้อความให้ถูกต้องเขาเขียนตัวอักษรข้อความ bh vjaracter t0 ให้แน่ใจว่ามี 6 ชั่วโมง อย่างไรก็ตามเขาจะจัดการ t0 พลาดกุญแจบางอย่าง ภารกิจ Yout คือเขียน cose ที่จำลอง ttping ของเขา ฉันสั่งให้ลดโอกาสเกิดข้อผิดพลาดรหัสควรสั้นที่สุดเท่าที่ posw9ble แป้นพิมพ์ แป้นพิมพ์เป็นแป้นพิมพ์มาตรฐาน ANSI ในภาพด้านล่างข้อความสีแดงแสดงความกว้างของปุ่ม ทุกแถวมีความสูง 1 หน่วยและปุ่มที่ไม่มีเครื่องหมายคือความกว้าง 1 หน่วย ปุ่มดำเนินการต่อไปนี้ (การแสดงรายการเพียงเพื่อป้องกันความสับสน): Shiftไม่ได้ทำอะไรด้วยตัวเอง แต่ถ้ากดขวาก่อนคีย์ปกติมันจะเปลี่ยนผลลัพธ์ CapsLockสลับ Caps Lock หาก Caps Lock เปิดอยู่ปุ่มตัวอักษรจะแสดงตัวอักษรที่ใส่ซองออก Backspaceลบอักขระเอาต์พุตสุดท้ายหากมี Tab , ReturnและSpaceแทรกอักขระแท็บ, บรรทัดใหม่และช่องว่างตามลำดับ Ctrl , Altเป็นเพียงงานนำเสนอ พวกเขา …

30
สลับดัชนีทั้งสองที่ระบุ
ให้อาร์เรย์ของจำนวนเต็มบวกและดัชนีที่ถูกต้องสองค่าที่ถูกต้องคืนอาร์เรย์ด้วยองค์ประกอบสองตัวที่สอดคล้องกับดัชนีทั้งสองที่สลับกัน คุณอาจเลือกที่จะใช้การจัดทำดัชนี 0 หรือการจัดทำดัชนี 1 แต่ตัวอย่างด้านล่างจะได้รับการจัดทำดัชนี 0 array m n output [1,2,3,4] 0 1 [2,1,3,4] [5,8,9] 0 2 [9,8,5] [11,13,15,3] 1 2 [11,15,13,3] [11,13,15,3] 2 1 [11,15,13,3] [11,15,15,3] 2 1 [11,15,15,3] นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์ ช่องโหว่มาตรฐานใช้

30
ลบเลขศูนย์นำหน้าและต่อท้าย
รับรายการ / อาร์เรย์ที่ไม่ว่างเปล่าที่มีจำนวนเต็มไม่เป็นลบเท่านั้นเช่นนี้ [0, 0, 0, 8, 1, 4, 3, 5, 6, 4, 1, 2, 0, 0, 0, 0] เอาท์พุทรายการที่มีศูนย์ต่อท้ายและเลขศูนย์นำออก ผลลัพธ์สำหรับสิ่งนี้จะเป็น: [8, 1, 4, 3, 5, 6, 4, 1, 2] กรณีทดสอบอื่น ๆ : [0, 4, 1, 2, 0, 1, 2, 4, 0] > [4, 1, 2, 0, 1, 2, 4] …

14
2 Cats in Quine
ท้าทาย สร้างสองโปรแกรมคือ A และ B ซึ่งเป็นทั้งโปรแกรม cat ในภาษาเดียวกัน เมื่อต่อกัน AB (ในภาษาเดียวกัน) ควรเป็น quine ตัวอย่างเช่นสมมติว่าhelloและworldมีทั้งโปรแกรมแมวในภาษา XYZ หากhelloworldเป็นควินในภาษาดังกล่าวแสดงว่าการแก้ปัญหาของคุณถูกต้อง สำหรับผู้ที่คุณไม่คุ้นเคยกับแมวและควินินโปรแกรมแมวเป็นโปรแกรมที่พิมพ์สิ่งที่ได้รับจาก stdin และ quine เป็นโปรแกรมที่พิมพ์ซอร์สโค้ดของมันเอง เกณฑ์การให้คะแนนและกฎ จำนวนไบต์ทั้งหมดของโปรแกรมเชื่อมต่อ AB คือคะแนนของคุณ เช่นนี้เป็นรหัสกอล์ฟคะแนนต่ำสุดชนะ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม อินพุตต้องถูกนำมาจาก stdin และเอาต์พุตต้องไปที่ stdout โปรแกรม cat ไม่จำเป็นต้องทำการโต้แย้ง พวกเขาเพียงต้องการคัดลอก stdin ไปยัง stdout ควินินควรทำงานเมื่อโปรแกรมไม่ได้รับอินพุต แต่ไม่ต้องทำงานอย่างถูกต้อง (แต่อาจ) สำหรับอินพุตอื่น ควินินไม่จำเป็นต้องยกเลิกหากมันพิมพ์รหัสแหล่งที่มาเพียงครั้งเดียวไม่มีอะไรเพิ่มเติม ควินินต้องมีความยาวอย่างน้อยหนึ่งไบต์ A และ B สามารถเป็นโปรแกรมเดียวกันได้ BA ไม่จำเป็นต้องเป็น …
30 code-golf  quine 

4
ชีวิตอาจมีสีสัน!
แต่ละเซลล์ในหุ่นยนต์เซลลูล่าร์ที่มีชีวิตเหมือนต้องการเพียงหนึ่งบิตในการเป็นตัวแทนเพราะมันจะมีชีวิตอยู่หรือตายไปเท่านั้น นั่นหมายความว่ามีเพียงสองสี; ค่อนข้างน่าเบื่อ. ภาพปกติมี 24 บิตต่อพิกเซล (8 ในแต่ละ RGB) ซึ่งหมายความว่าในภาพปกติที่มีพิกเซลเป็นเซลล์คุณสามารถจำลองเกมเหมือนชีวิต 24 เกมได้ในครั้งเดียว! ท้าทาย งานของคุณคือการเขียนโปรแกรมที่จะใช้กฎหนึ่งรุ่นของหุ่นยนต์เซลลูล่าร์ที่เหมือนสิ่งมีชีวิตกับภาพความลึก 24 บิต (ในรูปแบบที่รู้จักกันดีที่คุณต้องการ) และส่งออกภาพผลลัพธ์ แต่ละเลเยอร์ทั้ง 24 เลเยอร์จะใช้กฏเหมือนเหมือนชีวิตอย่างเคร่งครัดภายในเลเยอร์ของตัวเอง 24 เลเยอร์ไม่โต้ตอบซึ่งกันและกัน ด้วย ศูนย์คือเซลล์ที่ตายแล้วและเซลล์นั้นเป็นเซลล์ที่มีชีวิต เงื่อนไขขอบเขตเป็นระยะ (ก่อตัวพรู) ขนาดรูปภาพใด ๆ ควรใช้งานได้ Input / Output โปรแกรมของคุณต้องใช้เวลา 3 ข้อโต้แย้งผ่าน stdin หรือบรรทัดคำสั่ง (หรือภาษาที่ใกล้เคียงที่สุดของคุณ): ชื่อของไฟล์ภาพอินพุต สตริงของตัวเลข 0 ถึง 8 ตามลำดับที่เพิ่มขึ้นซึ่งหมายถึงเมื่อเกิดเซลล์ใหม่: ถ้าหลักdอยู่ในสตริงแล้วเซลล์ที่ตายแล้วมามีชีวิตอยู่เมื่อพวกเขามีdเพื่อนบ้านที่อยู่อาศัย ตัวอย่าง: 3เป็นเรื่องปกติของชีวิต - เซลล์ที่ตายแล้วพร้อมกับเพื่อนบ้านที่มีชีวิต …

7
หมอตำแย! ฉันเป็นนายอำเภอของรหัสกอล์ฟ!
เป็นไปได้ว่าทุกคนที่ใช้ Twitter เมื่อสองสามเดือนก่อนจะรู้เกี่ยวกับ 'Howdy! ฉันเป็นนายอำเภอแห่ง X "meme ภาพวาดที่เรียบง่ายของนายอำเภอถูกวาดด้วยอิโมจิและการเปลี่ยนแปลงเพื่อให้เข้ากับธีมดังนั้นฉันคิดว่ามันถึงเวลาแล้วที่ Sheriff of Code Golf ที่นี่เขาอยู่: ### ##### ### ### ### # ##### # # # # # # # # # # ### # # # # # # # # โดยเฉพาะอันนี้มี 'พิกเซล' ซึ่งมีความกว้างหนึ่งอักขระและสูงหนึ่งตัว เพื่อสร้างเขาข้อโต้แย้งจะเป็น 1 และ 1 เกิดอะไรขึ้นถ้าเขาจะกว้างกว่าเขาสูง? ###### ########## ###### …

30
สร้างอาร์เรย์สี่เหลี่ยมจากมุมใหม่
ฉันเคยมีอาร์เรย์เป็นรูปสี่เหลี่ยมผืนผ้าที่สวยงาม มันค่อนข้างสมมาตร แต่โชคไม่ดีที่มันพังทลายและตอนนี้ฉันมีมุมซ้ายบนเท่านั้น งานของคุณคือการสร้างอาร์เรย์เดิมขึ้นมาใหม่ โปรแกรมของคุณจะได้รับอาร์เรย์จำนวนเต็มสองมิติ เพื่อความสะดวกในการวิเคราะห์คุณอาจคิดว่ามันอยู่ระหว่าง 1 ถึง 9 งานของคุณคือการกลับคอลัมน์ของแถว, แถวของมันและทั้งสองกลับเข้าที่มุมผลลัพธ์และกลับอาร์เรย์ผลลัพธ์ คุณสามารถสันนิษฐานได้ว่าขนาดของอาร์เรย์จะมีอย่างน้อย 1x1 กรณีทดสอบ: Input: 1 2 3 4 5 6 Output: 1 2 3 3 2 1 4 5 6 6 5 4 4 5 6 6 5 4 1 2 3 3 2 1 Input: 1 Output: 1 …

6
ค้นหาช่วงเวลาใน Pi
เวลามีอยู่ทุกหนทุกแห่ง ... พวกเขาซ่อนตัวอยู่ใน Pi 3.141592653 58979 3238 462643 3832 795028841 971693993751 มารับช่วงเวลาเหล่านั้น! ความท้าทาย ให้เป็นอินพุทเป็นจำนวนเต็มn>0ค้นหาว่ามีจำนวนเฉพาะซ่อนอยู่ภายในnตัวเลขแรกของPi ตัวอย่าง สำหรับเราควรจะค้นหาเฉพาะในn=3 [3,1,4]มี 2 ​​ช่วงเวลา(3,31)ดังนั้นรหัสของคุณควรส่งออก2 สำหรับn=1010 หลักแรกคือ[3,1,4,1,5,9,2,6,5,3]และรหัสของคุณควรส่งออก12เพราะ[2, 3, 5, 31, 41, 53, 59, 653, 4159, 14159, 314159, 1592653]ถูกซ่อนอยู่ (และพบ!) กรณีทดสอบ อินพุต -> เอาต์พุต 1->1 3->2 13->14 22->28 42->60 50->93 150->197 250->363 500->895 กฎระเบียบ รหัสของคุณจะต้องสามารถค้นหาช่วงเวลาทั้งหมดอย่างน้อยn=50 ใช่คุณสามารถhardcode 50 …
30 code-golf  math  primes  pi 

15
ABAA / ABBB: สร้างรูปแบบ 2D แบบเรียกซ้ำ
ฉันยุ่งกับเครือข่ายตัวต้านทานที่ไม่มีที่สิ้นสุด (เรื่องยาว) เมื่อฉันเจอรูปแบบการเรียกซ้ำที่น่าสนใจต่อไปนี้: |-|| |--- ตัวอย่างของรูปแบบนี้มีความกว้างเป็นสองเท่าของความสูง หากต้องการเปลี่ยนจากรูปแบบหนึ่งไปยังอีกระดับคุณจะแบ่งสี่เหลี่ยมนี้ออกเป็นบล็อกย่อยสองบล็อก (ซึ่งแต่ละรูปนั้นเป็นสี่เหลี่ยมจัตุรัส NxN): AB = |-|| |--- so A = |- |- and B = || -- แบ่งครึ่งเหล่านี้แล้วทำซ้ำและจัดเรียงใหม่ตามรูปแบบต่อไปนี้: ABAA ABBB giving |-|||-|- |---|-|- |-|||||| |------- ท้าทาย เขียนโปรแกรม / ฟังก์ชั่นซึ่งให้ตัวเลขNผลลัพธ์ที่Nซ้ำของการออกแบบซ้ำนี้ นี่คือกอล์ฟ รูปแบบ I / O นั้นค่อนข้างผ่อนปรน: คุณอาจส่งคืนสตริงเดี่ยวรายการของสตริงอาเรย์สองมิติของตัวละคร ฯลฯ อนุญาตให้ใช้ช่องว่างที่ต่อท้ายได้ตามอำเภอใจ คุณอาจใช้การจัดทำดัชนี 0 หรือ 1 ก็ได้ ตัวอย่าง …

14
สร้าง TeX เพื่อเรียงชุด Sierpinski Triangle Fractal
ท้าทาย เขียนโค้ดที่แสดงผลลัพธ์สมการทางคณิตศาสตร์ของ TeX (LaTeX) (ที่ระบุด้านล่าง) ที่จะเรียงเศษส่วน Sierpinski Triangle Fractal 5 ระดับ ที่สั้นที่สุดชนะรหัส รายละเอียด TeX (และเพื่อน ๆ เช่น LaTeX เป็นต้น) เป็นระบบเรียงพิมพ์ที่ซับซ้อน มันสามารถสร้างการแสดงออกที่ซับซ้อนซ้อนกันโดยพลการสำหรับสูตรทางคณิตศาสตร์ บังเอิญ "ซับซ้อนซ้อนกัน" นี้ยังเป็นคำอธิบายของ fractals ข้อมูลต่อไปนี้แสดงผลด้วย MathJaX xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx{{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}^{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}_{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}} โดยโค้ดสมการคณิตศาสตร์ข้อความธรรมดาต่อไปนี้ซึ่งประกอบไปด้วย super-and sub-script ที่ซ้อนกัน: {{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}^{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}_{{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}^{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}_{{{x^x_x}^{x^x_x}_{x^x_x}}^{{x^x_x}^{x^x_x}_{x^x_x}}_{{x^x_x}^{x^x_x}_{x^x_x}}}}} โปรดทราบว่านี่เป็นเพียงการซ้อน 5 ระดับ คุณไม่จำเป็นต้องสร้าง$...$หรือ$$...$$หรือมาร์กอัปอื่น ๆ ที่จำเป็นสำหรับการเริ่มต้น / สิ้นสุดสมการทางคณิตศาสตร์ใน TeX & Co. คุณสามารถดูตัวอย่าง TeX ที่สร้างขึ้นในบรรณาธิการออนไลน์หลายคนเช่น: http://www.hostmath.comแต่คุณสามารถค้นหาได้มากมาย อื่น ๆ …

15
ฉันจะทำลายอาร์เรย์ของฉันได้ยากแค่ไหน?
ให้กำหนดกระบวนการในการบดขยี้อาร์เรย์ของตัวเลข ในความสนใจเราอ่านอาร์เรย์จากซ้ายไปขวา หาก ณ จุดที่เราพบสององค์ประกอบเดียวกันในแถวที่เราลบหนึ่งและสองครั้งที่สอง ตัวอย่างเช่นที่นี่เป็นกระบวนการของการบดขยี้อาร์เรย์ต่อไปนี้ [5,2,2,3] ^ [5,2,2,3] ^ [5,2,2,3] ^ [5,4,3] ^ [5,4,3] ^ ยกตัวอย่างเช่นองค์ประกอบเดียวกันสามารถยุบได้หลายครั้ง [1,1,2]กลายเป็น[4]เมื่อบด เราจะเรียกใช้อาร์เรย์ที่ไม่สามารถย่อยสลายได้เมื่อกระบวนการบดอัดอาร์เรย์นั้นไม่เปลี่ยนแปลง ตัวอย่างเช่น[1,2,3]ยัง[1,2,3]หลังจากถูกบด งานของคุณคือการใช้อาร์เรย์และกำหนดจำนวนของทับที่จำเป็นในการทำให้ไม่สามารถย่อยสลายได้ คุณต้องรองรับเฉพาะจำนวนเต็มในช่วง0ถึง2 32 -1 นี่คือ code-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น กรณีทดสอบ [1] -> 0 [1,1] -> 1 [2,1,1] -> 2 [4,2,1,1] -> 3 [2,2,2,1,1] -> 3 [0,0,0,0] -> 1 [4,0,0,0,4] -> 1 [4,0,0,0,0,4] -> …

8
เห็นภาพจัดเรียงผสาน
Merge sortเป็นอัลกอริทึมการเรียงลำดับที่ทำงานโดยแยกรายการที่กำหนดเป็นครึ่งแล้วทำการเรียงลำดับซ้ำทั้งรายการเล็ก ๆ และรวมกลับเข้าด้วยกันเป็นหนึ่งรายการเรียงลำดับ เคสพื้นฐานของการเรียกซ้ำจะมาถึงรายการเดี่ยวซึ่งไม่สามารถแยกได้อีกต่อไป แต่เรียงตามนิยามแล้ว การดำเนินการของอัลกอริทึมในรายการ[1,7,6,3,3,2,5]สามารถมองเห็นได้ด้วยวิธีดังต่อไปนี้: [1,7,6,3,3,2,5] / \ split [1,7,6,3] [3,2,5] / \ / \ split [1,7] [6,3] [3,2] [5] / \ / \ / \ | split [1] [7] [6] [3] [3] [2] [5] \ / \ / \ / | merge [1,7] [3,6] [2,3] [5] \ …

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