7

単精度の一意の乱数のみを含むバイナリ ファイルを生成する必要があります。目的は、このファイルのエントロピーを計算し、それを他のデータセットのエントロピーと一緒に使用して、比率 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 を取得できますか?それらがランダムでなくても、シャッフルされたシーケンスで十分だと思います..

4

1 に答える 1