1

私には状況があり、次のようになります。

数学グラフで使用されているような座標を出力する必要があります。(0,0) (0,1) (0,2) などです。したがって、長さが 10 と指定され、幅が 20 と指定されている場合、グラフ領域は (0,0) から (10,20) までのすべてのポイントになります。

これらの値を順番に出力できるように、これらの値をテーブルに保存したいと考えています。

後で、これらの値の一部が削除されるシナリオがあるため、削除される値が (4,5) (4,6) (4,7) であり、以前に作成されたメイン テーブルにこれらの値が含まれないようにする必要があります。 . そして、残りの値を含む新しいテーブルを印刷できるようにする必要があります。

これまで、長さと幅の値を要求するためのコーディングのみを行ってきました。

この残りをどのように進める必要がありますか?説明が必要な場合や、質問がわかりにくい場合は、コメントを残してください。改善できるように努めます。

どんな助けでも非常に高く評価されます。

ありがとうございました

4

1 に答える 1

1

必要に応じて、これを行うにはいくつかの方法があります。

簡単な方法は、次のような配列の配列を使用することです。

a = Array.new(11) {Array.new(21) {0}}

これにより、a[0][0] から a[10][20] のような配列が作成され、すべての項目が 0 に初期化されます。

アイテムを削除するには、nil に設定します。

a[4][5] = nil

配列を印刷するときは、nil 値をスキップします。

for x in 0..10
  for y in 0..20
    next if a[x][y]==nil
    puts a[x][y]
  end
end

グラフが非常に大きい場合は、Excel などのツールが空のセルに少ない RAM を使用して多くのセルを格納する方法である「疎行列」について読んでください。

http://en.wikipedia.org/wiki/Sparse_matrix

于 2012-10-07T17:04:46.197 に答える