私はRuby 2.3.1を使用していますが、私はバグが発生したのか、これが意図された動作なのかわかりません。Ruby配列での奇妙な動作ですか?
あなたのような、ネストされた配列を作成することにより、N×N個の行列を作成する場合:その後、
matrix = [[0]*5]*5
そのように、対角線上の要素を設定します。
(0..4).each {|i| matrix[i][i] = i}
これはすべての列に影響を与えて終わりますすべての行で:
[
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]
]
この動作は意図されていますか?
P.S.私はRubyのMatrixライブラリを使いたくはありませんが、むしろ単純な配列で作業します。事前に
感謝:)
これは正しい方法です: 'Array.new(n){Array.new(n、0)}'詳細については完全にはわかりません – DaniG2k
"コンパイラ/通訳/何でも " - これはかなり偽です。 –
@Sergio、それは通常ハードウェアエラーであるからです。 –