1 / 4
文档名称:

c 产生随机数.docx

格式:docx   大小:14KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c 产生随机数.docx

上传人:niupai11 2022/5/20 文件大小:14 KB

下载得到文件列表

c 产生随机数.docx

文档介绍

文档介绍:用 c 语言产生随机数
在C语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个 伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数, 当这系列数很大的时候,就符合正态公布,从而相umber in the 0-99 range: %d\n", random (100)); return 0;
}
函数名: randomize 这个比较好!
功 能: 初始化随机数发生器
用 法 : void randomize(void); 程序例:
#include <>
#include <>
#include <>
int main(void)
{
int i;
randomize();
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
在《计算机常用算法》中有介绍随机数的生成算法
三 如何产生设定范围内的随机数
由于rand产生的随机数从0到rand_max,而rand_max是一个很大的数,那么如何产生从
X~Y 的数呢?
从X到Y,有Y-X + 1个数,所以要产生从X到Y的数,只需要这样写:
k=rand()%(Y-X+1)+X;
这样,就可以产生你想要的任何范围内的随机数了。
四,产生不重复的随机数
1) #include <>
#include <>
#include<>
#include <>
swap(int *pm,int *pn) /*必须用指针进行交换*/
{int temp; temp=*pm; *pm=*pn; *pn=temp; }
int main(void)
{
int i,a[513]; /*int *pa,*pb;*/
srand( (unsigned)time( NULL ) ); /*定义这个可以产生不同的随机数*/
for(i=1; i<=512; i++)
{a[i]=i;printf("%4d",a[i]);}
for(i=512; i>=1; i--)
{ /* pa=&a[i]; pb=&a[rand()%i+1];*/
swap(&a[i], &a[rand()%i+1]); /*加一是从一到i的随机,就不会包含0*/
/*不用再定义指针,这样结论是一样的*/ }
printf("\n")
for(i=1; i<=64; i++)
printf("%4d",a[i] );
getch(); /*wintc 的输出*/ } 2)
#include <>
#include <>
#include<>
int main(void) {
int a[100]={0}; int i,m;
for(i=1; i<=99; ++i)
printf("%4d",a[i] );
srand( (unsigned)time( NULL ) );
or(i=1; i<