from matplotlib import pyplot as pl import numpy as np from math import log, log10 from random import choice # numbers = np.random.uniform(size=1000) # def generateHistogram(numbers, bins): # min1 = min(numbers) # max1 = max(numbers) # diff = (max1 - min1) / bins # values = [] # # for i in range(0, bins, 1): # count = 0 # for x in numbers: # if (x >= min1) and (x <= (min1 + diff)): # count = count + 1 # values.append(count) # min1 = min1 + diff # # return values # # result = generateHistogram(result.values(), 10) # fig = pl.figure() # ax = pl.subplot() # ax.bar(range(len(result)), result) # pl.show() file = open("norm_hamlet.txt") txt = file.read() result = {} for x, text in enumerate(txt.strip()): try: result[txt.strip()[x:x + 5]] += 1 except: result[txt.strip()[x:x + 5]] = 1 suma = 0 for k, v in result.items(): suma += v for k, v in result.items(): result[k] = { 'value': v, 'new_value': int(round(v/suma, 3) * 1000), 'v_sume': v/suma } full_res = [] for k, v in result.items(): for i in range(v['new_value']): full_res.append(k) tekst = "" counter = 0 for i in range(10000): tekst += choice(full_res) counter += 1 if counter == 40: counter = 0 tekst += '\n' print(tekst)