# Probabilistic Programming
Is a kind of programming that tries to solve the following problem:
Given specific output of a certain black-box function f, determine the probabilistic distribution of the f input that yields the given output.
It is used in decision making, whenever inference of f is not possible, or when too many factors go into f. For example, in order to maximize profits should I produce more hot dogs or burgers?
Put another way: probabilistic programming deals with [[Monty Hall Problem|Monty Hall]]-like problems that are orders of magnitude more complex.
Or, it's programming turned upside down: I give you the output of a calculation, you give me the input.
Programming languages and libraries:
- [mc-stan.org](http://mc-stan.org)
- Infer .NET