首页 > 其他 > 详细

随机数发生器

时间:2015-12-22 21:19:38      阅读:107      评论:0      收藏:0      [点我收藏+]

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int n=100;

int m=100000;

double random()//生成0-1之间的随机数

{

    return (double)rand()/RAND_MAX;

}

int random2(int m)//生成[0,m-1]之间随机数

{

    return (int)(random()*(m-1)+0.5);

}

int main()

{

    srand(time(NULL));

    printf("%d %d\n",n,m);

    int i;

    for(i=0;i<m;i++)

    {

        if(rand()%2==0)

            printf("A");

        else

            printf("B");

        int x,y;

        for(;;)

       
{

            x=random2(n)+1;

            y=random2(n)+1;

        }

        if(x!=y)

        {

            break;

        }

        printf("%d %d",x,y);

    }

 

    return 0;

}

先生成[0-1]之间的随机数,再乘以m-1,加上0.5生成[0-m-1]之间的随机数。

rand()%n---->生成[0-n]之间随机数,但是结果又可能不均匀。

随机数发生器

原文:http://www.cnblogs.com/candybread/p/5068047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!