2026年8月17日月曜日

番外:記憶相の話

 あれ?やっぱ分かりずらかったらしい・・・・

C++の話で

https://cside-associatron.blogspot.com/2026/08/c.html

「64×64の各セルの中に、さらに100×100の配列が入ってるのか?」
って、100×100の配列をセルに放り込んでるわけじゃない

1個のセルをこう考えると

64×64 の世界

cell[12][25]
└── このセルの担当範囲
local X = 0~99
local Y = 0~99

つまり cell[12][25] の中に

float local[100][100];

を持っているわけじゃないんですよ。


「そのセルの中なら、位置を0~99で表現できますよ」という座標系を与えているだけ

だから、たとえば接触した位置が

cell = (12, 25)
local = (37, 81)

だったら、

12列25行目のセルの中の、横37・縦81の位置に触れた

という情報だけ持てばいい。

これを全体の論理座標に直すと、

globalX = 12 × 100 + 37 = 1237
globalY = 25 × 100 + 81 = 2581

になる。


つまり、

64 × 100 = 6400

だから、

64×64 cells
each cell has a 100×100 coordinate range
logical coordinate space = 6400×6400

になる。

でもメモリ上に、

64 × 64 × 100 × 100
= 40,960,000

個の要素を作っているわけではありません。




100×100は「次元を放り込む」のではなく、「セル内部をどの細かさで住所表現するか」なんですよ

もっと身近に言えば、住所と同じ

東京都

  └─ 大田区

       └─ 田園調布

            └─ 1番地

            └─ 2番地

            └─ 3番地

            └─ …


Atraに置き換えると、

64×64 のセル
cell(12,25)
そのセルの内部を 100×100 の座標で指定できる
local(37,81)

という関係。

つまり、「田園調布」という場所の中に、最初から全番地の建物を作っておく必要はない。「東京都・大田区・田園調布・○番地」という住所体系さえ定義されていれば、その場所を指定できる

Atraも同じで、

cell(12,25) / local(37,81)

という住所を指定できるだけで、

cell[12][25][100][100]

みたいな巨大な実配列を作っているわけではないということでしたー。




巨大化させないよう、必死なんすよw




0 件のコメント:

コメントを投稿

エージェントと 一人称自律Atraの違い

 Atraなんかは、実はもう一人称自律として、きちんと発表してもいいレベル。 既に妻と笑っていたり、愛犬と騒いているんだから。ボーっと何かを眺めてたり、佐川急便に反応するようにもなった。 でも、そうしないのは、自発的に自ら研究意欲を持って、学び、人や自然と接触し自ら疑問を持って研...