[HN Gopher] Show HN: Unsure Calculator - back-of-a-napkin probab...
___________________________________________________________________
Show HN: Unsure Calculator - back-of-a-napkin probabilistic
calculator
Author : filiph
Score : 180 points
Date : 2025-04-15 08:22 UTC (14 hours ago)
(HTM) web link (filiph.github.io)
(TXT) w3m dump (filiph.github.io)
| rogueptr wrote:
| brilliant work, polished ui. although sometimes give wrong ranges
| for equations like 100/1~(200~2000)
| thih9 wrote:
| Can you elaborate? What is the answer you're getting and what
| answer would you expect?
| BrandoElFollito wrote:
| How do you process this equation ? 100 divided by something
| from one to ...?
| notfed wrote:
| > 100 / 4~6
|
| Means "100 divided by some number between 4 and 6"
| djoldman wrote:
| I perused the codebase but I'm unfamiliar with dart:
|
| https://github.com/filiph/unsure/blob/master/lib/src/calcula...
|
| I assume this is a montecarlo approach? (Not to start a flamewar,
| at least for us data scientists :) ).
| kccqzy wrote:
| Yes it is.
| porridgeraisin wrote:
| Can you explain how? I'm an (aspiring)
| kccqzy wrote:
| I didn't peruse the source code. I just read the linked
| article in its entirety and it says
|
| > The computation is quite slow. In order to stay as
| flexible as possible, I'm using the Monte Carlo method.
| Which means the calculator is running about 250K AST-based
| computations for every calculation you put forth.
|
| So therefore I conclude Monte Carlo is being used.
| constantcrying wrote:
| Line 19 to 21 should be the Monte-Carlo sampling algorithm.
| The implementation is maybe a bit unintuitive but
| apparently he creates a function from the expression in the
| calculator, calling that function gives a random value from
| that function.
| timothylaurent wrote:
| This reminds me of https://www.getguesstimate.com/ , a
| probabilistic spreadsheet.
| Recursing wrote:
| The authors of Guesstimate are now working on
| https://www.squiggle-language.com/
|
| Someone also turned it into the
| https://github.com/rethinkpriorities/squigglepy python library
| baq wrote:
| I was looking for this. Seen it (or a similar tool) ages ago.
|
| Want to use it every 3 months or so to pretend that we know
| what we can squeeze in the roadmap for the quarter.
| thih9 wrote:
| Feature request: allow specifying the probability distribution.
| E.g.: '~': normal, '_': uniform, etc.
| rao-v wrote:
| This is terrific and it's tempting to turn into a little python
| package. +1 for notation to say it's ~20,2 to mean 18~22
| pvg wrote:
| Smol Show HN thread a few years ago
| https://news.ycombinator.com/item?id=22630600
| kccqzy wrote:
| I actually stumbled upon this a while ago from social media and
| the web version has a somewhat annoying latency, so I wrote my
| own version in Python. It uses numpy so it's faster.
| https://gist.github.com/kccqzy/d3fa7cdb064e03b16acfbefb76645...
| Thank you filiph for this brilliant idea!
| throwanem wrote:
| I love this! As a tool for helping folks with a good base in
| arithmetic develop statistical intuition, I can't think offhand
| of what I've seen that's better.
| alexmolas wrote:
| is this the same as error propagation? I used to do a lot of that
| during my physics degree
| constantcrying wrote:
| It doesn't propagate uncertainty through the computation, but
| rather treats the expression as a single random variable.
| croisillon wrote:
| i like it and i skimmed the post but i don't understand why the
| default example 100 / 4~6 has a median of 20? there is no way of
| knowing why the range is between 4 and 6
| constantcrying wrote:
| The chance of 4~6 being less than 5 is 50%, the chance of it
| being greater is also 50%. The median of 100/4~6 has to be
| 100/5.
|
| >there is no way of knowing why the range is between 4 and 6
|
| ??? There is. It is the ~ symbol.
| perching_aix wrote:
| how do you mean?
| constantcrying wrote:
| An alternative approach is using fuzzy-numbers. If evaluated with
| interval arithmetic you can do very long calculations involving
| uncertain numbers very fast and with strong mathematical
| guarantees.
|
| It would especially outperform the Monte-Carlo approach
| drastically.
| sixo wrote:
| This assumes the inputs are uniform distributions, or perhaps
| normals depending on what exactly fuzzy numbers mean. M-C is
| not so limited.
| vessenes wrote:
| cool! are all ranges considered poisson distributions?
| re wrote:
| No:
|
| > Range is always a normal distribution, with the lower number
| being two standard deviations below the mean, and the upper
| number two standard deviations above. Nothing fancier is
| possible, in terms of input probability distributions.
| krick wrote:
| It sounds like a gimmick at first, but looks surprisingly useful.
| I'd surely install it if it was available as an app to use
| alongside my usual calculator, and while I cannot quite recall a
| situation when I needed it, it seems very plausible that I'll
| start finding use cases once I have it bound to some hotkey on my
| keyboard.
| ttoinou wrote:
| Would be nice to retransform the output into an interval /
| gaussian distribution Note: If you're curious
| why there is a negative number (-5) in the histogram, that's just
| an inevitable downside of the simplicity of the Unsure
| Calculator. Without further knowledge, the calculator cannot know
| that a negative number is impossible
|
| Drake Equation or equation multiplying probabilities can also be
| seen in log space, where the uncertainty is on the scale of each
| probability, and the final probability is the product of
| exponential of the log probabilities. And we wouldnt have this
| negative issue
___________________________________________________________________
(page generated 2025-04-15 23:00 UTC)