gpt4 book ai didi

任意整数(基本类型)的 C++ 随机数

转载 作者:太空狗 更新时间:2023-10-29 19:57:19 25 4
gpt4 key购买 nike

我有一些任意整数类型的 typedef,例如

typedef unsigned long long myint;

换句话说,我不知道它实际上是如何定义的,但我可以保证它是一个fundamental type。 .

我也有一个这个类型的变量实例

myint n;

如何为 n 分配一个随机值,该值可以是 myint 支持的任何值?


简单地缩放 rand() 的结果以覆盖 myint 的范围是不合适的,因为 myint 可能比int 类型,因此会有不可访问的数字。

像下面这样的东西工作但看起来相当不优雅和低效:找到 myintint 中的位数,然后连接一堆 rand() 数字,直到 myint 被填充。

最佳答案

使用 C++11 <random>图书馆,uniform_int_distribution可以给你任何整数类型:

std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<myint> dis(
std::numeric_limits<myint>::min(),
std::numeric_limits<myint>::max());

myint num = dis(gen);

对于无符号类型,您可以使用 uniform_int_distribution 的默认构造函数, 给出范围 0numeric_limits<T>::max() .

关于任意整数(基本类型)的 C++ 随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37641226/

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