NIST随机性测试需要ASCII 0和1序列,但不接受MATLAB的任何试验

2024-09-30 05:32:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用NIST随机性测试套件对我的长0-1位序列进行随机性测试。 它需要我提供ASCII的0和1,或者每个字节有8位数据的二进制文件。但是,我试过了

save(...,'-ascii')fwrite()和其他一些命令使它工作,但是它不接受,它给我一个segmentation error+igamc: UNDERFLOW error.

如果有人能说如何创建完全匹配的格式,这将是非常好的。此外,如果有人知道MATHEMATICA,他们从MATHEMATICA创建了他们自己的示例文件,也许它可以帮助关于格式,你可以告诉我在MATLAB中做什么。在

BinExp[num_,d_] := Module[{n,L},

If[d > $MaxPrecision, $MaxPrecision = d];

n = N[num,d];

L = First[RealDigits[n,2]]

];

SE = BinExp[E,302500];

Save["data.e",{SE}];

Tags: 文件数据字节套件格式ascii序列error
1条回答
网友
1楼 · 发布于 2024-09-30 05:32:28

我假设您已经按照manual中的说明安装(编译)了软件

如需了解如何运行软件,请参阅手册第5.3节。在

您可以在matlab中生成随机0/1的ascii文件,如下所示:

N=10000;  % <  length of sequence

seq = rand(N,1)>0.5;    
fid=fopen('test.txt','w','native');
fprintf(fid,'%d',seq)
fclose(fid)

[Hat tip@Amro,他在下面的注释中解释了备用二进制文件格式。]

将文件放入程序源目录并运行

^{pr2}$

或系统上的等效程序,并按照提示进行操作。输出位于\experiments\AlgorithmTesting\

您可以使用文件夹\data中的测试数据来评估程序,并与附录B中列出的结果进行比较,例如这里使用ASCII格式的pi rep in数据.pi公司名称:

> ./assess.exe 1000000 

    0 [data source?]
    .\data\data.pi [path to file?]
    1 [tests?]
    0 [adjust pars?] 
    1 [bitstreams?] 
    0 [ASCII?]

编辑

以下是Amro解释如何将0/1的字符串数组a写成二进制的解释(未经测试):

fid=fopen('test.txt','w','native');
fwrite(fid, bin2dec(reshape(num2str(A),[],8)), 'uint8')
fclose(fid)

相关问题 更多 >

    热门问题