我如何在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)