Further into Python: Random Numbers

advertisement

Lab #2-4

Follow-Up:

Further into Python

Part 3:

Random

Numbers

Part 3:

“Random”

Numbers

Part 3:

Pseudo -Random

Numbers

Why Random Numbers?

Traditional use: cryptography http://www.diablotin.com/librairie/networking/puis/figs/puis_0604.gif

Why Random Numbers?

Recall Monte Carlo Estimation : Simulate the behavior of a complicated system using random numbers chosen from a reasonable distribution.

http://knowledgediscovery.jp/assets_c/2011/12/histogram-thumb-800x450-11.png

Two Kinds of Randomness

1) Chaos : A deterministic system that is so difficult to predict that we can treat it as random http://www.seas.harvard.edu/softmat/downloads/2005-06.pdf

2) True randomness: no underlying deterministic process

Is true randomness possible?

οὐδὲν χρῆμα μάτην

γίνεται, ἀλλὰ πάντα ἐκ

λόγου τε καὶ ὑπ’ ἀνάγκης

– Leucippus

Leucippus

(~ 480-420 BC)

Democritus

( 486-370 BC)

Is true randomness possible?

Nothing occurs at random, but everything for a reason and by necessity.

– Leucippus

Leucippus

(~ 480-420 BC)

Democritus

( 486-370 BC)

Why Does It Matter?

Is true randomness possible?

We may regard the present state of the universe as the effect of its past and the cause of its future. An intellect which at a certain moment would know all forces that set nature in motion, and all positions of all items of which nature is composed, if this intellect were also vast enough to submit these data to analysis, it would embrace in a single formula the movements of the greatest bodies of the universe and those of the tiniest atom; for such an intellect nothing would be uncertain and the future just like the past would be present before its eyes.

P.-S. Laplace

(1749-1827)

Is true randomness possible?

The theory says a lot, but does not really bring us any closer to the secret of the

“old one”. I, at any rate, am convinced that He does not throw dice.

A. Einstein

(1879-1955)

Is true randomness possible?

Copenhagen Interpretation: Yes

E. Schrödinger

(1887-1956)

Quantum Weirdness and Consciousness

(“Free Will?”)

R. Penrose

(1931-) http://www.quantumconsciousness.org/penrose-hameroff/orchor.html

Free Will Without

Quantum Weirdness

Freedom is therefore a fact, and among the facts which we observe there is none clearer.

The truth is we change without ceasing ...there is no essential difference between passing from one state to another and persisting in the same state. … Just because we close our eyes to the unceasing variation of every physical state, we are obliged when the change has become so formidable as to force itself on our attention, to speak as if a new state were placed alongside the previous one.

H. Bergson

(1859-1941)

Freedom as Flux

Πάντα ῥεῖ

( All things flow )

‒ Heraclitus

The truth is we change without ceasing ...there is no essential difference between passing from one state to another and persisting in the same state. …

H. Bergson

(1859-1941)

Heraclitus

(~535-475 BC)

Two Models for Generating

Random Numbers

Two Methods for Generating

Random Numbers

Special-purpose hardware (rare)

Numerical “recipes”

( Algorithms )

Generating Pseudo -

Random Numbers

Linear Congruential Method:

• Start with arbitrary “seed” value x

• Multiply x by another number a and add a third number c

• Divide by another number m and take the remainder

• Remainder is new x ; repeat x new

= ( a x old

+ c ) rem m

Generating Pseudo -

Random Numbers

Linear Congruential Method:

• Start with arbitrary “seed” value x

• Multiply x by another number a and add a third number c

• Divide by another number m and take the remainder

• Remainder is new x ; repeat x new

= ( a x old

+ c ) mod m

# Generates N pseuedo-random numbers using the Linear

# Congruential Method def lincongr(n):

# Arbitrary constants

A = 5

C

M

= 11 # should have no common divisor with A

= 7

SEED = 0 x = SEED for k in range(n): print(x) x = (A * x + C) % M remainder (mod)

Output for N = 5 def lincongr(n):

# Arbitrary constants

A = 5

C

M

= 11

= 7

SEED = 0 x = SEED for k in range(n): print(x) x = (A * x + C) % M

5

1

2

0

4

3

Output for N = 20 def lincongr(n):

# Arbitrary constants

A = 5

C

M

= 11

= 7 # So this is the maximum!

SEED = 0 x = SEED for k in range(n): print(x) x = (A * x + C) % M

3

5

0

4

1

2

3

5

0

4

1

2

0

4

1

2

3

5

0

4

http://en.wikipedia.org/wiki/Linear_congruential_generator

Yields a Uniform Distribution

Normal (Gaussian) Distributions

• Shape is given by i.e., something that reaches a peak at x = 0 and tapers off rapidly as x grows positive or negative:

• How can we build such a distribution from our uniformly-distributed random numbers?

Box-Muller-Gauss Method for

Normal Distributions with Mean m

And Standard Deviation s

• Start with two uniform, independent random distributions:

• a from 0 to 2 p

• r from 0 to 1

• Then compute

• Obtain two normal distributions

• b sin( a ) + m

• b cos( a ) + m

Exponential Distributions

• Common pattern is exponentially decaying PDF, also called 1/ f noise (a.k.a. pink noise )

noise = random

• f = frequency; i.e., larger events are less common

• pink because uniform distribution is “white” (white light = all frequencies)

• “Universality” is a current topic of controversy (Shalizi

2006)

Exponential Method for PDF |k|e kt where t > 0, k < 0

• Start with uniform random r between 0 and 1

• Compute ln( r ) / k

E.g., ln( r ) / (-2) gives 1/ f noise

Concluding Topics

• Where do e and ln come from ?

• The Black Swan !

Download