def lcg ( r, m, a, c ): ## lcg() evaluates the next element of a linear congruential generator. # r = ( ( a * r + c ) % m ) return r def lcg_test ( ): a = 3 c = 3 print ( '' ) print ( 'lcg_test():' ) print ( ' Test linear congruential generator of the form' ) print ( ' r = ( ( ', a, ' * r + ', c, ') mod m )' ) print ( ' for several values of m.' ) print ( '' ) for m in [ 7, 13, 17 ]: print ( ' Using modulus m = ', m ) for i in range ( 0, 20 ): if ( i == 0 ): r = 5 else: r = lcg ( r, m, a, c ) print ( '', r, end = '' ) print ( '' ) return if ( __name__ == "__main__" ): lcg_test ( )