微软经典面试题-海盗分宝石,20分钟给出答案即可获得年薪8万美金的职位

中亿财经网 kefu01 2023-08-03 16:24:24

微软经典面试题-海盗分宝石,20分钟给出答案即可获得年薪8万美金的职位

反推过来想吧,进一步分析 myC中亿财经网财经门户

5号:不同意,或者有条件同意 myC中亿财经网财经门户

轮到5号时,形成的状态是: myC中亿财经网财经门户

1得到0个宝石,死 myC中亿财经网财经门户

2得到0个宝石,死 myC中亿财经网财经门户

3得到0个宝石,死 myC中亿财经网财经门户

4得到0个宝石,死 myC中亿财经网财经门户

5得到100个宝石,活,同意 myC中亿财经网财经门户

此海盗是最后一个轮到,不存在生命危险,所以也没必要同意!除非有得到一定的好处 myC中亿财经网财经门户

但是他想捞到好处是很有难度的,因为其他海盗也很聪明! myC中亿财经网财经门户

其实他当然也会意识到这点 myC中亿财经网财经门户

所以此海盗不会同意别人的方案,除非他获得一定的利益 myC中亿财经网财经门户

4号:同意 myC中亿财经网财经门户

轮到4号时,形成的状态是: myC中亿财经网财经门户

1得到0个宝石,死 myC中亿财经网财经门户

2得到0个宝石,死 myC中亿财经网财经门户

3得到0个宝石,死 myC中亿财经网财经门户

4得到0个宝石,可以保不死(但也说不定),同意 myC中亿财经网财经门户

5得到100个宝石,活,同意(或不同意) myC中亿财经网财经门户

此海盗最担心的是轮到他头上(祈祷中...),即使全部100个宝石奉送给5号,他才有可能保不死(仍然有风险),否则就死定了!(注意是超过半数同意才行,也就是说刚好达到半数还不够,否则就可以独吞了) myC中亿财经网财经门户

所以此海盗不管如何都会同意别人的方案,否则对他来讲没有任何好处,反而增加步步逼近的危险! myC中亿财经网财经门户

3号:不同意,或者有条件同意 myC中亿财经网财经门户

轮到3号时,形成的状态是: myC中亿财经网财经门户

1得到0个宝石,死 myC中亿财经网财经门户

2得到0个宝石,死 myC中亿财经网财经门户

3得到100个宝石,活,同意 myC中亿财经网财经门户

4得到0个宝石,活,同意 myC中亿财经网财经门户

5得到0个宝石,活,不同意 myC中亿财经网财经门户

轮到3号时,他是绝不会巴结5号的,因为不知道他需要多少度才会同意,要巴结的话只要给4号1个宝石就够了,但事实上一个都不用巴结,因为5号也会认识到这点,所以5号是绝对不同意的,介于5号不同意,4号也会猜想到这点,所以4号就不能再不同意,否则4号是自找死路,所以就固然有大于半数的支持者了 myC中亿财经网财经门户

但是能否轮到他呢? myC中亿财经网财经门户

问题是这海盗太聪明了,事实上他进一步想,突然觉得不对,因为将不可能轮到他的,前面2号的海盗没那么傻,说不定他等下一个也得不到,所以在1号的方案时,他的要求变的很低了,求求1号给我1颗宝石吧,我会同意的....(这样也行$!@$%^%&*^),哈哈:),早拿早好嘛,有一个算一个! myC中亿财经网财经门户

所以此海盗肯定不同意别人的分配方案,除非有得到一点好处 myC中亿财经网财经门户

2号:不同意 myC中亿财经网财经门户

轮到2号时,形成的状态是: myC中亿财经网财经门户

1得到0个宝石,死 myC中亿财经网财经门户

2得到99个宝石,活,同意 myC中亿财经网财经门户

3得到0个宝石,活,不同意 myC中亿财经网财经门户

4得到0个宝石,活,同意 myC中亿财经网财经门户

5得到1个宝石,活,同意 myC中亿财经网财经门户

要是轮到此海盗他必会拿走99颗宝石,然后给1颗5号即可! myC中亿财经网财经门户

原因: myC中亿财经网财经门户

3号不同意的,因为他想要得到100个宝石的机会(如果给1个以上,或许会同意) myC中亿财经网财经门户

4号同意,否则只有坏处多多,有风险存在 myC中亿财经网财经门户

5号给他1个宝石就OK了,否则到了下一轮,将一颗也得不到,不拿白不拿! myC中亿财经网财经门户

所以此海盗不会同意1号的分配方案,除非给他100颗宝石 myC中亿财经网财经门户

其实不然,这都是错误的想法,怪就怪他们太聪明了! myC中亿财经网财经门户

因为他知道1号很聪明的,他早已算出1号将会以99,0,1,0,0的分法搞定,所以轮不到他,想得到99颗的想法才是妄想,而且1号也不可能给他1-2颗宝石的,他知道1号要是这样做是在冒风险,所以他只有不同意一博 myC中亿财经网财经门户

1号:此海盗当然也聪明了,他早已知道后面的海盗心里想什么,首先4号是一定同意了(因为不管哪一轮他都没有宝石,如果不早点同意的话说不定局势改变了,有风险啊),那么只要再找一个海盗同意即可安全了,左思右想,巴结谁呢?还用想...汗! myC中亿财经网财经门户

2号肯定不给的,给了说不定也是白给 myC中亿财经网财经门户

3号给1颗就能搞定,否则到了下一轮他一个也得不到 myC中亿财经网财经门户

5号给1颗不一定够呀(除非给2颗,因为到了下一轮(2号决定时)他仍然有机会得到1颗宝石,所以5号干嘛急着同意呢,不急不急) myC中亿财经网财经门户

最终结局的状态是: myC中亿财经网财经门户

1得到99个宝石,活,同意 myC中亿财经网财经门户

2得到 0个宝石,活,不同意 myC中亿财经网财经门户

3得到 1个宝石,活,同意 myC中亿财经网财经门户

4得到 0个宝石,活,同意 myC中亿财经网财经门户

5得到 0个宝石,活,不同意 myC中亿财经网财经门户

即:99,0,1,0,0 (1号利益最大化)myC中亿财经网财经门户

请教一个关于python的问题

布尔类型是一个逻辑量,区别于算术量的是逻辑量表示了两个对立的矛盾,也就是说逻辑值只可能有两个,就是真和假。myC中亿财经网财经门户

在python中(也在大多数的编程语言中),真(True)在计算机内部表示为数值类型1,而假(False)表示成0.myC中亿财经网财经门户

可以在python中测试:True == 1 结果为True,False == 0 结果为False.但是True == 任何其他的(不是1) 都为False, False也同理。myC中亿财经网财经门户

这只是计算机表示的问题,python规定 None,‘’,“”,“”“”“”,'''''',(),[],{},0,0.0,0L,0j,False为假,其他为真。myC中亿财经网财经门户

a=b 是算术运算,即把b的值赋给a,在计算机内部,由于python是由c语言实现的,用到了指针,a和b指向了同一块内存。myC中亿财经网财经门户

可测试:a=1 然后 b=a 比较id(a)和id(b),结果是一样的,说明a和b的地址一样。myC中亿财经网财经门户

a==b 是逻辑运算,得出的是逻辑值,就是真或假。myC中亿财经网财经门户

那怎么用呢?很简单,当要处理算术问题的时候当然用算术运算,有逻辑问题(通常所说的判断)的时候呢就用逻辑运算啦。myC中亿财经网财经门户