gpt4 book ai didi

排除范围内的 C++ 随机数

转载 作者:太空狗 更新时间:2023-10-29 20:14:56 26 4
gpt4 key购买 nike

我想生成 0 到 5 范围内的随机数,但例如,在某些情况下我不需要数字 3,我只需要 0、1、2、4、5。如何生成随机数在范围内,但可以选择排除我不需要的号码。

最佳答案

这是另一个使用 C++ 11 的现代特性的解决方案。

#include <functional>
#include <iostream>
#include <ostream>
#include <random>

int main()
{
std::random_device rd;

unsigned long seed = rd();
std::cout << "seed " << seed << std::endl;

std::mt19937 engine(seed);

// Distribution {0, 1, 2, 4, 5}
std::discrete_distribution<> dist {{1, 1, 1, 0, 1, 1}};
auto rng = std::bind(dist, std::ref(engine));

const int n = 10;
for (int i = 0; i != n; ++i)
{
int x = rng();
std::cout << x << std::endl;
}

return 0;
}

关于排除范围内的 C++ 随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14919823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com