C语言 随机数 概率

Python052

C语言 随机数 概率,第1张

计算机里的取随机数函数是均匀分布的随机数。0.0005的概率,相当于2000个数里取一个。所以我们可以在0到1999范围里取随机数,如果取到数值1000,我们就得1(并响铃),否则得0。#include<stdio.h>#include<stdlib.h>#include<math.h>#include<time.h>voidmain(){longinti,ydoublex,r,M=2000.0srand((unsigned)time(NULL))for(i=0i<5000i++)//取5000个{r=((double)rand()/((double)(RAND_MAX)+(double)(1)))x=(r*M)y=(longint)xif(y==1000){printf("1")printf("\007")//如果得1,就响铃!}elseprintf("0")}}

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <stddef.h>

int main() {

    float a,sum

    int i,j,n,m

    //100次求0-1之间的随机数之和在0-1 1-2之间的概率分布次数

    for(i=0i<100i++){

        srand(time(NULL))

        for(j=0j<10j++){

            a = (float)rand() / RAND_MAX

            sum +=a

        }

        if(sum >=0 && sum <=1)

            n++

        }

        if(sum >1 && sum <= 2){

            m++

        }

    }

    printf("0 1=%d 1 2=%d \n",n,m)

    return 0

}

现成的函数没有,可以通过产生随机数实现概率。

srand((unsigned)time(NULL))

int m,r=0

m=rand()%10

if(m==1||m==2||m==3||m==4||m==5||m==6||m==7)

{

r=r+1

}

这段代码中,执行r=r+1的概率就是0.7

希望可以帮到你