bor*_*kur 13 algorithm shortest-path computation-theory
想象一下立方形的瑞士奶酪.我们通过20x20x20网格对奶酪进行建模.为简单起见,我们假设每个网格立方体完全由奶酪或完全由空气组成.在我们的瑞士奶酪立方体的上方,我们然后倒入水,只穿过立方体中的气孔穿透奶酪.水可以从顶部流到底部通过连续通道,但是如果两个立方体通过面(不仅仅是边缘或角落)连接,它可以仅从一个空气立方体流到下一个空气立方体.水也可以在弯路中流动,例如在水槽排水管中,但它可能不会在奶酪立方体的侧壁上流出.
现在让我们通过如上所述的随机分布的空气和奶酪块来实施瑞士奶酪的模型,其中奶酪p的概率和空气1-p的概率并模拟水流过奶酪以便找出,水是否流经瑞士奶酪块的底部.
通过反复模拟流经瑞士奶酪立方体的水以及奶酪和空气的不同概率,我们可以确定p与水流入瑞士奶酪立方体底部的概率之间的关系,我们将其命名为q.结果如下:
q
1 ************************
0.8 *
0.6 *
0.4 *
0.2 *
0 ***********
0 0.2 0.4 0.6 0.8 1 p
Run Code Online (Sandbox Code Playgroud)
我的气魄:为什么这么奇怪的曲线?
这个问题取自德国第23届联邦信息学竞赛(2004/2005).网上没有提供"为什么这么奇怪的曲线"的答案(提供的解决方案).
我希望我能在这个问题上找到合适的位置.
Igo*_* F. 20
也许您会直观地找到以下解释:
在你的情况下,20*20*20个单元,除非你有至少20个孔,水流的概率正好是0.如果你有20个孔,如果你在一个列中订购它们,水可以流动,但概率是这样的顺序随机出现非常低,20*20 /梳(20 ^ 3,20)〜= 1e-57.随着孔数的增加,连续路径的出现变得越来越可能.
当除了20*20之外的所有细胞都是洞时,阻止流动的唯一方法是将所有干酪细胞分成单个"阻塞"层,例如水平20*20层.(还有其他可能的配置,但也不太可能.每个(x,y)坐标只需要一个奶酪块,每个奶酪块必须与其所有(x,y)邻居联系.但它们可能是沿z轴传播).
一旦你的奶酪块少于20*20,就不能形成一个完整的层,流量概率恰好为1.