相关疑难解决方法(0)

圆数向量的数字到整数,同时保留他们的总和

如何在保留总和的同时将浮点数舍入为整数?具有以伪代码写的下面的答案,伪代码将向量舍入为整数值,使得未改变的元素和舍入误差的总和最小化.我想在R中有效地实现这一点(如果可能的话,矢量化).

例如,舍入这些数字会产生不同的总数:

set.seed(1)
(v <- 10 * runif(4))
# [1] 2.655087 3.721239 5.728534 9.082078
(v <- c(v, 25 - sum(v)))
# [1] 2.655087 3.721239 5.728534 9.082078 3.813063
sum(v)
# [1] 25
sum(round(v))
# [1] 26
Run Code Online (Sandbox Code Playgroud)

答案中复制伪代码以供参考

// Temp array with same length as fn.
tempArr = Array(fn.length)

// Calculate the expected sum.
arraySum = sum(fn)

lowerSum = 0
-- Populate temp array.
for i = 1 to fn.lengthf
    tempArr[i] = { result: floor(fn[i]),              // Lower …
Run Code Online (Sandbox Code Playgroud)

r rounding

7
推荐指数
2
解决办法
2721
查看次数

标签 统计

r ×1

rounding ×1