คำถามติดแท็ก array-manipulation

การแข่งขันเพื่อแก้ปัญหาเฉพาะผ่านการใช้งานและการจัดการของอาร์เรย์

19
หมายเลขตัวหารที่ไม่เป็นมิตร
ตัวหารบางตัวของจำนวนเต็มบวกเกลียดกันและพวกเขาไม่ต้องการแบ่งปันตัวเลขหนึ่งหลักหรือมากกว่า จำนวนเต็มเหล่านั้นเรียกว่าHostile Divisor Numbers ( HDN ) ตัวอย่าง Number 9566มี4ตัวหาร: 1, 2, 4783 and 9566 (อย่างที่คุณเห็นไม่มีสองคนที่มีตัวเลขเดียวกัน ) ดังนั้น9566จึงเป็นH ostile D ivisor N umber จำนวน9567เป็นไม่HDNเพราะตัวหารของ ( 1, 3, 9, 1063, 3189, 9567) แบ่งปันตัวเลขบางอย่างร่วมกัน นี่เป็นHDNแรกสองสามอัน 1,2,3,4,5,6,7,8,9,23,27,29,37,43,47,49,53,59,67,73,79,83,86,87,89,97,223,227,229,233,239,257,263,267,269,277,283,293,307,337... งาน รายการข้างต้นดำเนินต่อไปและหน้าที่ของคุณคือค้นหาHDNลำดับที่ n อินพุต จำนวนเต็มบวกnตั้งแต่1ถึง4000 เอาท์พุต nth HDN กรณีทดสอบ นี่คือกรณีทดสอบที่จัดทำดัชนี 1รายการ โปรดระบุระบบการจัดทำดัชนีที่คุณใช้ในคำตอบของคุณเพื่อหลีกเลี่ยงความสับสน input -> output 1 …

30
ผลรวมของพลังของ 2
ความท้าทาย ได้รับการป้อนข้อมูลจำนวนเต็มxที่กลับผลของผู้มีอำนาจของทั้งสองว่าเมื่อสรุปให้1 <= x <= 255x ตัวอย่าง รับอินพุต: 86 โปรแกรมของคุณควรส่งออก: 64 16 4 2 การป้อนข้อมูล: 240 เอาท์พุท: 128 64 32 16 การป้อนข้อมูล: 1 เอาท์พุท: 1 การป้อนข้อมูล: 64 เอาท์พุท: 64 เอาท์พุทอาจมีค่าศูนย์ถ้ากำลังสองที่ไม่ได้อยู่ในผลรวม ยกตัวอย่างเช่นการป้อนข้อมูลการส่งออกเดือนพฤษภาคม650 64 0 0 0 0 0 1 เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

23
คุณช่วยหยุดสำรับไพ่และเล่นได้แล้ว
ท้าทาย: การป้อนข้อมูล:รายการของจำนวนเต็มบวกที่แตกต่างกันอยู่ในช่วงต่อ A [1,list-size][1,list-size][1, \text{list-size}] ] เอาท์พุท:จำนวนเต็ม: จำนวนครั้งที่รายการเป็นระลอกคลื่นน้อย-สับ สำหรับรายการนี่หมายถึงรายการถูกแบ่งออกเป็นสองส่วนและแบ่งเป็นสองส่วน (เช่น riffle-shuffling รายการ[1,2,3,4,5,6,7,8,9,10]จะส่งผลครั้งเดียว[1,6,2,7,3,8,4,9,5,10]ดังนั้นสำหรับความท้าทายนี้อินพุต[1,6,2,7,3,8,4,9,5,10]จะส่งผลให้1) กฏท้าทาย: คุณสามารถสมมติว่ารายการจะมีจำนวนเต็มบวกในช่วง[1,list-size][1,list-size][1, \text{list-size}] (หรือ[0,list-size−1][0,list-size−1][0, \text{list-size}-1]หากคุณเลือกที่จะมี 0-indexed input-list) คุณสามารถสมมติว่ารายการอินพุตทั้งหมดจะเป็นรายการ riffle-shuffled ที่ถูกต้องหรือรายการที่เรียงลำดับซึ่งไม่ได้สับ (ในกรณีที่เอาต์พุตเป็น0) คุณสามารถสันนิษฐานว่ารายการอินพุตจะมีค่าอย่างน้อยสามค่า ตัวอย่างทีละขั้นตอน: การป้อนข้อมูล: [1,3,5,7,9,2,4,6,8] Unshuffling ครั้งหนึ่งมันเคยกลายเป็น: [1,5,9,4,8,3,7,2,6]เพราะทุกรายการแม้ 0 การจัดทำดัชนีมาก่อน[1, ,5, ,9, ,4, ,8]แล้วทุกรายการ 0 [ ,3, ,7, ,2, ,6, ]คี่จัดทำดัชนีหลังจากนั้น ยังไม่ได้สั่งรายการดังนั้นเราจึงดำเนินการต่อไป: การแยกรายการอีกครั้งจะกลายเป็น: [1,9,8,7,6,5,4,3,2] อีกครั้งกลายเป็น: [1,8,6,4,2,9,7,5,3] แล้ว: [1,6,2,7,3,8,4,9,5] …

