是的,那个输入文件看起来是正确的。这似乎是一个数量dieharder
测试失败,甚至与dieharder自己发生器产生10M输入:
$ dieharder -o -f example.input -t 10000000 # Generate an input file
$ head -n 10 example.input
#==================================================================
# generator mt19937 seed = 3423143424
#==================================================================
type: d
count: 10000000
numbit: 32
2310531048
808929469
2423056114
4237891648
$ dieharder -a -g 202 -f example.input
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name | filename |rands/second|
file_input| example.input| 2.50e+06 |
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
# The file file_input was rewound 1 times
diehard_birthdays| 0| 100| 100|0.07531570| PASSED
# The file file_input was rewound 11 times
diehard_operm5| 0| 1000000| 100|0.00000000| FAILED
# The file file_input was rewound 24 times
diehard_rank_32x32| 0| 40000| 100|0.00047786| WEAK
# The file file_input was rewound 30 times
diehard_rank_6x8| 0| 100000| 100|0.38082242| PASSED
# The file file_input was rewound 32 times
diehard_bitstream| 0| 2097152| 100|0.56232583| PASSED
# The file file_input was rewound 53 times
diehard_opso| 0| 2097152| 100|0.83072458| PASSED
我不知道究竟你有多少样本需要得到“更好”的结果...但失败教训只有250万的数字看起来像他们预计。
一些试验后,虽然,这似乎是试验开始用〜随机二进制数据的120MB传递:
$ dd if=/dev/urandom of=/tmp/random bs=4096 count=30000
30000+0 records in
30000+0 records out
122880000 bytes transferred in 10.873818 secs (11300538 bytes/sec)
$ du -sh /tmp/random
117M /tmp/random
$ dieharder -a -g 201 -f /tmp/random
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name | filename |rands/second|
file_input_raw| /tmp/random| 1.11e+07 |
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.71230346| PASSED
# The file file_input_raw was rewound 3 times
diehard_operm5| 0| 1000000| 100|0.62093817| PASSED
# The file file_input_raw was rewound 7 times
diehard_rank_32x32| 0| 40000| 100|0.02228171| PASSED
# The file file_input_raw was rewound 9 times
diehard_rank_6x8| 0| 100000| 100|0.20698623| PASSED
# The file file_input_raw was rewound 10 times
diehard_bitstream| 0| 2097152| 100|0.55567887| PASSED
# The file file_input_raw was rewound 17 times
diehard_opso| 0| 2097152| 100|0.20799917| PASSED
相当于122,880,000/4 = 30,720,000
- 所以约31M的整数。