祝各种小伙伴周末愉快。今天和周日,我们将使用电子表格玩得开心,并模拟给红包的算法。100元会给10个红包,然后模拟金额的分布10,000次,看运气的最佳分布。该算法在工作中的应用场景是固定一个数据,然后生成n个随机数,其总和等于该固定数据。首先,我们创建一个辅助项目,输入公式为:=($ C1-sum($ C2:C2))/($ a1-a2)* 2-0.01C3到C11的公式是:=随机区间(1,B3*100)/100C12的公式是:= C1-萨默(C3:C11)< p>

< p >这个公式看起来很复杂,但实际上它是一个算法思想。首先,b列给出了红色数据包分发间隔的最大值,c列在该间隔内生成随机数。b栏中红包间隔的定义如下:在第一个红包里,每个人平均可以得到100/10=10元,所以第一个红包的金额随机在0.01-19.9元之间。在第二个红包中,下面的人可以得到第一个红包的平均值(100- 4.4)/9,然后第二个红包的量在平均值的0.01-2倍的范围内,从而将其向下推。最后一个红包的金额使用总金额减去所有以前的金额,确保最后一个人的金额至少为0.01根据这一思路,如果再次理解上述公式,就可以理解。然后我们计算最好的运气< p >使用公式计算出现的位置:< p > =匹配(最大值(C3:C12),C3:C12,0)< p>

然后我们模拟10,000次,并记录10,000次的最佳位置。这项工作由VBA完成。我们按ATL+F11,插入一个模块,然后输入代码并运行子模拟()对于i = 1至10000个电池(I,“h”)=< p >最后,我们进行了3次计数并分析了10,000次计数,无论是使用透视表还是计数。< p>

根据数据的分布,第一个或最后一个人拿红包的最佳概率稍高一些,所以每个人都应该慢慢地拿红包。。。< p> -《[作者超越自学授权权限骑士价值品牌馆》发行