随机数生成器:从均匀到非均匀的探索
1. 组合生成器的周期探究
在随机数生成领域,组合生成器是一种有趣的尝试。下面是一段用于探究组合生成器周期的代码:
void main() {
unsigned int j;
unsigned long long i;
for(j=0; j<5; j++) {
i=a=b=c=0;
do {
AA(j); BB(j); CC(j);
i++;
if ((a==0) && (b==0) && (c==0))
break;
} while (1);
printf("(%u,%u,%u) = %llu\n", A[j],B[j],C[j],i);
}
}
上述代码中,有三个计数器 a 、 b 和 c 。对于函数 AA 、 BB 和 CC 中使用的每个上限(模),我们会问这样一个问题:在回到起始点 a=b=c=0 之前,需要经过多少次循环?计数结果存储在 i 中。 A 、 B 和 C 中的上限都是质数,每个大约是前一个的三倍
随机数生成与分布转换探析
超级会员免费看
订阅专栏 解锁全文
229

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



