528. 按权重随机选择
把权重分成长度
1 | class Solution { |
使用STL的版本
右开左闭
1 | class Solution { |
或
右闭左开
1 | class Solution { |
C++STL说明:
- mt19937头文件是
是伪随机数产生器,用于产生高性能的随机数 - uniform_int_distribution 头文件在
中,是一个随机数分布类,参数为生成随机数的类型,构造函数接受两个值表示区间段 - accumulate 头文件在
中,求特定范围内所有元素的和。 - spartial_sum函数的头文件在
,对(first, last)内的元素逐个求累计和,放在result容器内 - back_inserter函数头文件
,用于在末尾插入元素。 - lower_bound头文件在
,用于找出范围内不大于num的第一个元素 - upper_bound头文件在
,用于找出范围内大于num的第一个元素 - random_device头文件再
,是非确定性随机数生成器,生成均匀分布的无符号数。生成器可能会依靠非确定源(比如硬件设备)生成真随机数,不过在环境受限时生成伪随机数。