您的位置:首页 > 其它

蚂蚁碰撞概率计算

2016-08-17 12:21 232 查看


题目分析,无论是几只蚂蚁,因为每个蚂蚁占据一个顶点,因此不发生碰撞的情况只有2种,即全部都顺时针爬行或者逆时针爬行。所以只要求出一共爬行的情况就好,而显然有2n 种情况。

第一次提交的代码如下:

import java.util.*;

public class Ants {
public double antsCollision(int n) {
// write code here
int sum = 1;
for(int i = 0;i<n;i++)
{
sum*=2;
}

double reslut = 0;

reslut = (double)(sum-2)/(double)sum;

return reslut;
}
}


对于上述代码,既然我们用到了2的幂,显然使用位运算在性能上会更加划算。

改进之后的代码:

import java.util.*;

public class Ants {
public double antsCollision(int n) {
// write code here
int sum=(1<<n);

double reslut = (double)(sum-2)/(double)sum;

return reslut;
}
}


这样代码性能显然会好很多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: