subroutine unifgl(a,c,m,ix,u) double precision a, c, m, ix intefer k1 real u ix = a * ix + c k1 = ix / m ix = ix - k1 * m u = ix / m endCette routine, par l'utilisation des variables double precision permet de traiter convenablement les dépassements de éventuels sur les machines de 32 bits. Application : , et .
subroutine unif(ix,u) k1 = ix/127773 ix = 16807*(ix-k1*127773)-k1*2836 if (ix.lt.0) ix = ix+2147483647 u = ix*4.656612875e-10 end
Comparer les résultats obtenus pour 1000000 tirages avec le programme généraliste et le programme ci-dessus. (Si l'initialisation se fait avec la même racine, il faut que les deux suites obtenues soient identiques).