Linear Congruential Generator
Ir para navegação
Ir para pesquisar
Um gerador congruencial linear, conhecido pela sigla LCG(LCG, do inglês Linear congruential generator), é um algoritmo que produz uma sequência de números pseudo-aleatório calculados com uma função linear em trecho.
Usamos uma relação de recorrência linear da seguinte forma:
onde m e p são dois números inteiros adequadamente escolhidos.
E as variáveis aleatórias uniformes são obtidas após o dimensionamento,
Exemplo em Python
commoldura|direita|1 milhão de sorteios usando LCG
def pseudo_uniform_good(mult=16807,mod=(2**31)-1,seed=123456789,size=1):
"""
A reasoanbly good pseudo random generator
"""
U = np.zeros(size)
x = (seed * mult + 1) % mod
U[0] = x / mod
for i in range(1, size):
x = (x * mult + 1) % mod
U[i] = x / mod
return U