Estoy tratando de generar texto aleatorio utilizando las frecuencias de letras que he obtenido. En primer lugar, tuve éxito con el siguiente código:Usando matriz para generar texto aleatorio
for i in range(450):
outcome=random.random()
if 0<outcome<0.06775:
sys.stdout.write('a')
if 0.06775<outcome<0.07920:
sys.stdout.write('b')
if 0.07920<outcome<0.098:
sys.stdout.write('c')
....
Este hasta que la letra Z y la barra espaciadora. Esto me da> 50 líneas de código y quiero obtener el mismo resultado usando una matriz.
hasta ahora tengo:
f_list = [0, 0.06775, 0.08242, 0.10199, 0.13522, 0.23703, 0.25514, 0.27324, 0.32793, 0.38483, 0.38577, 0.39278, 0.42999, 0.45023, 0.50728, 0.56756, 0.58256, 0.58391, 0.62924, 0.68509, 0.7616, 0.78481, 0.79229, 0.81161, 0.81251, 0.82718, 0.82773, 0.99998]
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ' ']
import random
import sys
for i in range(25):
outcome=random.random()
if f_list[i]<outcome<f_list[i+1]:
sys.stdout.write('alphabet[i]')
Pero no funciona correctamente, ya que el rango parece ahora a relacionarse con la matriz y no el número de iteraciones que quiero. La salida está en blanco.
(las frecuencias en el segundo código son las correctas) – Julia