一道初中奥数题的蒙特卡洛解法

四只鸭子在一个圆形水池中随机游动。某一时刻,四只鸭子在同一半圆内的概率是多少? 这个问题必须隐含一个前提:当水池被分为两半后,任意一只鸭子,要么属于这一边,要么属于另一边,不存在同时属于两边或不属于任何一边的情况。可以把鸭子视作质点,如果鸭子正好落在分割线上,则认为此鸭子属于顺时针……

Python 的 MRO 和 C3 线性化

MRO,即 Method Resolution Order、方法解析顺序,是 Python 对象调用父类方法时的遍历顺序。由于 Python 支持多重继承,类的继承关系可视作一个有向无环图,方法解析顺序就相当于拓扑排序——将图中节点线性排列。自 Python 2.3 起,新式类通过 C3 线性化算法来计算 MRO。 之所以被称作 C3,是因为算法符合如下三个特性(Cons……