[0,1] の浮動小数点数から [0,1] の浮動小数点数までの反復可能な疑似乱数関数が必要です。つまり、32 ビットの IEEE 浮動小数点数を指定すると、"異なる" 浮動小数点数を返します (24 ビットの仮数部を考慮して、可能な限りランダムに)。反復可能でなければならないため、大量の内部状態を保持することはできません。残念ながら、32 ビットの int と single-float の数学でのみ動作する必要があります (必要に応じてエミュレートできますが、double はなく、32x32=64 ビットの乗算もありません。基本的には、古い CUDA ハードウェアで動作する必要があります)。もちろん、これらのかなり厳しい制限内では、ランダム性が優れているほど優れています。誰にもアイデアはありますか?
(私は、64 ビットの int 演算を必要とする Park-Miller と、double を必要とする Park-Miller の CUDA バージョン、多くの内部状態を持つ Mersenne Twisters、および機能しなかった他のいくつかのことを経験しました。 )