電子書籍の厳選無料作品が豊富!

なぜ多次元配列というものが必要なのでしょうか?

長さ10の1次元配列と、2行5列の2次元配列だと、記憶できる量は同じではないですか?
よく2次元配列を表に例えて「表のように使います」と説明しているサイト等がありますが、
DBと違って配列は添え字でしか管理できないんだか、表のように考えるメリットもよくわかりません。

更にもっと謎なのが3次元以上の配列の存在です。
これは実際に使っている人はいるのでしょうか・・・?

A 回答 (4件)

実行レベルでは差が無いですがソースコードを書くのは人間ですから人間が直感的に理解しやすい表現の方が誤り(バグ)が混入する危険が減ります。



3次元配列は3次元のデータを格納する以外に、2次元データを時系列に保持する場合などにも使用します。
とっさに良い例が思い浮かびませんが、オセロの升目は2次元配列ですが先読みをする場合等で次の状態、その次の状態…とやっていくと3次元配列になります。
この3次元配列を最適手を探す為に複数持てば4次元配列になります。
あまり次数を増やすと人間が見た場合に分かりにくくなるので増やしませんが、3次元配列は普通に使います。
    • good
    • 0

例えば、ゲームを考えてみましょうか。



マップがあって、そこをキャラクタが移動していく、というようなもの。このマップのデータは、1次元配列よりも、縦横の位置による2次元配列で管理したほうが圧倒的に簡単ですね。配列[横][縦]に表示するマップの情報を保管しておけば、感覚的に理解しやすいでしょう。

そして、マップのそれぞれの位置に、アイテムや敵キャラやイベントなの各種の情報を設定したければ、3次元目を用意してここに整理しておけばわかりやすいでしょう。

まぁ、これらも1次元でやろうと思えばできますが、わかりにくいですね。デバッグで配列の要素を確認するようなときも、1次元ではどこに何があるのかわからないし。わざわざわかりにくい1次元で値を管理するより、素直に2次元や3次元で管理するのが普通でしょう?

実際に、こういう「多次元で管理するのが簡単なプログラム」を作ったことがあれば、必要性は説明せずともわかるものです。質問者さんは、まだそうしたプログラムを作る必要に迫られたことがない、というだけでしょう。
    • good
    • 1

例えばある地域の立体的な温度分布を表すとしたら三次元配列ですね。



がらりと変わって年齢、性別、住んでいる地域、職業で人口統計を取るとしたら4次元の表が必要ですね。
    • good
    • 0

例えばエクセルの表を配列に取り込む際に、


17行15列は1元配列の何番目かすぐに答えられますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!