下载此文档

c 产生随机数.docx


文档分类:IT计算机 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
用 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<

c 产生随机数 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人niupai11
  • 文件大小14 KB
  • 时间2022-05-20