总金额评级,最好的结果
问题描述:
我有一个系统,使得4个随机组,然后费率他们:总金额评级,最好的结果
import numpy
import math
import random
for i in range(1):
# everything is in, see the indentation
members=4
n_groups =4
participants=list(range(1,members+1))*n_groups
#print participants
random.shuffle(participants)
with open('myfile1.txt','w') as tf:
for i in range(n_groups):
group = participants[i*members:(i+1)*members]
for participant in group:
tf.write(str(participant)+' ')
tf.write('\n')
with open('myfile1.txt','r') as tf:
g = [list(map(int, line.split())) for line in tf.readlines()]
print(g)
my_groups =g
def get_rating(group):
return len(set(group))
for each_grp in my_groups:
print((get_rating(each_grp)))
这使输出:
[[1, 3, 2, 1], [4, 4, 3, 3], [2, 2, 1, 3], [1, 4, 4, 2]]
3
2
3
3
有没有一种方法我可以总结4个评分得到总分?就像在这种情况下(3 + 2 + 3 + 3)= 11一样,同样如果我改变: 对于范围(1)中的i: 它改变了它的循环量: 对于范围(5) 会以不同的结果运行代码5次,是否有代码可以在5次试验中找到最好的总体分数?
基本上有什么我可以用来总结4个评分,然后如果重复可以从所有重复中挑出最好的总体评分?
答
保持一个运行总计:
total = 0
for each_grp in my_groups:
c = get_rating(each_grp)
total += c
print(c)
你可以把原来的list
和使用发电机来sum
了set
的len
:
>>> sum(get_rating(each_grp) for each_group in my_groups)
11
这个作品真的很好!有没有办法,当我做更多的重复,它可以找到最低的评分总和? – Xenon