我昨天做了这个代码试图测试Python生成的随机数是多么随机:
# -*- coding: cp1252 -*-
import random
print "Bienvenido al Analizador del Azar, este programa generará 100 números para aleatorios, para luego dar en tanto por ciento la cantidad de cada uno."
numeros_aleatorios = []
contador = 0
while True:
namber = random.randint(1,10)
numeros_aleatorios.append(namber)
contador += 1
if contador == 100:
break
PR1 = float(numeros_aleatorios.count(1)) / 100
PR2 = float(numeros_aleatorios.count(2))/ 100
PR3 = float(numeros_aleatorios.count(3)) / 100
PR4 = float(numeros_aleatorios.count(4)) / 100
PR5 = float(numeros_aleatorios.count(5)) / 100
PR6 = float(numeros_aleatorios.count(6)) / 100
PR7 = float(numeros_aleatorios.count(7)) / 100
PR8 = float(numeros_aleatorios.count(8)) / 100
PR9 = float(numeros_aleatorios.count(9)) / 100
PR10 = float(numeros_aleatorios.count(10)) / 100
print "Hay exactamente un", PR1, "% de 1s"
print "Hay exactamente un", PR2, "% de 2s"
print "Hay exactamente un", PR3, "% de 3s"
print "Hay exactamente un", PR4, "% de 4s"
print "Hay exactamente un", PR5, "% de 5s"
print "Hay exactamente un", PR6, "% de 6s"
print "Hay exactamente un", PR7, "% de 7s"
print "Hay exactamente un", PR8, "% de 8s"
print "Hay exactamente un", PR9, "% de 9s"
print "Hay exactamente un", PR10, "% de 10s"
正如你所看到的,我必须手动输入PR1,PR2,PR3 ......来制作每个%,然后写下每个打印来显示结果。我的问题是,有没有办法让这个更加自动化,所以我不必单独写每一行?这对我的下一个项目非常有用。
答案 0 :(得分:1)
collections.Counter将为您完成所有计数,并使用range
循环您要运行的试验次数:
from collections import Counter
trial = 100
counts = Counter(random.randint(1,10) for _ in range(trials))
print(counts)
Counter({3: 17, 7: 12, 8: 12, 9: 12, 4: 11, 6: 9, 2: 8, 10: 8, 5: 6, 1: 5})
for i in range(1,11):
print("Hay exactamente un {}% de {}".format(100 * counts[i] / float(trials),i))
输出:
Hay exactamente un 11.0% de 1
Hay exactamente un 6.0% de 2
Hay exactamente un 12.0% de 3
Hay exactamente un 12.0% de 4
Hay exactamente un 9.0% de 5
Hay exactamente un 4.0% de 6
Hay exactamente un 10.0% de 7
Hay exactamente un 14.0% de 8
Hay exactamente un 12.0% de 9
Hay exactamente un 10.0% de 10
不知道 Hay exactamente un 的顺序是否正确!