随机序列测试方法详解
在数据分析和随机数生成领域,对随机序列进行有效测试至关重要。本文将详细介绍几种常见的随机序列测试方法,包括串行测试、间隔测试、t 最大值测试、串行相关测试和排列测试,并给出相应的代码实现和解释。
1. 串行测试(Serial Test)
串行测试旨在寻找序列中 $x_n$ 和 $x_{n+1}$ 之间的相关性。具体做法是生成一个二维直方图,记录输入文件中每个可能的 $x$ 值对出现的频率,然后使用 $\chi^2$ 检验来检测是否偏离均匀分布。
- 测试要求 :输入文件至少包含 10,000 个值,使用相对较少的区间(bins),这里为 16 个,以确保 $\chi^2$ 检验有足够的计数。
- 代码实现 :
#define BINS 16
int main(int argc, char *argv[]) {
FILE *g;
int typ;
double v, p;
typ = atoi(argv[1]);
g = fopen(argv[2],"r");
v = chisq(typ, g);
p = chisq_pval(v, BINS*BINS-1);
printf("\nchisq = %0.8f, p-value = %0.8f\n\n", v, p);
fclose(g);
}
double chisq(int typ, FILE *g) {
int n=0,i,j,b0,b1
超级会员免费看
订阅专栏 解锁全文
5844

被折叠的 条评论
为什么被折叠?



