PinkCat

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

#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]之间随机数,但是结果又可能不均匀。

posted on 2015-12-22 20:44  人间君  阅读(170)  评论(0编辑  收藏  举报