Thread "faires" Mischen: Algorithmus gesucht
(4 answers)
Opened by Raubtier at 2014-04-04 01:40
Ich hab' das mal nach Python übersetzt, um es besser zu verstehen.
Was ich immer noch nicht tue ... Code (python): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #!/usr/bin/python def fairShuffle(a): count = {} for i in a: if count.has_key(i): count[i] += 1 else: count[i] = 1 result = [] # Returns a sorted list of the dictionary's keys, # sorted by values, lowest first: for key in sorted(count, key = count.get): newLength = len(result) + count[key] for i in range(1, count[key] + 1, 1): result.insert((i - 1) * newLength / count[key], key) return result a = ["a" * 5, "b" * 3, "c" * 10, "d", "e"] b = [] for i in a: for u in i: b.append(u) c = fairShuffle(b) print " ".join(c) Spontan dachte ich an "Normalverteilung", aber damit hat das wohl nichts zu tun. Woher kennt Dein Algorithmus die "richtigen" Abstände? |