Ik ga ervan uit dat u de frequenties op te slaan als floating point getallen tussen 0 en 1, die in totaal te maken 1.
Eerst moet je een tabel met cumulatieve frequenties te bereiden, dat wil zeggen de som van de frequentie van die brief en alle letters voordat het.
Ter vereenvoudiging, als je begint met deze frequentie verdeling:
A 0.1
B 0.3
C 0.4
D 0.2
Uw cumulatieve frequentietabel zou zijn:
A 0.1
B 0.4 (= 0.1 + 0.3)
C 0.8 (= 0.1 + 0.3 + 0.4)
D 1.0 (= 0.1 + 0.3 + 0.4 + 0.2)
Nu is het genereren van een willekeurig getal tussen 0 en 1 en zien waar in deze lijst dat getal ligt. Kies de brief dat de kleinste cumulatieve frequentie groter is dan je willekeurig getal heeft. Een paar voorbeelden:
Stel dat je willekeurig plukken 0,612. Het ligt tussen 0,4 en 0,8, dat wil zeggen tussen B en C, zodat u C. zou kiezen
Als je willekeurig getal 0,039 was, dat komt voor 0,1, dat wil zeggen vóór A, dus kies A.
Ik hoop dat zinvol is, anders voel je vrij om te vragen om opheldering!