平面上n个顶点的多边形上有n只蚂蚁,这些蚂蚁同时开始沿着多边形的边爬行(一个顶点一只蚂蚁,蚂蚁速度都一样)。现给定一个int n(3<=n<=10000),代表n边形和n只蚂蚁,编写函数返回会有蚂蚁相撞的概率double值。
测试样例:
3
返回:0.75
//要想没有相撞,只有所有的蚂蚁朝一个方向走,要么顺时针,要么逆时针
//每个蚂蚁都有两个选择,所有情况2的n次方种,其中满足条件的2种
class Ants {
public:
double antsCollision(int n) {
return 1.0 - 1.0/(1 << (n-1));
}
};
import java.util.*;
public class Ants {
public double antsCollision(int n) {
//所有蚂蚁同向时不会发生碰撞
return 1-Math.pow(0.5, n-1);
}
}
class Ants {
public double antsCollision(int n) {
return (double)(1.0 / (1 << (n-1)));
}
}