是否有任何STL函数可让您创建一个随机数加起来为1的向量?理想情况下,这将取决于向量的大小,这样我就可以使向量的大小为23,并且此函数将使用介于0和1之间的随机数加起来总计为1的那23个元素。
一种选择是使用generate
随机数填充向量,然后使用accumulate
求和,最后将向量中的所有值除以和,以将和归一化。如图所示:
std::vector<double> vec(23);
std::generate(vec.begin(), vec.end(), /* some random source */);
const double total = std::accumulate(vec.begin(), vec.end(), 0.0);
for (double& value: vec) value /= total;
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句