1 と -1 のみを含む整数の大きな配列を fortran で作成する必要があります。最小限のメモリスペースしか必要としないような配列を定義する方法を教えてください。
ありがとうございました
1 と -1 のみを含む整数の大きな配列を fortran で作成する必要があります。最小限のメモリスペースしか必要としないような配列を定義する方法を教えてください。
ありがとうございました
簡単なアプローチ:
use ISO_FORTRAN_ENV
integer (INT8), dimension (N) :: array
これにより、バイトサイズの整数が得られます。(コンパイラがより大きな整数でそれらを実装することを実際に選択しない限り、これは信じがたいようですが、おそらく許可されます。)
配列が本当に巨大でストレージに収まらない場合、変数内のビットにアクセスできますが、それは単純な配列ではありません。
-1 をすべて 0 に変換すると、配列のメンバーごとに 1 ビットしか必要ありません。1 と 0 のみを含むこのような変換された配列を考えると、それを 32 ビットまたは任意のサイズの整数にパックすることは難しくありません。