c++20个随机数不重复
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/03 18:41:03
c++20个随机数不重复
范围在5~100,且每个数相差为5,即5,10,15,20.所以等于每一轮产生的20个数字是固定的,只不过顺序不一样,怎么写?
范围在5~100,且每个数相差为5,即5,10,15,20.所以等于每一轮产生的20个数字是固定的,只不过顺序不一样,怎么写?
![c++20个随机数不重复](/uploads/image/z/14629081-49-1.jpg?t=c%2B%2B20%E4%B8%AA%E9%9A%8F%E6%9C%BA%E6%95%B0%E4%B8%8D%E9%87%8D%E5%A4%8D)
随机取20个出来,与每个位置上的值交换.原来楼上的回答和我的是一样的.#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int array[] = {
5, 10, 15, 20, 25,
30, 35, 40, 45, 50,
55, 60, 65, 70, 75,
80, 85, 90, 95, 100
};
int main() {
int a, b, t;
srand(time(NULL));//下随机数种子.
for (int a = 0; a < 20; a++) {
b = rand() % 20;
t = array[a];
array[a] = array[b];
array[b] = t;
}
for (int a = 0; a < 20; a++)
cout << array[a] << ',';
cout << endl;
return 0;
}
再问: 我还看到了这个,是产生1~10十个不重复的随机数,但是我没看懂怎么实现不重复的,能讲下吗?![](http://img.wesiedu.com/upload/e/ed/eed3bdc61f76cef0435db408080dc886.jpg)
再答: 随机产生一个1~10的数,如果有跟前面一样的,就重新取随机数. 第一个for循环就回退一部.i--就是这个意思.
#include<cstdlib>
#include<ctime>
using namespace std;
int array[] = {
5, 10, 15, 20, 25,
30, 35, 40, 45, 50,
55, 60, 65, 70, 75,
80, 85, 90, 95, 100
};
int main() {
int a, b, t;
srand(time(NULL));//下随机数种子.
for (int a = 0; a < 20; a++) {
b = rand() % 20;
t = array[a];
array[a] = array[b];
array[b] = t;
}
for (int a = 0; a < 20; a++)
cout << array[a] << ',';
cout << endl;
return 0;
}
再问: 我还看到了这个,是产生1~10十个不重复的随机数,但是我没看懂怎么实现不重复的,能讲下吗?
![](http://img.wesiedu.com/upload/e/ed/eed3bdc61f76cef0435db408080dc886.jpg)
再答: 随机产生一个1~10的数,如果有跟前面一样的,就重新取随机数. 第一个for循环就回退一部.i--就是这个意思.