Быстрый способ определить матрицу в Ruby:
Array.new 6, Array.new(6, 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]
]
Приведенный выше код инициализирует массив с 6 и по умолчанию их значения 2-го аргумента, который является другой массив с 6 и значениями 0 по умолчанию.
В других более императивных языках вы должны использовать вложенные циклы:
matrix = []
for x in [0,1,2,3,4,5]
for y in [0,1,2,3,4,5]
matrix[x] ||= [] # create the row as an empty array
matrix[x] << y # push the y value to it
end
end
# matrix is now:
# => [
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5]
]
Для поиска через матрицу и найти строку с наибольшей суммой:
greatest_sum_row_index = 0
greatest_sum = 0
matrix.each_with_index do |row, i|
# row.inject(:+) is a shortcut to adding each int in the array and returning the sum
sum = row.inject(:+)
if sum > greatest_sum
greatest_sum = sum
greatest_sum_row_index = i
end
end
# highest_row is now the index of the greatest sum row
matrix[greatest_sum_row_index] # returns the row with the greatest sum
и что вы пробовали? Вы знаете, как написать этот код на других языках? – Doon
К сожалению нет, рубин - это первый язык, который я начал изучать. – Gregy
http://www.ruby-doc.org/stdlib-2.0/libdoc/matrix/rdoc/Matrix.html –