关于#c++#的问题:用C++生成在一个区间内的随机数,并排除部份数,如生成1-100中10个除51

用C++生成在一个区间内的随机数,并排除部份数,如生成1-100中10个除51,79,88以外的整数

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main() 
{
    srand(time(0));    
    char a[100];
    int b = 0;    
    for (int c = 1; c <= 100; c++)
    {
        if (c != 51 && c != 79 && c != 88)
        {
            a[b] = c;
            b++;
        }
    }    
    for (int d = 0; d < 10; d++)
    {
        int e = rand() % b;
        int f = a[e];        
        cout << f << " ";
    }    
    return 0;
}

【以下回答由 GPT 生成】

我可以通过使用C++的随机数库和条件判断来解决这个问题。以下是一个实现此功能的示例代码:

#include <iostream>
#include <random>
#include <vector>

// 生成[start, end)范围内的随机数,并排除excludeValues中的特定数值
int generateRandomNumber(int start, int end, const std::vector<int>& excludeValues) {
    // 初始化随机数生成器
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(start, end - 1);

    int randomNumber;
    bool isExcluded;

    do {
        isExcluded = false;
        randomNumber = dis(gen);

        // 检查生成的随机数是否在excludeValues中
        for (int value : excludeValues) {
            if (randomNumber == value) {
                isExcluded = true;
                break;
            }
        }
    } while (isExcluded);  // 如果生成的数在排除列表中,则继续生成随机数

    return randomNumber;
}

int main() {
    int start = 1;
    int end = 101;
    std::vector<int> excludeValues = {51, 79, 88};
    std::vector<int> randomNumbers;

    // 生成10个满足条件的随机数
    for (int i = 0; i < 10; i++) {
        int randomNumber = generateRandomNumber(start, end, excludeValues);
        randomNumbers.push_back(randomNumber);
    }

    // 输出生成的随机数
    for (int randomNumber : randomNumbers) {
        std::cout << randomNumber << " ";
    }
    std::cout << std::endl;

    return 0;
}

这段代码使用了C++的随机数库<random>中的std::random_devicestd::mt19937来生成随机数,以及std::uniform_int_distribution来定义生成随机数的范围。我们通过一个循环来检查生成的随机数是否在excludeValues中,如果是,则继续生成直到获得满足条件的随机数。最后,我们将生成的随机数保存在randomNumbers向量中,并输出结果。

请注意,这个解决方案是一种基本的实现方法,但不保证在特定情况下的效率和随机性。在实际应用中,可能需要根据需求进行优化和改进。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^