来自特定数组的 C++ 随机数生成器

标签 c++ arrays random

我希望能够从我将放置的特定数组中生成随机数。例如:我想从数组 {2,6,4,8,5} 中生成一个随机数。只是我想要生成的数组中没有模式。

我只能从视频教程 https://www.youtube.com/watch?v=P7kCXepUbZ0&list=PL9156F5253BE624A5&index=16 中搜索如何使用 srand() 生成 1-100 的随机数但我不知道如何指定它将从中搜索的数组..

顺便说一句,我的代码与此类似..

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(int argc, char*argv[])
{
    srand(time(0)); 

    int i =rand()%100+1;
    cout << i << endl; 
    return 0;
}

最佳答案

这是一种现代的 C++ 方法:

#include <array>
#include <random>
#include <iostream>

auto main() -> int
{
    std::array<int, 10> random_numbers = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 };

    std::random_device random_device;
    std::mt19937 engine(random_device());
    std::uniform_int_distribution<int> distribution(0, random_numbers.size() - 1);

    const auto random_number = random_numbers[distribution(engine)];
}

您可以在此处的标准库中阅读有关 C++ 随机功能的更多信息:http://www.cplusplus.com/reference/random/

关于来自特定数组的 C++ 随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161764/

相关文章:

python - 如何生成与标度无关的随机 float ?

c++ - 具有派生参数的基本c'tor

php - 如何格式化 unix 时间戳数组中的日期列表?

javascript - 我怎样才能在Javascript中获得可变长度数组的前3个元素

javascript - 如何随机化div的位置

Excel:如何生成具有低和高2个实数的实数随机数?

用于整数三角函数的 C++ 库,使用可选近似值优化速度?

c++ - 如何清除 ifstream 中的异常掩码?

c++ - 如何在另一个函数中使用一个函数?

php - 将数组添加到sql数据库中