sách gpt4 ăn đã đi

Rand_Max*(max-min)+min << Đó là gì?

In lại 作者:太空狗 更新时间:2023-10-29 23:28:33 26 4
mua khóa gpt4 giày nike

generate(vec.begin(), vec.end(), [=](){return static_cast(static_cast(ran())
/RAND_MAX*(max-min)+min); });

câu hỏi: RAND_MAX*(max-min)+min);

好的,所以我知道这件事中的算法、lambda 表达式和捕获子句。我的问题对所有这些都非常荒谬。上面加粗的文字是什么意思。我的意思是,我知道它是随机值生成过程的一部分。但是不知道到底是怎么回事。那么有人可以分解那个微小的小代码吗。

câu trả lời hay nhất

static_cast(ran())/RAND_MAX*(max-min)+min);

我假设你打错了 rand() ,它返回一个从 0 到 RAND_MAX 的伪随机整数。让我们以一种澄清优先级的方式重写它:

(T) ( (((double) rand() / RAND_MAX) * (max-min) ) + min

所以它的作用是:

  1. rand() : 取一个介于 0 和 RAND_MAX 之间的随机整数
  2. (double) / RAND_MAX : 用 RAND_MAX 除以 double,得到一个在 0 和 1 之间均匀分布的 double:
  3. * (max-min) : 乘以范围 (max-min) , 产生从 0 到 (max-min) 的双倍数
  4. +min : 添加最小值以产生最小值和最大值之间的随机双数
  5. static_cast : 将其转换回原始类型

结果是phút之间均匀分布的T型随机数和 tối đa .

关于c++ - Rand_Max*(max-min)+min << 那是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545068/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress