此问题源于Ptyhon核心编程上的一道题:
最后一句提到最好的算法要尽可能的少使用if语句。
所以在求解这个问题的时候我在思索如何归纳三个选项之间的关系。user有三个选项computer有三个选项,相互比较的话应该是比较9次。然而计算机无法识别三个选项到底那个能胜出。所以必须将代替石头剪刀布的游戏剪刀咘转化成计算机能识别的符号再加以高效的算法,这个问题就解决了
(1)函数应该有两个参数,分别是user和computer的选择
(2)将选项分别与數字映射,让计算机通过比较数字的大小来判定结果
(3)通过两个选项所对应数字的绝对值进行判定,再配合min(),max()就可以很简单的实现
注意:dic和re两个字典都有各自的用处。用于本人的英语不太好所以元素命名有些随意,阅读代码时还望谅解日后逐步提高。
在“代替石头剪刀布的游戏、剪刀、布”的游戏中两人做同样手势的概率是______. |
两人做手势所有机会均等的结果有9种,其中的3个(代替石头剪刀布的游戏代替石头剪刀咘的游戏)、(剪刀,剪刀)(布,布)是我们所关注的结果所以P(同种手势)=
|