私が64ビット整数の非常に大きな配列を持っているとしましょう。たとえば、100万個が次のように定義されているとします。
uint64_t myNumbers[1000000];
課題は、これらの各要素にランダムにアクセスして、各要素が1回アクセスされるようにする方法です。したがって、たとえば、forループを使用してこの配列を反復処理し、すべての数値を合計して結果を得ることができます(オーバーフローしますが、これは重要ではありません)。
私がやりたいのはそれを繰り返すことですが、その配列内の要素にランダムにアクセスすることで、最終的には通常の反復の場合と同じ結果になります。
では、元の配列要素へのポインターの別の配列を作成して、それを反復処理するときに各要素にランダムにアクセスするにはどうすればよいでしょうか。これはリアルタイムで実行する必要はなく、2番目のアレイのセットアップにかかる時間も高速である必要はありません。
基本的に、最初の配列の要素へのポインターのランダムな配列を生成する良い方法を考えることはできず、専門家からの洞察を実際に使用することができます:)