Random Sampling and Monte Carlo Intuition
Install and import#
npm install fintech-algorithmsimport { randomSamplingAndMonteCarloIntuition } from "fintech-algorithms/foundations/probability-distributions-and-simulation-basics/random-sampling-and-monte-carlo-intuition";Signature#
randomSamplingAndMonteCarloIntuition(input)Estimates the probability p by counting how many of sampleCount seeded uniform draws land at or below it, and reports how far that Monte Carlo estimate lands from the known answer.
Parameters#
| Name | Type | Notes |
|---|---|---|
input | D00Input | One record carrying seed and sampleCount for the draw, and p, which is both the probability being estimated and the target the estimate is scored against. sigma is validated by the family entry point before dispatching.sampleCount: 1 or greater · sigma: strictly positive · p: between 0 and 1 inclusive |
Returns#
D00Output
An object with estimate (share of draws at or below p), target (echoes p), absoluteError (the gap between the two) and sampleCount (the number of draws actually used).
Errors#
- When p is missing or outside 0 to 1 — this check runs for every topic in the family — throws RangeError
- When sigma is zero or negative — this check runs for every topic from A05 onward — 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#
{
"values": [0.2, 0.5, 0.7, 1, 1.4],
"x": 1,
"p": 0.3,
"n": 5,
"k": 2,
"lambda": 2,
"seed": 42,
"sampleCount": 8,
"mu": 0,
"sigma": 1,
"df": 5,
"shape": 2,
"scale": 1.5,
"components": [
{
"weight": 0.7,
"mean": 0,
"sd": 1
},
{
"weight": 0.3,
"mean": 3,
"sd": 0.8
}
]
}Call#
randomSamplingAndMonteCarloIntuition(input)Returns#
object with 2 fields: estimate, target
{
"estimate": 0.625,
"target": 0.3
}Diagrams#
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