诚聘php网站开发师,合肥做兼职网站设计,做淘宝客网站制作教程视频教程,宁波网站关键词优化排名文章预览#xff1a; 题目翻译算法python代码oj反馈结果 题目 翻译
shuffle是用于随机化一副扑克牌的过程。由于标准的洗牌技术被认为是薄弱的#xff0c;并且为了避免员工通过不适当的洗牌与赌徒合作的“内部工作”#xff0c;许多赌场使用了自动洗牌机。你的任务是模拟一… 文章预览 题目翻译算法python代码oj反馈结果 题目 翻译
shuffle是用于随机化一副扑克牌的过程。由于标准的洗牌技术被认为是薄弱的并且为了避免员工通过不适当的洗牌与赌徒合作的“内部工作”许多赌场使用了自动洗牌机。你的任务是模拟一台洗牌机。
机器根据给定的随机顺序洗一副54张牌并重复给定的次数。假设一副牌的初始状态顺序如下:
S1, s2…向, H1, h2…H13, C1, c2…、C13、 D1, d2…D13, j - 1, J2 其中“S”代表“黑桃”“H”代表“红心”“C”代表“梅花”“D”代表“方块”“J”代表“小丑”。给定的顺序是[1,54]中不同整数的排列。如果第i个位置的数字是j这意味着将牌从位置i移动到位置j。例如假设我们只有5张牌:S3, H5, C1, D13和J2。给定一个洗牌顺序{4,2,5,3,1}结果将是:J2, H5, D13, S3, C1。如果我们再次重复洗牌结果将是:C1, H5, S3, J2, D13。
输入规格: 每个输入文件包含一个测试用例。对于每种情况第一行包含一个正整数K(≤20)即重复次数。然后下一行包含给定的顺序。一行中的所有数字用一个空格隔开。
输出规范: 对于每个测试用例在一行中打印变换结果。所有的牌都用一个空格隔开并且行尾不能有额外的空格。
算法
解题思路很简单利用里一个列表将当前需要移动的元素直接存入最后将列表返回重复这个操作就可以了
python代码
def shuttle(a,pos):blen(a)*[None]for i in range(1,55):b[pos[i]]a[i]return bdef setf(a,fuhao):for i in range(1,14):a.append(fuhaostr(i))
def start(a):setf(a,S)setf(a,H)setf(a,C)setf(a,D)a.append(J1)a.append(J2)
def shuru():binput().split()b.insert(0,0)for i in range(len(b)):b[i]int(b[i])return b;a[0]
start(a)
repeatint(input())
bshuru()
for i in range(repeat):ashuttle(a,b)
a.pop(0)
print( .join(a))
oj反馈结果