c语言中如何生成1个0到1的随机数

Python09

c语言中如何生成1个0到1的随机数,第1张

float

b=rand()/(RAND_MAX+1.0)

printf("%f\n",b)

注释:

stdlib.h头文件中有宏#define

RAND_MAX

0x7fff

rand()产生一个0到0x7ffff即0到32767之间的随机数

rand()/(RAND_MAX+1.0)就等于一个0到1之间的小数了,因为rand()最大是32767最小是0,再除以32768就是一个0到1之间的小数(不能等于1),再乘以10就是一个0到10之间的数了(不等于10).最后再加1,就成了一个求1到10之间随机数的式子了.

下面是用C产生0-9的随机数,rand()函数产生的是伪随机数,反复调用函数rand所产生的一系列数似乎是随机的,但每次执行程序所产生的序列则是重复的。需要用srand()函数每次给不一样的种子

#include

<stdlib.h>

//标准工具库,要用到其中的rand()

#include

<stdio.h>

#include<conio.h>

#include

<time.h>

//时间库,要用到里面的时间来做随机数的种子

int

main(void)

{

int

i

srand(time(NULL))

printf("Ten

random

numbers

from

0

to

9\n\n")

for(i=0

i<10

i++)

printf("%d\n",

rand()%10)

getch()

return

0

}

float b=rand()/(RAND_MAX+1.0)

printf("%f\n",b)

注释:

stdlib.h头文件中有宏#define RAND_MAX 0x7fff

rand()产生一个0到0x7ffff即0到32767之间的随机数

rand()/(RAND_MAX+1.0)就等于一个0到1之间的小数了,因为rand()最大是32767最小是0,再除以32768就是一个0到1之间的小数(不能等于1),再乘以10就是一个0到10之间的数了(不等于10).最后再加1,就成了一个求1到10之间随机数的式子了.