生成20个不重复的随机数
2023-01-17阅读(287)
问:请问如何在excel中生成20个随机数,要求是1-80以内的整数,不重复。谢谢。
- 答:启用迭代计算 后 用随机公式:
- 答:在A2输入公式:
=SMALL(IF(COUNTIF(A$1:A1,ROW($1:$80)),99,ROW($1:$80)),1+INT(RAND()*(82-ROW(A1))))
公式以CTRL+SHIFT+ENTER三键结束。
将公式向下复制到A21单元格。 - 答:=RANDBETWEEN(范围下限整数,范围上限整数)
问:c++20个随机数不重复
- 答:随机取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;
} - 答:/*
55 45 65 5 10 20 70 90 100 60 50 75 95 40 15 85 30 80 25 35
请按任意键继续. . .
*/
#include <iostream>
#include <ctime>
using namespace std;
#define N 20
bool Has(int a[], int n, int num) {
for(int i = 0; i < n; ++i)
if(a[i] == num) return true;
return false;
}
int main() {
int i,num,a[N];
srand((unsigned)time(NULL));
for(i = 0; i < N; ++i) {
num = rand()%96 + 5;
if(Has(a,i,num) || num%5) --i;
else a[i] = num;
}
for(i = 0; i < N; ++i) printf("%d ",a[i]);
printf("\n");
return 0;
}
问:C++求20个随机不重复的数字
- 答:#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
for(int i=0;i<20;i++)
cout<<rand()%80+20<<endl;//20-100随机数
return 0;
}