源程序代码以及算法解释如下:
产生1-10随机数程序:
#include <iostream>
#include <time.h>
using namespace std
int main()
{
const int n = 10//定义随机数个数
int number[n] = { NULL }//定义随机数存储的数组
srand((unsigned)time(NULL))//初始化随机函数
number[0] = rand() % n//第一个随机数无需比较
cout <<number[0] <<" "
for (int i = 1i <ni++)//其余随机数循环产生
{
int j = 0
number[i] = rand() % n//产生随机数
while (1)
{
if (number[i] == number[j])//若有相同则继续循环重新安排随机数
{
number[i] = rand() % n//产生随机数
j = 0//若遇到相同的就从头遍历
continue
}
if (j == (i - 1))//若遍历完就跳出
break
j++
}
cout <<number[i] <<" "
}
cout <<endl
return 0
}
程序运行结果如下:
扩展资料:
利用vector进行随机数输出:
#include <iostream>
#include <vector>
#include <time.h>
using namespace std
int main()
{
const int n = 10
int randnum
vector<int>number
for (int i = 0i <ni++)
{
number.push_back(i + 1) //从尾部添加元素
cout <<number[i] <<" "
}
cout <<endl
srand((unsigned)time(NULL))
for (int j = 0j <nj++) //其余随机数循环产生
{
randnum = rand() % (n - j) //rand函数生成的随机数是0-(n-1)
cout <<number.at(randnum) <<" "
number.erase(number.begin() + randnum)
}
cout <<endl
return 0
}
#导入随机数模块
import random
#定义一个空的数组,用作取样表
reList = []
#为取样表赋值,1~100
for i in range(1,101):
reList.append(i)
#使用sample方法,取3个随机数
res = random.sample(reList,k=3)
print("三个随机数是:{}".format(res))
#include<bits/stdc++.h>using namespace std
int main()
{
//多定义一个c,且将m所有元素的值初始化为0
int a,b,c,h,t(0),m[1000]={0}//t是计数器,让每行只显示八个数
L1:cout<<"请输入抽取范围,两个数字间以空格间隔:"<<endl
cin>>a>>b
if(b<=a)
{
cout<<"输入有误,请重新输入"<<endl
goto L1
}
cout<<"请输入抽取人数:"<<endl
cin>>h
cout<<"恭喜以下"<<h<<"位小可爱,他们是:"<<endl
srand(time(0))
L2:
for(int i=1i<=h/*i++*/)
// m[rand()%(b-a+1)+a]++
{
c=rand()%(b-a+1)+a
//这是第1次抽到c
if(m[c]==0)
{
m[c]=1
i++
}
}
// for(int i=ai<=bi++)//防止一个号码被抽到两次
// if(m[i]>=2)
// {
// memset(m,0,1000)
// goto L2
// }
for(int i=ai<=bi++)
{
if(m[i]==1)
{
cout<<i<<" "
t++
}
if(t==8)
{
cout<<endl
t=0
}
}
cout<<endl
system("pause")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)