Skip to content

Instantly share code, notes, and snippets.

@lwoodson
Created July 9, 2014 19:25
Show Gist options
  • Save lwoodson/b3120a192119f8b008ca to your computer and use it in GitHub Desktop.
Save lwoodson/b3120a192119f8b008ca to your computer and use it in GitHub Desktop.
asd.rb
2.1.1 :001 > array = [1] * 100
=> [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
2.1.1 :002 > array.each_slice(array.size / 4).to_a
=> [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
2.1.1 :003 > arrays = array.each_slice(array.size / 4).to_a
=> [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
2.1.1 :004 > arrays.size
=> 4
2.1.1 :005 > arrays.map{|a| a.size}
=> [25, 25, 25, 25]
@thirtysixthspan
Copy link

Fails for some n

2.1.0 :125 > a
 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2.1.0 :126 > a.each_slice(a.size/1).to_a
 => [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
2.1.0 :127 > a.each_slice(a.size/2).to_a
 => [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
2.1.0 :128 > a.each_slice(a.size/3).to_a
 => [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
2.1.0 :129 > a.each_slice(a.size/4).to_a
 => [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
2.1.0 :130 > a.each_slice(a.size/5).to_a
 => [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
2.1.0 :131 > a.each_slice(a.size/6).to_a
 => [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]
2.1.0 :132 >

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment