c语言按概率生成随机数
时间: 2023-07-13 14:09:47 浏览: 297
C语言中可以使用rand()函数来生成随机数,但是这个函数生成的随机数并不是真正的随机数,而是伪随机数,因为它是根据一个固定的种子值来生成的。
要按概率生成随机数,需要使用一些概率分布函数,比如均匀分布、正态分布等。具体实现可以使用C语言中的math库中的函数,比如rand()和srand()函数来生成随机数的种子,以及使用rand()函数和一些算法来生成符合特定概率分布的随机数。
以下是一个例子,演示如何按照均匀分布生成随机数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, num;
float r;
// 设置随机数种子
srand(time(0));
// 生成10个在0-1之间的随机数
for(i=0; i<10; i++)
{
r = (float)rand() / RAND_MAX;
printf("%f\n", r);
}
return 0;
}
```
在这个例子中,srand()函数用来设置随机数种子,time(0)获取当前时间作为种子值。生成随机数时,先使用rand()函数获取一个随机数,再除以RAND_MAX得到0-1之间的随机数。循环10次,每次生成一个随机数并输出。
阅读全文