我有一个问题,询问从附加到列表中的随机数计算算术平均值。基本上我们要做的是模拟1000个骰子的滚动,通过生成1到6的随机数并存储在列表中。然后从那里我们计算列表的算术平均值。我已经做到了,但我不确定它是否正确完成。非常感谢任何指出的错误:)我们也不允许使用内置函数。
import random
numberList = []
count = 0
while count<1001:
x= random.randrange(1,7)
numberList.append(x)
count += 1
list_sum = 0
for i in numberList:
list_sum += i
print(list_sum/len(numberList))
答案 0 :(得分:1)
您的代码非常详细但仍然正确。下面,您可以找到更多 pythonic 解决方案:
foreach ($entities as $entity)
$entity->DateCreated = Carbon::createFromFormat('Y-m-d H:i:s', $entity->DateCreated);
请注意,上面提出的解决方案可以节省内存,也不会定义很多变量(import random
numberList = []
for _ in range(1000):
numberList.append(random.randrange(1, 7))
# or simply using a list comprehension
# numberList = [random.randrange(1, 7) for _ in range(1000)]
print(sum(numberList)/len(numberList)) # I got 3.587, 3.556, 3.529 which is close to what you would expect (3.5)
,x
,count
)
答案 1 :(得分:1)
作为Ev。 Kounis指出你的解决方案(差不多 - 你正在收集guidot指出的1001个数字)正确。但是你可能想看看一些很好的列表理解,以提高你对Python的理解。一种可能性是:
import random
numberList = [random.randrange(1,7) for _ in range(1000)] # Create 1000 random integers between 1 and 6
sum(numberList)/len(numberList) # Calculate the arithmetic mean
答案 2 :(得分:0)
我只是想提供另一种方法,看看你怎么不真正需要将骰子的结果存储在一个列表中来计算平均值,如果这就是你需要做的全部。这可能会提高内存效率。
import random
count = 0.0
for i in range(1000):
count += random.randrange(1,7)
print count / 1000
答案 3 :(得分:0)
另一种方法,使用名为numpy
的流行python库。
>>> from random import randrange
>>> from numpy import mean
>>> print mean([randrange(1, 7) for _ in range(1000)])
3.465