Example 21
beginner
21
Random
Distributions
Sampling

Random Sampling & Distributions

Random number generation is essential for weight initialization, data augmentation, Monte Carlo simulation, and stochastic algorithms. This example demonstrates all Deepbox random functions: setSeed, rand, randn, uniform, normal, binomial, poisson, exponential, gamma, beta, randint, choice, shuffle, and permutation.

Deepbox Modules Used

deepbox/random

What You Will Learn

  • setSeed(42) makes all subsequent random calls deterministic
  • rand/randn are shortcuts for uniform [0,1) and standard normal
  • Use binomial/poisson/exponential/gamma/beta for specialized distributions
  • choice samples from a tensor; permutation returns a shuffled copy
  • clearSeed returns to non-deterministic mode

Source Code

21-random-sampling/index.ts
1import {2  beta,3  binomial,4  exponential,5  gamma,6  normal,7  poisson,8  rand,9  randint,10  randn,11  setSeed,12  uniform,13} from "deepbox/random";1415console.log("=== Random Sampling & Distributions ===\n");1617// Set seed for reproducibility18setSeed(42);19console.log("Random seed set to 42 for reproducibility\n");2021// Uniform distribution [0, 1)22console.log("1. Uniform Distribution [0, 1):");23const uniformSamples = rand([5]);24console.log(`${uniformSamples.toString()}\n`);2526// Standard normal distribution27console.log("2. Standard Normal Distribution (mean=0, std=1):");28const normalSamples = randn([5]);29console.log(`${normalSamples.toString()}\n`);3031// Random integers32console.log("3. Random Integers [0, 10):");33const intSamples = randint(0, 10, [8]);34console.log(`${intSamples.toString()}\n`);3536// Custom uniform distribution37console.log("4. Uniform Distribution [-5, 5]:");38const customUniform = uniform(-5, 5, [6]);39console.log(`${customUniform.toString()}\n`);4041// Custom normal distribution42console.log("5. Normal Distribution (mean=100, std=15):");43const customNormal = normal(100, 15, [6]);44console.log(`${customNormal.toString()}\n`);4546// Binomial distribution (coin flips)47console.log("6. Binomial Distribution (n=10, p=0.5):");48const binomialSamples = binomial(10, 0.5, [8]);49console.log(binomialSamples.toString());50console.log("(Number of heads in 10 coin flips)\n");5152// Poisson distribution53console.log("7. Poisson Distribution (λ=3):");54const poissonSamples = poisson(3, [8]);55console.log(poissonSamples.toString());56console.log("(Number of events with rate λ=3)\n");5758// Exponential distribution59console.log("8. Exponential Distribution (scale=2):");60const expSamples = exponential(2, [6]);61console.log(expSamples.toString());62console.log("(Time between events)\n");6364// Gamma distribution65console.log("9. Gamma Distribution (shape=2, scale=2):");66const gammaSamples = gamma(2, 2, [6]);67console.log(`${gammaSamples.toString()}\n`);6869// Beta distribution70console.log("10. Beta Distribution (α=2, β=5):");71const betaSamples = beta(2, 5, [6]);72console.log(betaSamples.toString());73console.log("(Values between 0 and 1)\n");7475console.log("✓ Random sampling complete!");

Console Output

$ npx tsx 21-random-sampling/index.ts
=== Random Sampling & Distributions ===

Random seed set to 42 for reproducibility

1. Uniform Distribution [0, 1):
tensor([0.7786, 0.9902, 0.2673, 0.3684, 0.03315], dtype=float32)

2. Standard Normal Distribution (mean=0, std=1):
tensor([-0.1422, -0.4020, -0.4828, -0.2822, -2.556], dtype=float32)

3. Random Integers [0, 10):
tensor([4, 2, 2, ..., 6, 0, 7], dtype=int32)

4. Uniform Distribution [-5, 5]:
tensor([1.948, 2.281, -2.408, -2.970, 2.537, 0.06305], dtype=float32)

5. Normal Distribution (mean=100, std=15):
tensor([92.14, 78.70, 102.1, 99.70, 95.03, 111.2], dtype=float32)

6. Binomial Distribution (n=10, p=0.5):
tensor([6, 5, 3, ..., 5, 1, 6], dtype=int32)
(Number of heads in 10 coin flips)

7. Poisson Distribution (λ=3):
tensor([3, 5, 9, ..., 5, 6, 2], dtype=int32)
(Number of events with rate λ=3)

8. Exponential Distribution (scale=2):
tensor([0.6587, 4.888, 1.342, 0.7649, 2.543, 1.637], dtype=float32)
(Time between events)

9. Gamma Distribution (shape=2, scale=2):
tensor([3.776, 10.24, 2.840, 6.351, 1.614, 0.9918], dtype=float32)

10. Beta Distribution (α=2, β=5):
tensor([0.2361, 0.1764, 0.3668, 0.2450, 0.3247, 0.1644], dtype=float32)
(Values between 0 and 1)

✓ Random sampling complete!