A simple proof-of-concept probabilistic spreadsheet in React with Material-UI.
The following distribution functions are available
=normal(mean, stddev) A normal distribution (gaussian) with mean and standard deviation as specified.
=uniform(min, max) A uniform distribution of floating point values >= min and < max.
=exponential(rate) An exponential distribution of values with rate as specified. For example you can use it to simulate when an event is going to happen next, given its average rate.
=poisson(mean) A poisson distribution with a mean as specified. For instance, a call center receives an average of 180 calls per hour, 24 hours a day. The calls are independent; receiving one does not change the probability of when the next one will arrive. The number of calls received during any minute has a Poisson probability distribution with mean 3: the most likely numbers are 2 and 3 but 1 and 4 are also likely and there is a small probability of it being as low as zero and a very small probability it could be 10.
All regular math operations (
*) work on distributions. You can also use:
=mmax(distA, distB) Samples pairs uniformly at random from distribution A and distribution B and chooses the maximum value each time. This is useful if you want to model e.g. latency of a process which always depends on the maximum latency of its subprocesses.
=choose(distA, distB) Samples pairs uniformly at random from distribution A and distribution B and chooses one value from the pair with equal probability. Useful for creating bi-modal distributions from constitent parts.
To re-generate the parser from
npm install jison -g cd src/jison jison grammar.jison
Which writes the file
grammar.js in the same directory.
Install the Netlify CLI
npm install netlify-cli -g
Run the development server
When the above command completes you'll be able to view your website at