Techioz Blog

行列内の 1 の数が最大の行を見つける方法

概要

ブール値を含む行列があります。

require 'matrix'
m1 = Matrix[[0,1,1,1],[0,0,1,1],[1,1,1,1],[0,0,0,0]]

1 の数が最大の行を見つけたいと考えています。誰か助けてくれませんか?

解決策

おそらく最も単純なアプローチは

m1.row_vectors.max_by { |e| e.count(1) }
#=> Vector[1, 1, 1, 1]