Io parto dal presupposto che si memorizzano le frequenze come numeri in virgola mobile tra 0 e 1 che il totale per fare 1.
In primo luogo si dovrebbe preparare una tabella di frequenze cumulative, vale a dire la somma della frequenza di quella lettera e tutte le lettere prima di esso.
Per semplificare, se si inizia con questa distribuzione di frequenza:
A 0.1
B 0.3
C 0.4
D 0.2
La vostra tabella di frequenza cumulativa sarebbe:
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)
Ora generare un numero casuale compreso tra 0 e 1 e vedere dove in questo elenco che il numero si trova. Scegliere la lettera che ha la frequenza cumulativa più piccolo più grande del vostro numero a caso. Qualche esempio:
Diciamo che sceglie in modo casuale 0.612. Questo si trova tra 0,4 e 0,8, vale a dire tra B e C, in modo da sceglierei C.
Se il numero casuale è 0,039, che viene prima di 0,1, vale a dire prima di A, in modo da scegliere A.
Spero che abbia un senso, altrimenti non esitate a chiedere chiarimenti!