二维香槟塔物理模型分析
在取消酒杯数量和行数的限制下,还原倒酒全过程,深度分析第[i,j]个酒杯注满需要多少杯酒
这篇笔记先单纯分析问题
我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟。
从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次类推。
- 酒从上往下注入,金字塔形状的酒杯顺序,也就是说如果建立一个坐标系,给每个酒杯一个坐标的话,从上往下,从左往右的坐标顺序为:[1,1]、[2,1]、[2,2]、[3,1]、[3,2]、[3,3]、[4,1]…
- 再来思考1杯酒注入后的情况(第一杯直接跳过),从第二杯开始,第一行酒杯把酒平分成2个1/2注入第二行,第二行每个酒杯在1/2的基础上再分1/2注入第三行,以此类推,每注入1杯酒,再不考虑其他因素的影响下,第i行酒杯接收到的酒应该是1/2(i-1)的量。
- 接下来我们再考虑一下边角位酒杯和中间位酒杯的问题,边角位酒杯(坐标为[i,1]和[i,i]的酒杯)只接收上一行一个酒杯的注入,所以,1杯酒倒下来,边角位酒杯获得的酒量是1/2(i-1),但是中间位获得的酒量是2*1/2(i-1)=1/2(i-2)的酒量
- 我们再多扩展几行,发现除了每个酒杯因为位置不同导致的一次注入量不同外,注入时间的先后以及注入速率也需要考虑进去
- 先考虑注入速率,从第三行开始,三个酒杯的注入速率分别是1/4、2/4、1/4,到第四行,四杯酒的速率收到第三行不同速率的影响,注入速率分别是1/8、3/8(1/8+2/8)、3/8(2/8+1/8)、1/8,以此类推。
- 再考虑注入时间先后的问题,从第三行开始,三个酒杯中,肯定是[3,2]酒杯先注满,所以,当第三行酒杯全部注满时,第四行酒杯中的[4,2]和[4,3]已经注入了4/8的酒了,随着酒注入越来越多,整个酒水在所有酒杯的中的分布,成一个缺了底角的菱形样式(即每一行越靠近中间的酒杯注入酒的速度越快,注满所需要的酒量也越少)。
- 每层酒杯有一个特性,就是同一层所有酒杯的速率之和为1(感觉这个特性并没什么用)
- 香槟塔整体是个左右对称的结构,是不是可以只模拟某一侧的酒杯情况就行?