Создать матрицу из координаты (x, y) ruby

Я могу получить позиции Матрицы с ​​помощью этого кода:

rows = 2
columns = 2

Matrix.build(rows, columns).to_a
[[0, 0], [0, 1], [1, 0], [1, 1]]

этот код строит матрицу из 0,0.

Я хотел бы построить матрицу из 0,1

я хотел бы получить:

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

я использую метод построения матрицы, потому что это просто, мы можем использовать массивы для достижения того же результата.

Спасибо!

🤔 А знаете ли вы, что...
Ruby известен своей философией 'Принципов языка Ruby' (The Ruby Way), которая включает в себя простоту и элегантность.


78
1

Ответ:

Решено

Данный

rows = 2
columns = 2
offset = [0, 1]

просто напишите

ro, co = offset
Array.new(rows * columns) do |k|
  i, j = k.divmod(rows)
  [i + ro, j + co]
end
  #=> [[0, 1], [0, 2], [1, 1], [1, 2]]

См. Array::new и Integer#divmod.