All odd numbers are prime: 1 is prime, 3 is prime, 5 is prime, 7 is prime, 9 is experimental error, 11 is prime, and so on, I don't have funding to check all of them, but it suggests an avenue of productive further work.
Look, just because it breaks everything, that's no reason not to include it in a joke. We'll just have to rebuild the entire edifice of mathematics.
Seriously, thanks for the link, I hadn't considered the implications of including 1 in the set of primes, and it really does seem to break a lot of ideas.
It's been a fat minute since I last did any programming outside of batch scripts and AHK... I'm struggling to understand how it's not returning false for 100% of the tests
It is always returning false, but the screen shows a test, where a non-prime evaluating as false is a pass and a prime evaluating as false is a fail :))
How many primes are there before 1 and 2^31. IIRC prime numbers get more and more rare as the number increases. I wouldn't be surprised if this would pass 99% of tests if tested with all positive 32 bit integers.
Per the prime number theorem, for large enough N the proportion of primes less than or equal to N is approximately 1/log(N). For N = 2^(31) that's ~0.0465. To get under 1% you'd need N ~ 2^(145).
Ah yes, my favorite recurring lemmy post! It even has the same incorrect test output.
Last time I saw this I did a few calculations based on comments people made: https://l.sw0.com/comment/32691 (when are we going to be able to link to comments across instances?)
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%
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.
But you can use randomised test-cases. Better yet, you can randomise values in test-cases once and throw away the ones you don't like and get arbitrarily close to 100% with a reasonable amount of tests
22 Comments
sukhmel@programming.dev · 74 pts · 2y
And if you want to increase accuracy you just add more tests
bonuspoints@lemmynsfw.com · 13 pts · 2y
The failures are probably just flake then
nxdefiant@startrek.website · 9 pts · 2y
"prime on my machine"
corship@feddit.de · 70 pts · 2y
I wrote an ai that classifies spam emails with 99.9% accuracy.
Our test set contained 1000 emails, 999 aren't spam.
The algorithm:
gandalf_der_12te@feddit.de · 2 pts · 2y
Honestly I'd rather have that, than randomly have to miss some important E-mail because the system put it in the junk folder.
notabot@lemm.ee · 59 pts · 2y
All odd numbers are prime: 1 is prime, 3 is prime, 5 is prime, 7 is prime, 9 is experimental error, 11 is prime, and so on, I don't have funding to check all of them, but it suggests an avenue of productive further work.
randy@lemmy.ca · 11 pts · 2y
Them's fightin' words.
notabot@lemm.ee · 5 pts · 2y
Look, just because it breaks everything, that's no reason not to include it in a joke. We'll just have to rebuild the entire edifice of mathematics.
Seriously, thanks for the link, I hadn't considered the implications of including 1 in the set of primes, and it really does seem to break a lot of ideas.
A_Very_Big_Fan@lemmy.world · 23 pts · 2y
It's been a fat minute since I last did any programming outside of batch scripts and AHK... I'm struggling to understand how it's not returning false for 100% of the tests
RAM@discuss.tchncs.de · 49 pts · 2y
It is always returning false, but the screen shows a test, where a non-prime evaluating as false is a pass and a prime evaluating as false is a fail :))
troublehelix@feddit.nu · 26 pts · 2y
The output shown is the result of a test for the function, not the result of the function itself.
A_Very_Big_Fan@lemmy.world · 12 pts · 2y
Ooooh I see lol. Thank you!
JackGreenEarth@lemm.ee · 13 pts · 2y
It's returning false for all the tests, but it only should be returning false for 95% of them, as 5% are prime.
idunnololz@lemmy.world · 14 pts · 2y
How many primes are there before 1 and 2^31. IIRC prime numbers get more and more rare as the number increases. I wouldn't be surprised if this would pass 99% of tests if tested with all positive 32 bit integers.
kogasa@programming.dev · 13 pts · 2y
Per the prime number theorem, for large enough N the proportion of primes less than or equal to N is approximately 1/log(N). For N = 2^(31) that's ~0.0465. To get under 1% you'd need N ~ 2^(145).
sukhmel@programming.dev · 3 pts · 2y
So you better use 128-bit unsigned integers 😅
idunnololz@lemmy.world · 7 pts · 2y
Wolfram alpha says it's about 4.9%. So 4.9% of numbers in the range 1 to 2^31 are prime. It's more than I expected.
dbx12@programming.dev · 12 pts · 2y
Daxtron2@startrek.website · 13 pts · 2y
have y'all never seen a float before
MxM111@kbin.social · 9 pts · 2y
The last line reads 95.121 %. I was confused too that it is 121%, but, sadly, no.
xthexder@l.sw0.com · 11 pts · 2y
Ah yes, my favorite recurring lemmy post! It even has the same incorrect test output.
Last time I saw this I did a few calculations based on comments people made:
https://l.sw0.com/comment/32691 (when are we going to be able to link to comments across instances?)
sukhmel@programming.dev · 1 pts · 2y
But you can use randomised test-cases. Better yet, you can randomise values in test-cases once
and throw away the ones you don't likeand get arbitrarily close to 100% with a reasonable amount of testscorsicanguppy@lemmy.ca · 6 pts · 2y
why would you store comments in git?
Oh. Oh ha ha ha ha you just don't know 'checkout' from 'check out'. Clean out your desk.