You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对二进制文件执行Dieharder测试并指定序列长度解决报错

Dieharder 二进制随机序列测试操作方法

报错原因说明

你使用-g 202参数触发报错,是因为该参数对应读取Dieharder自定义格式的ASCII文本输入,你提供的是原生二进制文件,不符合格式要求,所以返回格式错误。

前置步骤:拆分二进制文件

你的原始文件共10^8位,需拆分得到100个各1000000位的二进制块。1000000位等价于125000字节(8位=1字节),使用如下命令拆分:
split -b 125000 pseudoseq202.bin seq_part_
执行后会生成seq_part_aa、seq_part_ab等共100个拆分文件,每个文件大小刚好为1000000位。

单文件测试命令

使用-g 201参数(原生二进制输入模式),补充参数控制读取长度避免循环重读导致测试失败,正确命令如下:
dieharder -g 201 -f seq_part_aa -a -n 1000000 -b 1
参数说明:

  • -g 201:指定输入为原生二进制文件
  • -f <文件名>:指定待测试的二进制文件路径
  • -a:运行所有标准随机数测试
  • -n 1000000:指定总共读取1000000个样本,匹配单份拆分文件的总位数,避免Dieharder循环重读文件导致测试结果异常
  • -b 1:指定每个样本的位宽为1,匹配二进制序列输入格式

批量测试方法

如果需要一次性测试所有拆分后的100个文件,可以使用bash循环批量执行,结果统一输出到日志文件:

for part in seq_part_*; do
  echo "Testing $part..."
  dieharder -g 201 -f "$part" -a -n 1000000 -b 1 >> dieharder_test_result.txt
done

结果判定规则

单轮测试的p值落在0.01~0.99区间即判定为通过。100次测试的p值整体符合均匀分布,即可证明序列随机性达标。

内容的提问来源于stack exchange,提问作者Shyamalendu Kandar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:06:03