CC33:碰撞的蚂蚁

题目

在n个顶点的多边形上有n只蚂蚁,这些蚂蚁同时开始沿着多边形的边爬行,请求出这些蚂蚁相撞的概率。(这里的相撞是指存在任意两只蚂蚁会相撞)
给定一个int n(3<=n<=10000),代表n边形和n只蚂蚁,请返回一个double,为相撞的概率。
测试样例:

3
返回:0.75

解法

这道题考察数学的,每只蚂蚁都可以选择走临近的两条边其中的一条,所以总共有\(2^{n}\)种情况。所有蚂蚁不相撞的的情况为都朝,向同一个方向,要么顺时针、要么逆时针,两种情况,所以最后拿1一减就行了。

class Ants {
public:
    double antsCollision(int n) {
        // write code here
        if(n<3) return 0;
        return (1-2/pow(2,n));
    }
};
posted @ 2018-07-26 10:05  MrYun  阅读(184)  评论(0编辑  收藏  举报