Deterministic & Nondeterministic Algorithms.

In computer science, a deterministic algorithm is an algorithm which, given a particular input, will always produce the same output.

Nondeterministic algorithms have their uses as well, for example, probabilistic algorithms.

Sometimes deterministic algorithm is too inefficient or insecure.

For example 1: We can spread data along the tree data structure randomly, thus have shorter routes between tree's root and leaf nodes (on average).

('Tree' is data structure with nodes and pointers, or 'arrows' leading from upper nodes to lower nodes. Each node might have 0, 1, or more pointers. Root node is uppermost node, Leaf nodes are on bottom of data structure).

See 'Literature' for more details about the 'trees' and other data structures.

For example 2: Random numbers are used in cryptography, thus in security. If random number is generated nondeterministically, it's more secure to use it for creating cryptographic key.

1 comment:

  1. someday i'll create cryptographic key without using Pseudorandom Number Generators. For example by rolling dice, or counting clouds on the sky ... or something equally impredictable. it's more secure that way.