关闭

一个取n个不同的随机数的算法

1824人阅读 评论(0) 收藏 举报

//////////////////////////////////////////////////////////////////
// name:一个取n个不同的随机数的算法
// author:zhaoyongpeng
// date:2006.5.26
///////////////////////////////////////////////////////////////////
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
int main()
{
       int a[100]={0};
       int i=0,length=0,value = 0;
    cout<<" 请输入一个上限整数数值: ";
    cin>>value;
       cout<<"请输入你想得到的互不相同的整数值(应该小于"<<value<<"):";
       cin>>length;

       bool flag=true;
       int temp=0;


  /* Seed the random-number generator with current time so that
   * the numbers will be different every time we run.
   */

       srand( (unsigned)time( NULL ) );
       for(i=0;i<length;i++)
       {
               temp=rand()%value;
               if(i!=0)
               {
                       flag=true;
                       while(flag)
                       {
                               flag=false;
                               for(int j=0;j<i;j++)
                               {
                                       if(a[j]== temp)
                                       {
                                               flag=true;
                                               temp=rand()%value;
                                               break;
                                       }
                               }
                       }
                       a[i]=temp;
               }
               else
               {
                       a[0]=temp;
               }
       }
for(i=0;i<length;i++)
       {
               cout<<a[i]<<"/t";
       }
cout<<endl;
       return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:739206次
    • 积分:9234
    • 等级:
    • 排名:第1983名
    • 原创:123篇
    • 转载:277篇
    • 译文:0篇
    • 评论:93条
    最新评论
    DotNet
    hardware
    source code
    Telecommunication Technology