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

原创 2006年05月26日 18:45:00

//////////////////////////////////////////////////////////////////
// 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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【ASP】在特定的范围内产生N个不同的随机数

那么,要在1~20连续产生20个不同的随机数,也就是随机排列1~20,该怎么解决呢?

随机生成一个n bit位的长整数(随机函数的使用,特定区间随机数的生成方法)

2.2: 随机生成一个n bit位的长整数。函数签名如下     long createRndInteger(int n)     输入:随机数bit位的长度为n(解释:3bit位,则最大为111...

生成n个互异随机数的初步算法

自己脑洞到的随机数生成算法,且称之为苏氏算法(Su's Algorithm)吧。o(*≧▽≦)ツ  给定一个随机数生成范围,在O(n^2logn)的时间复杂度中输出n个互不相同的随机数并按照升(降)序...

百度面试题--M个不同的奖牌,每次随机取一个,一共可以取N次,取到所有M个不同奖牌的概率

昨天百度二面题,听到这个题目有点蒙,直接上手求概率,没求出来。。二面很槽糕,很多问题回答的不好,估计没戏了。。 好把,这道题目表面上是一道概率题,实际它是一道算法题 定义P(n,m)表示m个不同的...

一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?

题目描述:       输入n个互不相同的字符串  求解它们的可能的出栈方式,并输出出栈序列。 求解方法:           计...

STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数

一.随机重新排列 将一个序列打乱并对其进行随机的重新排列,关键在于每种序列的被选择概率要一样,不然有失“公平”。现在让我们来寻找如何保证每种序列被选择的概率一样大的算法。 首先假设这个数组...

STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。

本文将介绍三个有趣的随机问题,分别是随机重新排列、从文件中随机取一行数据、生成N个随机数。随机重新排列将一个序列打乱并对其进行随机的重新排列,关键在于每种序列的被选择概率要一样,不然有失“公平”。现在...

STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。

STL系列十一 随机三趣题——随机重排,文件中随机取一行,生成N个随机数。 标签: randomiteratornull算法百度 2012-06-24 23:28 1763...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)