A deterministic
model of computation, for example a
deterministic Turing machine, is a model of computation such that the successive states of the machine and the operations to be performed are completely determined by the preceding state. A
deterministic algorithm is an algorithm which, given a particular input, will always produce the same output, with the underlying machine always passing through the same sequence of states. There may be non-deterministic algorithms that run on a deterministic machine, for example, an algorithm that relies on random choices. Generally, for such random choices, one uses a
pseudorandom number generator, but one may also use some external physical process, such as the last digits of the time given by the computer clock. A
pseudorandom number generator is a deterministic algorithm, that is designed to produce sequences of numbers that behave as random sequences. A
hardware random number generator, however, may be non-deterministic. == In economics ==