我度过了“那些”日子中的一天,而我所看到的一切只是一团糟。
我有一个Die类(如在Dice中),我想滚动100个,并计算每个数字的出现次数。假设100个骰子中有40个是数字“ 6”。
问题是,如果我对if_face == 1种类型的解决方案进行硬编码-如果有人更改了骰子上的面孔数量-我会遇到一个问题-因为它不计算它们。
我认为解决此问题的最佳方法是制作一个列表(与可能的模具表面大小相同),并在每次出现时增加列表中的数字。
简而言之,如何增加每个列表元素内的值?
diceList = [对于范围(100)中的q的Die()]
随机导入
类模具:
face_value = 1
大小= 6
def getSize(self):
返回self.size
def getFaceValue(self):
返回self.face_value
def roll(个体):
self.face_value = random.randint(1,self.size)
def rollList(n):
我= 0
a = n [0] .getSize()
faceList = [0] * a
对于Die in n:
n [i] .roll()
x = n [i] .getFaceValue()
打印(n [i] .face_value)
#faceList [x-1] = 1 + 1
#print(faceList)
我+ = 1
我做了一些重新设计,并且找到了答案的方法-我不确定这是否是一种特别好的方法。
def rollList(n):
我= 0
faceList = []
a = n [0] .getSize()
对于Die in n:
n [i] .roll()
x = n [i] .getFaceValue()
faceList.append(x)
我+ = 1
打印(faceList)
c = 1
而> = c:
打印(faceList.count(c))
c + = 1
最佳答案
def rollList(n):
a = n[0].getSize()
faceList = [0] * a
for d in n:
d.roll()
x = d.getFaceValue()
faceList[x-1] += 1