生成20个不重复的随机数

生成20个不重复的随机数

问:请问如何在excel中生成20个随机数,要求是1-80以内的整数,不重复。谢谢。
  1. 答:启用迭代计算 后  用随机公式:
  2. 答:在A2输入公式:
    =SMALL(IF(COUNTIF(A$1:A1,ROW($1:$80)),99,ROW($1:$80)),1+INT(RAND()*(82-ROW(A1))))
    公式以CTRL+SHIFT+ENTER三键结束。
    将公式向下复制到A21单元格。
  3. 答:=RANDBETWEEN(范围下限整数,范围上限整数)
问:c++20个随机数不重复
  1. 答:随机取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;
    }
  2. 答:/*
    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个随机不重复的数字
  1. 答:#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;
    }
生成20个不重复的随机数
下载Doc文档

猜你喜欢