Notes on Prime Numbers
  • Introduction
  • Revision History
  • What Do You Mean Large
  • Enter bc
  • Pi with bc
  • C++
  • Ramanujan's constant
  • The Largest Known Prime
  • The Golden Ratio
  • Random Numbers
Powered by GitBook
On this page
  • Introduction
  • Irrational numbers
  • Random.org
  • Random Number Widget.
  • Coinflipper
  • Random Number Internet API
  • Command Line Methods
  • Random Numbers in Programming Languages
  • R

Was this helpful?

Random Numbers

PreviousThe Golden Ratio

Last updated 5 years ago

Was this helpful?

Introduction

In the course of working with long numbers one may require a long stream of random numbers. Here we review methods for generating them.

Irrational numbers

The digits of the irrational numbers such as π and е are randomly distributed but of course cannot be said to be truly random. they are psuedorandom in that they satisfy all of the properties of randomness but are in fact comletey predictable if we know the generating function.

Psuedonoise generators employ a fixed-length shift register that will emit a very long sequence of random numbers before they repeat exactly. If we know the exact taps of the shift register then we can predict the number sequence precisely.

Random numbers are:

  • statistically independent

  • not necessarily uniformly distributed

  • create no visible pattern in an x-y plot:

Random.org

Random Number Widget.

The numbers generated by this widget come from RANDOM.ORG's true random number generator.

Coinflipper

Random Number Internet API

This example will generate a series of 10 integers in the [1,6] interval:

https://www.random.org/integers/?num=10&min=1\
&max=6&col=1&base=10&format=plain&rnd=new
3
2
2
2
3
5
2
1
4
2

Command Line Methods

Unix and Linux provide two system devices for generating random number streams:

  • /dev/urandom

  • /dev/hwrng (hardware random number generator)

An example method to generate 10 million random bytes (this takes almost one second on an early 2008 Mac Pro running 2.8 Ghz Xeon processor) on the command line is:

dd  bs=10000000  count=1 if=/dev/random  of=xxxx

On Linux, /dev/urandom (where u stands for unlimited) will reuse the entropy pool rather than blocking, while /dev/random will block when the entopy pool has drained.

To generate a sequence of random numbers in the bash shell:

for i in {1..5}; do echo $RANDOM; done
    32340
    18591
    32100
    15165
    19743

Random Numbers in Programming Languages

R

x2 <- runif(10, 5.0, 7.5) # 10 numbers between 5.0 and 7.5
x3 <- sample(1:10, 1)     # 10 integers between 1 and 10
x5 <- sample(1:40, 6, replace=F) # 6  random numbers 1:40 w/o replacement

The website provides an API that any remote application can access securly to obtain true random numbers.

The site has a little widget for generting a true random number between 1 and a maximum you specifiy. It for you. Here is an example (change wwww to www to enable it - GitBook crashes soon after ):

The site will generate a sequence of pictures of the coin tosses of your choice. This is all in fun.

https://www.random.org/
generates the HTM
Coinflipper
Reference
/dev/random
echo $RANDOM
Reference