Uniform Distribution and Random Sampling
Install and import#
npm install fintech-algorithmsimport { uniformDistributionAndRandomSampling } from "fintech-algorithms/foundations/probability-distributions-and-simulation-basics/uniform-distribution-and-random-sampling";Signature#
uniformDistributionAndRandomSampling(input)Draws sampleCount standard uniform values on the half-open unit interval from a seeded linear congruential generator and reports the draws with their support and realised mean. A general Uniform(a, b) draw is that output rescaled by the caller.
Parameters#
| Name | Type | Notes |
|---|---|---|
input | D00Input | One record carrying seed (the generator's starting state) and sampleCount (how many draws to produce). Those two fields are the whole input. The shared F07 branch also reads x, p, n, k and lambda before dispatching, and validates p; none of them affect this draw, so the topic facade fills them when they are absent. There are no a and b parameters: the generator produces standard uniform draws, which is Uniform(a, b) with a = 0 and b = 1.sampleCount: 1 or greater · seed: any integer; the generator masks it to 32 bits · p: optional; between 0 and 1 inclusive when supplied, otherwise 0 |
Returns#
D00Output
An object with samples (the draws, each in the half-open unit interval), minimum and maximum (the theoretical support, always 0 and 1) and sampleMean (the mean of the draws actually produced).
Errors#
- When a supplied p falls outside 0 to 1 — this check runs for every topic in the family — throws RangeError
- When sampleCount is below 1 — throws RangeError
Complexity: time O(n),
space O(n).
Worked example#
verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.
Input#
{
"seed": 42,
"sampleCount": 8
}Call#
uniformDistributionAndRandomSampling(input)Returns#
object with 2 fields: samples, minimum
{
"samples": [
0.2523451747838408,
0.08812504541128874,
0.5772811982315034,
0.22255426598712802,
0.37566019711084664,
0.02566390484571457
],
"minimum": 0
}Diagrams#
Calculation flow#
Reasoning flow — D00-F07-A04
flowchart LR
A["Synthetic input + metadata"] --> B{"Contract valid?"}
B -->|No| C["Reject or route with reason"]
B -->|Yes| D["Apply Uniform Distribution and Random Sampling"]
D --> E["Formula: X∼Uniform(a,b); f(x)=1/(b−a)"]
E --> F["Verified fixture output"]
F --> G{"Interpretation within boundary?"}
G -->|Yes| H["Report value + convention + audit"]
G -->|No| I["Add companion view or narrower claim"]
How it works#
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References#
- Probability Distributions — NIST/SEMATECH e-Handbook
- Probability Distributions — SciPy User Guide
- Random Sampling — NumPy Documentation
- Historical-example decision