• VicFic!
    link
    fedilink
    English
    1610 months ago

    Wait till you include floating numbers. “There are an infinite numbe of numbers between any two natural numbers” So technically you could increase that percentage to 99.9999…%

    • Rikudou_Sage
      link
      fedilink
      English
      2510 months ago

      You don’t even need floats for that. Just increase the amount of tests.

  • Cevilia (she/they/…)
    link
    English
    1410 months ago

    It would be very easy to increase that to 100%, if you’re prepared to ignore enough data…

    • @smittenOP
      link
      English
      510 months ago

      Actually it would approach 100% without ignoring data wouldn’t it?

      • Cevilia (she/they/…)
        link
        English
        210 months ago

        But the only way it would actually get there depends on you, and your willingness to ignore data. :)

  • @xthexder@l.sw0.com
    link
    fedilink
    English
    9
    edit-2
    10 months ago

    A few calculations I did last time I saw this meme (over at !programmer_humor@programming.dev):

    • There are 9592 prime numbers less than 100,000. Assuming the test suite only tests numbers 1-99999, the accuracy should actually be only 90.408%, not 95.121%
    • The 1 trillionth prime number is 29,996,224,275,833. This would mean even the first 29 trillion primes would only get you to 96.667% accuracy.

    In response to the question of how long it would take to round up to 100%:

    • The density of primes can be approximated using the Prime Number Theorem: 1/ln(x). Solving 99.9995 = 100 - 100 / ln(x) for x gives e^200000 or 7.88 × 10^86858. In other words, the universe will end before any current computer could check that many numbers.

    Edit: Fixed community link

    • @smittenOP
      link
      English
      210 months ago

      I think a more concise answer to the second one would be; it depends on where you decide to round, but as you run it, it approaches 100%, or 99.99 repeating (which is 100%)

      • @xthexder@l.sw0.com
        link
        fedilink
        English
        310 months ago

        The screenshot displays 3 decimal places, which is the the precision I used. As it turns out, even just rounding to the nearest integer still requires checking more numbers than we even have the primes enumerated for (e^200 or 7x10^86)

        • @smittenOP
          link
          English
          210 months ago

          Ah, ok yeah that makes sense.

  • @NotAUserM
    link
    English
    510 months ago

    By the prime number theorem, if the tests go from 1 to N, the accuracy will be 1 - 1 / ln(N). They should have kept going for better accuracy.