碰撞的蚂蚁

碰撞的蚂蚁

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位以内

全部评论

相关推荐

小火柴燃烧吧:接啊,接了之后反手在咸鱼找个大学生搞一下,量大从优
点赞 评论 收藏
分享
拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务