今天看到一个有意思的题目,听说是《编程之美》中的一道题,瞬间感觉自己又落后了很多。今天就拿出来分享下我在这道题目的感悟!
原题大意:一个桶内放有100个黑球,100个白球。按照下面的顺序拿出桶内的球:
1.每次拿出2个球;
2.若为同色球则放回一个黑色的球;
3.若为不同色的球则放回一个白球。
我第一眼看到大脑很兴奋,这不就是高中的时候的概率题目吗?然后就提笔开始下面的神算,结果我就不说了。反正是花了挺长时间的。后来翻看的他的答案,我瞬间有种跳楼的感觉。人间只用三言两语就搞定的问题,我花了长篇大论竟然结果是错的。总之我什么都不说了,下面给大家分析下问题的答案:
首先我们看到问题不要蛮干,要先学会分析问题,我们按照他的流程可以得出下面的结果:
1.每次都会拿出一个球,最总桶内就只会剩下一个球。(在这里我们已经有50%的答案了,
下面我就可以把答案得出来)
2.注意在第2、3步的时候,我们其实可以发现白球每次数量的变化是成双或者是0.
所以最后不可能有一只白球落在桶里。(现在我们100%的确定最后是黑球)
对就是这么的简单,这就是区别,就好像我们从A到B本来只有100米,但是你非要绕出1000米的路,可能在现实生活会说你在享受生活的过程,但是我们这是在解决问题,越快解决问题,而且方法越简单,这才是我们最终想要的结果。so,有时候我们需要灵活一些,不要遇到问题把他越搞越复杂。最总你做出呃东西一定是会很快就淘汰掉了。
算法题目------【一个桶内100个白球,100个黑球,最后一个是黑球的概率是多少?】
原文地址:http://blog.csdn.net/toplifeww/article/details/42645423