[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)