作业帮 > 综合 > 作业

利用幂函数剩余法 产生随即数.公式为 Xn=C*X(n-1)*(modN).其中mod函数为取余.N等于2的(m-1)次

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/15 19:12:02
利用幂函数剩余法 产生随即数.公式为 Xn=C*X(n-1)*(modN).其中mod函数为取余.N等于2的(m-1)次方(m是计算机内部的字长) ,C=8M(+/-)3 M为任一正整数.X0一般取奇数 .
例子:令N=64,C=5,X0=2
X1=5*X0*(mod64)=10 5*2*(mod64)=10*(mod64) 10除以64取余得10 即X1=10
X2=5*X1*(mod64)=50
.
X8=5*X7(mod64)=2
下面的这个程序 调试后有三个错误.由于本人是菜鸟 希望大虾你能多帮帮我啊.
第二个程序怎么看都没有我上面的函数啊 好像就是c语言里面产生的随机数函数啊.
利用幂函数剩余法 产生随即数.公式为 Xn=C*X(n-1)*(modN).其中mod函数为取余.N等于2的(m-1)次
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
FILE *fp=fopen("c:\\rand.txt","w"); /*要写入的文件,可以在此修改*/
FILE *fp2=NULL ;
int i;
int a[10000];
srand(time(NULL)); /*不可放在循环内,否则每次得到相同的“随机数”*/
for (i = 0; i<10000; i++) {
a[i]=rand();
fprintf(fp,"%d ",a[i]);
}
fclose(fp);
sort(a,1000);/*排序函数,请自行实现,可以调用qsort()标准库函数进行排序*/
fp2=fopen("c:\\sort_rand.txt","w"); /*排序之后要写入的文件,可以在此修改*/
for (i = 0; i<10000; i++) {
fprintf(fp,"%d ",a[i]);
}
fclose(fp2);
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
我可以帮助你,你先设置我最佳答案后,我百度Hii教你.