Ich versuche, einen Algorithmus zu finden, der 12 Elemente aus einer Liste von 25 entsprechend der Wahrscheinlichkeit jedes einzelnen von ihnen auswählt. Diese Elemente können nicht wiederholt werden.
Ich habe versucht, die Funktion ohne Ersatz zu verwenden, aber ich schaffe es nicht, die Gewichte beizubehalten, wenn ich 1000 Iterationen durchführe um zu überprüfen, ob es richtig gemacht wurde. Das ist mir nur gelungen, wenn ich die Funktion mit „replace = True“ verwende.
Da mir diese Funktion doppelte Elemente zurückgibt, bereinige ich die Liste und entferne die Duplikate. Dadurch ist die Wahrscheinlichkeit, dass ich jede Zahl erhalte, nicht die, die ich zu Beginn definiert hatte. Mir ist bewusst, dass der Fehler vorliegt und dass ich die Funktion mit „replace = False“ verwenden sollte, aber ich kann sie nicht dazu bringen, mir das Ergebnis zu liefern.
Ich versuche, einen Algorithmus zu finden, der 12 Elemente aus einer Liste von 25 entsprechend der Wahrscheinlichkeit jedes einzelnen von ihnen auswählt. [b]Diese Elemente können nicht wiederholt werden[/b]. Ich habe versucht, die Funktion ohne Ersatz zu verwenden, aber ich schaffe es nicht, die Gewichte beizubehalten, wenn ich 1000 Iterationen durchführe um zu überprüfen, ob es richtig gemacht wurde. Das ist mir nur gelungen, wenn ich die Funktion mit „replace = True“ verwende. Da mir diese Funktion doppelte Elemente zurückgibt, bereinige ich die Liste und entferne die Duplikate. Dadurch ist die Wahrscheinlichkeit, dass ich jede Zahl erhalte, nicht die, die ich zu Beginn definiert hatte. Mir ist bewusst, dass der Fehler vorliegt und dass ich die Funktion mit „replace = False“ verwenden sollte, aber ich kann sie nicht dazu bringen, mir das Ergebnis zu liefern. [code]import numpy as np from collections import Counter
for i in range(1000): sampleNames += np.random.choice(nameList, 100,replace=True, p=probability_nameList) for item in sampleNames: if not item in cleaned_result: cleaned_result += [item] sampleNames =[] test_list += cleaned_result[0:12] cleaned_result = []
print(Counter(test_list))
[/code] Antwort: [code]Counter({'AAAAAA': 832, 'F': 522, 'X': 513, 'ZZZZZZZZZZZZZZZZ': 506, 'I': 505, 'L': 504, 'N': 501, 'S': 499, 'T': 498, 'U': 496, 'R': 492, 'O': 491, 'J': 489, 'P': 488, 'E': 487, 'V': 485, 'K': 482, 'Q': 479, 'H': 473, 'G': 471, 'M': 468, 'W': 461, 'D': 404, 'C': 297, 'B': 157}) [/code] Wie Sie sehen, musste AAAAA zehnmal größer sein als B, und das passiert nicht. P(AAAAA)= 10xP(B)
Grundsätzlich migriere ich den Code aus einem früheren System, das auf dem inzwischen Out-of-Service ASP.NET-Boilerplate-Framework auf das neue Release von Volo ausgeführt wird, Abp. Der...
Kann ein einfacher Mutex pthread_mutex ein Ersatz für GIL in einer Multithread-Python-C-Erweiterung sein? Zum Beispiel: Wenn ich Py_INCREF oder PyMem_Alloc mit Mutex-Sperren versehen würde, würde das...