C语言抽取随机数怎么编写

C语言抽取随机数怎么编写,第1张

源程序代码以及算法解释如下:

产生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")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12112938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存