最近のほとんどのコンピューターは、非決定論的な動作を示します。これにより、コンピューター クロックを読み取るための 2 つの連続する呼び出しの間に発生するクロック サイクル数を知ることができなくなります。
次のコードは、コンピュータ クロックを使用した 1 バイトの疑似乱数ジェネレータです。
unsigned long occurrences = 0;
unsigned long total = 0;
while (true) {
if ((clock() & 0xFF) == 60) // testing ocurrences for a given number, 60 for instance
occurrences++;
total++;
printf("%f\n", (float)occurrences / (float)total ); // this should be approximately 1/256 = 0.00390625
}
たとえば、暗号化などの深刻なアプリケーションを除いて、ゲーム用のモバイル プラットフォームで使用できます。
そのような実装の長所と短所は何でしょうか。