Populate array from vector

Posted by Zag zag.. on Stack Overflow See other posts from Stack Overflow or by Zag zag..
Published on 2010-04-26T13:58:01Z Indexed on 2010/04/26 16:13 UTC
Read the original article Hit count: 151

Hi,

I would like to populate an 2 dimensional array, from a vector.

I think the best way to explain myself is to put some examples (with a array of [3,5] length).

When vector is: [1, 0]

[
  [4, 3, 2, 1, 0],
  [4, 3, 2, 1, 0],
  [4, 3, 2, 1, 0]
]

When vector is: [-1, 0]

[
  [0, 1, 2, 3, 4],
  [0, 1, 2, 3, 4],
  [0, 1, 2, 3, 4]
]

When vector is: [-2, 0]

[
  [0, 0, 1, 1, 2],
  [0, 0, 1, 1, 2],
  [0, 0, 1, 1, 2]
]

When vector is: [1, 1]

[
  [2, 2, 2, 1, 0],
  [1, 1, 1, 1, 0],
  [0, 0, 0, 0, 0]
]

When vector is: [0, 1]

[
  [2, 2, 2, 2, 2],
  [1, 1, 1, 1, 1],
  [0, 0, 0, 0, 0]
]

Have you got any ideas, a good library or a plan? Any comments are welcome. Thanks.

Note: I consulted Ruby "Matrix" and "Vector" classes, but I don't see any way to use it in my way...

Edit: In fact, each value is the number of cells (from the current cell to the last cell) according to the given vector.

If we take the example where the vector is [-2, 0], with the value *1* (at array[2, 3]):

array = [
  [<0>, <0>, <1>, <1>, <2>],
  [<0>, <0>, <1>, <1>, <2>],
  [<0>, <0>, <1>, *1*, <2>]
]

... we could think such as:

The vector [-2, 0] means that -2 is for cols and 0 is for rows. So if we are in array[2, 3], we can move 1 time on the left (left because 2 is negative) with 2 length (because -2.abs == 2). And we don't move on the top or bottom, because of 0 for rows.

© Stack Overflow or respective owner

Related posts about ruby

Related posts about array