21
The Three 'R's: ย้อนกลับเรียงลำดับทำซ้ำ
ขณะที่ดูตัวเลขกับตัวเลขฉันพบการเปลี่ยนแปลงที่น่าสนใจที่คุณสามารถสร้างจากรายการตัวเลข ถ้าคุณทำซ้ำการเรียงสับเปลี่ยนแบบนี้บ่อยครั้งคุณจะกลับมาที่อาร์เรย์เดิมเสมอ ลองใช้รายการต่อไปนี้: [1, 2, 3, 4, 5] ตัวอย่างเช่น ย้อนกลับอาร์เรย์ ตอนนี้อาร์เรย์ของเราคือ [5, 4, 3, 2, 1] จัดลำดับใหม่ (สลับ) แต่ละคู่ รายการของเรามี 2 คู่และ[5, 4] [3, 2]น่าเสียดายที่เราไม่สามารถจัดกลุ่ม1เป็นคู่ได้ดังนั้นเราจะทิ้งมันไว้เป็นของตัวเอง หลังจากสลับแต่ละคู่อาร์เรย์ใหม่จะเป็น: [4, 5, 2, 3, 1] ทำซ้ำขั้นตอนที่ 1 และ 2 จนกระทั่งเรากลับสู่อาร์เรย์เดิม นี่คือ 4 ขั้นตอนถัดไป: Step 2: Start: [4, 5, 2, 3, 1] Reversed: [1, 3, …

20
ฟาโรสับเปลี่ยนอาเรย์
ฟาโรสับเปลี่ยนเป็นเทคนิคที่ใช้บ่อยโดยนักมายากลที่ "สับ" ดาดฟ้า เพื่อทำการสับไพ่แบบแฟโรคุณต้องตัดเด็คเป็น 2 ส่วนเท่ากันก่อน ตัวอย่างเช่น [1 2 3 4 5 6 7 8] แฟโรสับเป็น [1 5 2 6 3 7 4 8] สามารถทำซ้ำได้หลายครั้ง น่าสนใจพอถ้าคุณทำซ้ำครั้งนี้มากพอคุณจะกลับมาที่อาร์เรย์เดิมเสมอ ตัวอย่างเช่น: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

30
กำหนดความลึกของอาร์เรย์
ความท้าทายที่ง่ายสำหรับตอนเย็นวันจันทร์ของคุณ (ดีหรือเช้าวันอังคารในอีกครึ่งหนึ่งของโลก ... ) คุณได้รับการป้อนข้อมูลเป็นจำนวนเต็มจำนวนเต็มบวกที่ซ้อนกันซึ่งอาจทำให้ขาดดุล: [1, [[2, 3, [[4], 5], 6, [7, 8]], 9, [10, [[[11]]]], 12, 13], 14] งานของคุณคือการกำหนดความลึกซึ่งเป็นความลึกการซ้อนที่ยิ่งใหญ่ที่สุดของจำนวนเต็มใด ๆ ในรายการ ในกรณีนี้ความลึกของ11คือ6ซึ่งใหญ่ที่สุด คุณอาจสมมติว่าไม่มีอาร์เรย์ใดว่างเปล่า คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ อินพุตอาจถูกนำมาใช้ในรายการที่สะดวกหรือรูปแบบสตริงที่สนับสนุนอาร์เรย์ที่ไม่ใช่สี่เหลี่ยม (มีอาร์เรย์ซ้อนกันที่มีระดับความลึกต่างกัน) ตราบใดที่ข้อมูลจริงไม่ได้ถูกประมวลผลล่วงหน้า คุณต้องไม่ใช้บิวด์อินที่เกี่ยวข้องกับรูปร่างของอาร์เรย์ (รวมถึงบิวด์อินที่แก้ปัญหานี้ซึ่งจะทำให้คุณได้มิติของอาร์เรย์ที่ซ้อนกัน) ข้อยกเว้นเพียงอย่างเดียวคือการได้รับความยาวของอาร์เรย์ ใช้กฎมาตรฐานของกอล์ฟ กรณีทดสอบ [1] -> 1 [1, 2, 3] -> 1 [[1, 2, …

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] …

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 …

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] \ …

18
เอกลักษณ์เมทริกซ์ N มิติ
รับค่าจำนวนเต็มบวกnเอาท์พุทN"มิติ" เอกลักษณ์มิติซึ่งเป็นN^Nอาร์เรย์1ที่มีส่วนประกอบทั้งหมดของดัชนีเท่ากันและ0อย่างอื่น N^Nหมายถึง N-by-N-by-N-by-... 1 -> [1] 2 -> [[1,0],[0,1]] 3 -> [[[1,0,0],[0,0,0],[0,0,0]],[[0,0,0],[0,1,0],[0,0,0]],[[0,0,0],[0,0,0],[0,0,1]]] 4 -> [[[[1,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,1,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]],[[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]]]] ตัวอย่างเช่นถ้าaเป็น4มิติตัวตน "เมทริกซ์" จากนั้นรายการเท่านั้นที่มี1จะเป็นa[0][0][0][0], a[1][1][1][1], และa[2][2][2][2]a[3][3][3][3] นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์ ช่องโหว่มาตรฐานใช้

21
ค้นหาจำนวนที่ใกล้เคียงที่สุด
งาน รับอาร์เรย์ของจำนวนเต็มใด ๆ เช่น: [-1,476,578,27,0,1,-1,1,2] และดัชนีของอาร์เรย์นั้น (ตัวอย่างนี้ใช้การจัดทำดัชนีตาม 0แม้ว่าคุณสามารถใช้การจัดทำดัชนีตาม 1เช่นกัน): index = 5 v [-1,476,578,27,0,1,-1,1,2] จากนั้นส่งคืนตัวเลขที่ใกล้ที่สุดซึ่งมากกว่าองค์ประกอบที่ดัชนีนั้น ในตัวอย่างจำนวนที่ใกล้เคียงที่สุดที่มากกว่า 1 คือ 27 (ห่างจาก 2 ดัชนี) index = 5 v [-1,476,578,27,0,1,-1,1,2] ^ Nearest greater number Output = 27 สมมติฐาน ที่ใกล้ที่สุดไม่รวมการห่อ โปรแกรมจะไม่ได้รับอาร์เรย์ที่มีความยาว 1 (เช่น; [55]) คุณจะต้องถือว่ามีเสมอมากขึ้นกว่าจำนวนองค์ประกอบที่กำหนด หากมีจำนวนมากกว่า 2 องค์ประกอบในระยะทางเท่ากันคุณสามารถส่งคืนได้ทั้งคู่ คู่ I / O Input: Index …

4
หมุนเมทริกซ์ 2D
สมมติว่าฉันมีเมทริกซ์ต่อไปนี้ (2D): [[1, 2, 3, 4 ], [5, 6, 7, 8 ], [9, 10, 11, 12], [13, 14, 15, 16]] หมุนเมทริกซ์ทวนเข็มนาฬิกา Rครั้ง (ไม่เพิ่มทีละ 90 องศาเพียง 1 ครั้งต่อครั้ง) 1 2 3 4 2 3 4 8 3 4 8 12 5 6 7 8 --> 1 7 11 12 --> 2 …

26
Fibonacci ผลรวมดิจิตอล
เราทุกคนคุ้นเคยกับลำดับฟีโบนักชี : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 อย่างไรก็ตามแทนที่จะf(n) = f(n-1) + f(n-2)เราจะนำผลรวมดิจิตอลของ 2 รายการก่อนหน้า ลำดับควรเริ่มต้นด้วย0, 1หลังจากนั้นความแตกต่างจะปรากฏอย่างรวดเร็ว รายการนี้ได้รับการจัดทำดัชนี 0 คุณสามารถใช้ 1 ดัชนีเช่นกันซึ่งเป็นสถานะที่คุณใช้ f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 …

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