Ruby最好的方法来对矩阵的对角值求和

时间:2013-10-22 11:05:20

标签: ruby matrix

在一个矩阵中给出一个鸡蛋的某个位置。我需要总结目标行,列和对角线的所有鸡蛋。

  • 蛋 - > 1
  • 空 - > 0

我做了一个名为egg_performance的方法,我将参数作为参数传递给egg。在这个方法中,我计算行,列和所有对角线。我对行和列没有任何问题。当我对对角线求和时,我使用了这个代码(这只是第二个象限作为参考点作为治疗鸡蛋)。

# Second quadrant of the diagonals of the egg
x = egg_x - 1
y = egg_y - 1
while x >= 0 && x < egg_x || y >= 0 && y < egg_y
  performance += 1 if @carton[y][x] == 1
  x -= 1
  y -= 1
end 

当我执行此代码时,会出现错误。我认为这是一个超出范围的错误,但我找不到它。

./carton.rb:73:in `egg_performance': undefined method `[]' for nil:NilClass (NoMethodError)
    from ./carton.rb:20:in `generate_random'
    from main.rb:5

我不喜欢我这样做的方式。有更好的红宝石方式吗?

carton.rb main.rb

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

如果您有矩阵列数组,则可以执行以下操作:

require 'matrix'
Matrix.columns(array_of_columns).trace