python高级练习题:囚徒困境【难度:3级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

python高级练习题:囚徒困境【难度:3级】:

欢迎第一年的囚徒困境比赛!

你在与其他23个犯人的监狱.有一天,监狱长宣布,有将是一个囚徒困境比赛!比赛的获胜者得到走出监狱免费的.

如果你不熟悉的比赛中,囚徒困境,这里有一个简要介绍:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HZT9NnRb-1571965371839)(http://truebra.in/wp-content/uploads/2015/02/Screen-Shot-2015-02-10-at-7.19.48-PM.png “棋盘游戏”)]

随着游戏板上面显示,你和另一名犯人决定,* 独立*,无论是合作或缺陷.有那么四种可能的结果.每个导致不同数量的,你可以赢得点.

你的目标

你的目标是提交囚徒困境战略进入比赛.如果你的战略是强大的,你可以赢得比赛,走出监狱,并击败这个习题.你会写一个名为

 mySolution 

其作为输入

历史

(元组的列表,其中日最后的元组是最近一轮由

(你,他们)功能$$ $),每一轮的播放历史记录,并返回要么

“C”

“d”

.

### 为例策略

的Python
高清mySolution(历史):
     导入随机# 如果你需要输入随机的,做自己的函数中.
     数= random.randint(1,2)
     如果数== 2:
          返回"D" #choose到缺陷
     其他:
          返回"C" #choose合作

此策略随机配合或缺陷.

It是不是一个很好的策略,你可能会需要更复杂的东西取胜.

您可以访问播放历史#Note.这将暂时解释.




### 实施例的另一种策略

的Python
实现以下战略#Python策略函数:

Always缺陷,除非你的对手曾经合作,

#IN这种情况下,你犯了一个随机选择

(合作,10%的叛逃几率的90%的可能性).

高清mySolution(历史):
     如果len(历史)== 0:
          返回"d"
     如果LEN(历史)> 0:
          检查= []
          (你,他们)=历史[-1] #Access由双方球员作出的最新举动.历史总是由你的移动,然后你的对手的举动元组的列表.
          check.append(他们)
          如果"C"的检查:
               进口随机
               数= random.randint(1,10)
               如果数== 10:
                    返回"d"
               其他:
                    回归"C"
          其他:
               返回"d"



## 锦标赛规则
这是一个* 淘汰赛*.这意味着可以有多达23轮.所以,举例来说,第一轮始于24个策略(您的+ 23个其他囚犯).每种策略将起到每隔策略n次(

5 <= N <= 10

)和每个游戏内会有为k匝(50 

<= K <= 100

).以后所有的游戏在一个圆形的玩法,电脑将决定谁赢得点的最小百分比.这是通过将赢得的可能点的最大数的策略的总积分计算.具有最小百分比的策略被消除.计算机会继续,直到有一个男人,女人或BOT的地位. (希望你!)现在,有可能存在对胜利,在这种情况下,所有获奖者获得离开监狱自由领带.

#### 还是困惑?
来吧,复制上面的示例解决方案之一,运行示例测试用例.这将有一个小型的比赛,以帮助您获得舒适和自信与真正的交易!

如果您想对囚徒困境的更多信息[点击这里](https://en.wikipedia.org/wiki/Prisoner%27s_dilemma)

## 希望能看到你的另一面!祝您好运.
 


## 编程目标:

```python
def mySolution(history):
    #tap tap tap...
    


测试样例:

allplayers = [("My Solution", mySolution), ("butter", butter), ("butter two", butter_two), ("butter three", butter_three)]
eliminationTournament(allplayers)


最佳答案(多种解法):

点击查看答案

更多关联题目:

交流讨论:

Python基础训练营景越Python基础训练营QQ群
在这里插入图片描述
欢迎各位同学加群讨论,一起学习,共同成长!

免责申明:

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/prisoners-dilemma-1

你可能感兴趣的:(Python编程初级练习题)