Jestem zakładając, że można przechowywać częstotliwości jako liczb zmiennoprzecinkowych pomiędzy 0 a 1, że Total aby 1.
Najpierw należy przygotować tabelę skumulowanych częstotliwości, tj sumę częstotliwości tego pisma i wszystkich liter przed nim.
Aby uprościć, jeśli zaczniesz z tego podziału częstotliwości:
A 0.1
B 0.3
C 0.4
D 0.2
Twój stół skumulowana częstość będzie:
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)
Teraz wygenerować losową liczbę między 0 a 1 i zobaczyć, gdzie w tym liście, że liczba leży. Wybierz literę, która ma najmniejszy łączny częstotliwość większą niż liczba losowa. Kilka przykładów:
Załóżmy, że losowo wybrać 0,612. To leży między 0,4 a 0,8, czyli między B i C, tak by wybrać C.
Jeśli liczba losowa było 0,039, który jest przed 0.1, czyli przed, więc wybrać A.
Mam nadzieję, że to ma sens, w przeciwnym razie nie krępuj się poprosić o wyjaśnienia!