n = 1000000;
m = 2^31-1;
a = 7^5;
c = 0;
% m = 31
% a = 3
seme = 1;
x = zeros(1,n); x(1) = seme;

for i=1:n-1
    x(i+1) = mod(a*x(i)+c,m);
end

x = x./m;

% dopo aver generato una tabella di 10000 valori pseudo-casuali compresi tra
% 0 e 1 possiamo verificarne l'uniforme distribuzione tramite

N = 50;
figure
hist(x,N)

% nel caso di distribuzione uniforme tale valore teorico dovrebbe essere
% esattamente pari a n/N = 200

