随机数的完美获得

/****************************

要验证准确性可去掉注释掉的部分

****************************/



#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define numb1 15
#define numb2 5
/****************************
numb1: 确定要产生多少个连续的随机数
numb2: 对随机数的范围进行平移
****************************/
int main(){
    //int f = 0;

    //int cq=1000;

    int c[numb1]   = {0};         /**用来检验随机数是否存在,初始化为零**/


    int cnt[numb1] = {0};        /**取出随机数**/


    int count =0;       /**用来保证取完后,程序结束**/

    srand(time(NULL));/**时间种子**/
    //while(cq--){

    while (1)
    {
        int r = rand()%numb1;  /**产生numb1个随机数,范围是0到numb1-1**/

        if (++c[r] > 1)/**若已经有随机数和该数组的编号相同,则重新置数**/
            continue;
        else
        {
            cnt[count] = r + numb2;             /**cnt安顺序取数
                                                numb确定幅度,或说是平移的角度
                                                **/



            printf("%2d   ", cnt[count]);   /**看数,从零开始**/

            if (++count >= numb1)          /** 1<+>1**/

            break;
        }
  // }

  /**   count = 0;
        printf("\n");
        for(f = 0;f<numb1;f++){
            c[f]=0;
        }**/
    }

    return 0;
}

posted on 2016-05-01 10:49  renzhaoyang  阅读(306)  评论(0编辑  收藏  举报

导航