碰撞的蚂蚁

碰撞的蚂蚁

http://www.nowcoder.com/questionTerminal/83073edaa76b4d179ee0366518a58dba

一、思路

蚂蚁放到所有顶点,规定:蚂蚁逆时针爬为1,顺时针爬为0
容易知道,只有序列全0和全1才不会碰撞,所以概率为
分母,每只蚂蚁2种爬法

二、题解

对这题这样出,准确来说是对n的范围1000位存疑

测试环境:Dev-C++ 5.11

1)用位运算AC

return (1.0-(1.0/(1<<(n-1))));

测试1000,输出0.992188看上去比较靠谱
但是似乎不符合计算机底层,没有数据位数有1000位啊。。。。什么情况???左移不就溢出了?

2)用普通方式AC

return (1-1/pow(2,n-1));

测试1000,输出1.000000,,,由于溢出(就自动取极限了),但是这个符合计算机底层原理

对这道题存疑。。。。为什么上面两种都能AC,后台测试数据不会没有到1000位吧,或许只是31位以内

全部评论

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务