One common way to implement rand-update rand_update is to use the rule that $x$ is updated to $ax+b$ modulo $m$, where $a$, $b$, and $m$ are appropriately chosen integers. Chapter 3 of Knuth 1997b includes an extensive discussion of techniques for generating sequences of random numbers and establishing their statistical properties. Notice that the rand-update rand_update procedure function computes a mathematical function: Given the same input twice, it produces the same output. Therefore, the number sequence produced by rand-update rand_update certainly is not random, if by random we insist that each number in the sequence is unrelated to the preceding number. The relation between real randomness and so-called pseudo-random sequences, which are produced by well-determined computations and yet have suitable statistical properties, is a complex question involving difficult issues in mathematics and philosophy. Kolmogorov, Solomonoff, and Chaitin have made great progress in clarifying these issues; a discussion can be found in Chaitin 1975.
 This theorem is due to G. Lejeune Dirichlet. See section 4.5.2 of Knuth 1997b for a discussion and a proof.
 MIT Scheme provides such a procedure. function. If random is given an exact integer (as in section 1.2.6) it returns an exact integer, but if it is given a decimal value (as in this exercise) it returns a decimal value.
3.1.2   The Benefits of Introducing Assignment