Dies ist mein Code, der Gruppen aus einer Reihe von Mitgliedern erstellt, dann jede Gruppe bewertet und dann summiert, um in diesem Fall eine Gesamtpunktzahl für die 4 Gruppen zu erhalten.Returning min Punktzahl
import random
def run(members, n_groups):
participants = list(range(1,members+1))*n_groups
random.shuffle(participants)
my_groups = list(zip(*[iter(participants)]*members))
print(my_groups)
def get_rating(group):
return (len(set(group)))
score = ((sum(get_rating(g) for g in my_groups)))
print(score)
return score
members = 4
n_groups = 4
print(min(run(members, n_groups) for _ in range(10)))
Ausgang:
[(3, 3, 4, 1), (4, 2, 3, 1), (2, 3, 2, 4), (1, 1, 4, 2)]
13
[(3, 1, 1, 4), (2, 3, 2, 4), (1, 4, 1, 2), (3, 2, 4, 3)]
12
[(2, 4, 4, 1), (3, 3, 1, 3), (3, 1, 2, 2), (4, 4, 2, 1)]
11
[(3, 1, 4, 1), (3, 1, 2, 1), (2, 2, 4, 4), (3, 2, 3, 4)]
11
[(1, 1, 3, 1), (2, 2, 3, 1), (3, 2, 4, 4), (4, 4, 3, 2)]
11
[(3, 2, 1, 2), (4, 1, 3, 4), (4, 2, 3, 1), (1, 2, 4, 3)]
14
[(2, 4, 3, 1), (3, 4, 4, 2), (1, 1, 2, 1), (3, 3, 4, 2)]
12
[(3, 3, 1, 2), (2, 1, 3, 3), (2, 4, 4, 2), (4, 1, 1, 4)]
10
[(1, 4, 3, 2), (4, 2, 3, 3), (3, 1, 2, 1), (4, 4, 1, 2)]
13
[(2, 4, 1, 3), (3, 2, 2, 3), (1, 4, 1, 3), (1, 4, 2, 4)]
12
10
So jede Gruppe eine Bewertung erhält dann die min Punktzahl am Ende angezeigt wird, gibt es eine Möglichkeit, dass ich die Gruppe erneut drucken kann, die, dass nach min Punktzahl bekam? Wenn ich es mit 100.000 versuche, ist es sehr schwer für mich, jeden zu überprüfen, um herauszufinden, aus welcher Gruppe er stammt!
Ich habe versucht:
import random
def run(my_groups, score):
participants = list(range(1,members+1))*n_groups
random.shuffle(participants)
my_groups = list(zip(*[iter(participants)]*members))
print(my_groups)
def get_rating(group):
return (len(set(group)))
score = ((sum(get_rating(g) for g in my_groups)))
print(score)
return score
members = 4
n_groups = 4
print(min(run(members, n_groups) for _ in range(10), key=lambda x:x[1]))
Aber diese Rückkehr für die Halterung von run „Generator Ausdruck, wenn nicht einziges Argument klammerten werden muss“?
Sie wollen also verfolgen, welche Gruppe die kleinste Punktzahl produziert? –
Yeh so am Ende: für diesen Fall, 10 dann [(3, 3, 1, 2), (2, 1, 3, 3), (2, 4, 4, 2), (4, 1, 1 , 4)], die Gruppe kam es von – Xenon