単精度の一意の乱数のみを含むバイナリ ファイルを生成する必要があります。目的は、このファイルのエントロピーを計算し、それを他のデータセットのエントロピーと一緒に使用して、比率 entropy_file/entropy_randUnique を計算することです。この値は「ランダム性」と呼ばれます。
Python で倍精度数を使用してこれを行うことができ、次のようset()
に使用して に挿入します。struct.pack
numbers = set()
while len(numbers) < size:
numbers.add(struct.pack(precision,random.random()))
for num in numbers:
file.write(num)
しかし、単精度に変更すると、pack メソッドを変更することはできません (同じ数値が大量に生成され、while が終了することはありません) random
。私は調べましnumpy
たが、ジェネレーターは私が理解したことと同じように機能します。どうすれば 370914252 (これが私の最大のテスト ケースです) バイナリ ファイル内で一意の float32 を取得できますか?それらがランダムでなくても、シャッフルされたシーケンスで十分だと思います..