我如何在Excel中实现“平衡的”错误传播function?

我有一个要求在Excel中传播小; 即便士,在我的俱乐部成员之间进行四舍五入的错误。

当我从会员中扣除资金时出现错误; 例如,分成21个成员的£30是£1.428571 …要求从每个成员中扣除1.43英镑,总共£30.03,以达到£30的目标。

继续上面的例子,我想要从每个成员中扣除1.42英镑,总计29.82英镑,然后用误差扩散技术扣除剩余的0.18英镑,从21名成员中的18名中随机抽取一分钱。

这立刻让我想到了水库采样,我用这里的信息: 随机select ,在这里构buildExcel电子表格的testing: https : //www.dropbox.com/s/snbkldt6e8qkcco/ErrorSpreading.xls ,在Dropbox上为你伙计们玩…

我遇到的问题是,这个电子表格的每一行都会独立计算错误分布,这会导致一些成员贡献更多的额外便士。

我正在寻找的是Resevoir采样技术的一种修改,或者我不知道的另一种平衡/二维误差扩散方法,这将最小化许多“误差扩展”行中成员之间的整体误差。

我认为这是其中一个具有大量其他用途的挑战性的问题之一,所以我希望你的天才有一些好主意!

感谢您的任何见解,你可以分享:)

我find了解决scheme。 不是很优雅,通过。 你必须使用两个matrix。 在第一个你得到完全随机数,select= RANDOM(),在第二个你selectn更大的价值说在F30你有第一个

= RANDOM()

细胞。 (我已经试过了你的工作表)

只需在列A)中复制一列n(在表8中)在单元格F52中,您将:

= IF(RANK(F30,$ F30:$ Z30)<= $ A52,1,0)

到现在为止,如果向左下拖动公式,则表单中的情况相同(只是不够优雅和高效)。

但从第二排随机数开始,你可以弥补一分钱的花费。

在单元格F31中,你把:

= RANDOM() – SUM(F $ 52:F52)* 0.5

(注意$,每个随机数字应该有一个基于便士已经花费更正)。如果$是好的,你应该好的拖动公式左和右。 您也可以参数化0.5,并用其他值进行实验。 用0,5我有1和2之间的错误因素(相当于您的单元格AB24)