I’m a layman here and not a mathematician but how does it store the complete value of pi and not rounded up to a certain amount? Or do one of the libraries generate that?
You generate it when needed, using one of the known sequences that converges to π. As a simple example, the pi() recipe here shows how to compute π to arbitrary precision. For an application like pifs you can do even better and use the BBP formula which lets you directly calculate a specific hexadecimal digit of π.
Thats very cool. It brings to mind some sort of espionage where spies are exchanging massive messages contained in 2 numbers. The index and the Metadata length. All the other spy has to do is pass it though pifs to decode. Maybe adding some salt as well to prevent someone figuring it out.
I can’t tell if this is a joke or real code… like for this sentence below.
The cat is back.
Will that repo seriously run until it finds where that is in pi? However long it might take, hours, days, years, decades, and then tell you, so you can look it up quickly?
Will that repo seriously run until it finds where that is in pi?
Sure. It’ll take a very long while though. We can estimate roughly how long - encoded as ASCII and translated to hex your sentence looks like 54686520636174206973206261636b. That’s 30 hexadecimal digits. So very roughly, one of each 16^30 30-digit sequences will match this one. So on average, you’d need to look about 16^30 * 30 ≈ 4e37 digits into π to find a sequence matching this one. For comparison, something on the order of 1e15 digits of pi were ever calculated.
so you can look it up quickly?
Not very quickly, it’s still n log n time. More importantly, information theory is ruthless: there exist no compression algorithms that have on average a >1 compression coefficient for arbitrary data. So if you tried to use π as compression, the offsets you get would on average be larger than the data you are compressing. For example, your data here can be written written as 30 hexadecimal digits, but the offset into pi would be on the order of 4e37, which takes ~90 hexadecimal digits to write down.
This is what allows pifs to work!
Thanks. I love these kind of fun OpenSource community projects/ideas/jokes whatever. The readme reminds me of ed
I’m a layman here and not a mathematician but how does it store the complete value of pi and not rounded up to a certain amount? Or do one of the libraries generate that?
You generate it when needed, using one of the known sequences that converges to π. As a simple example, the
pi()
recipe here shows how to compute π to arbitrary precision. For an application like pifs you can do even better and use the BBP formula which lets you directly calculate a specific hexadecimal digit of π.Thats very cool. It brings to mind some sort of espionage where spies are exchanging massive messages contained in 2 numbers. The index and the Metadata length. All the other spy has to do is pass it though pifs to decode. Maybe adding some salt as well to prevent someone figuring it out.
I want that project continues so hard. Sounds amazing
I can’t tell if this is a joke or real code… like for this sentence below.
The cat is back.
Will that repo seriously run until it finds where that is in pi? However long it might take, hours, days, years, decades, and then tell you, so you can look it up quickly?
Yes.
Sure. It’ll take a very long while though. We can estimate roughly how long - encoded as ASCII and translated to hex your sentence looks like
54686520636174206973206261636b
. That’s 30 hexadecimal digits. So very roughly, one of each16^30
30-digit sequences will match this one. So on average, you’d need to look about16^30 * 30 ≈ 4e37
digits into π to find a sequence matching this one. For comparison, something on the order of 1e15 digits of pi were ever calculated.Not very quickly, it’s still
n log n
time. More importantly, information theory is ruthless: there exist no compression algorithms that have on average a >1 compression coefficient for arbitrary data. So if you tried to use π as compression, the offsets you get would on average be larger than the data you are compressing. For example, your data here can be written written as 30 hexadecimal digits, but the offset into pi would be on the order of 4e37, which takes ~90 hexadecimal digits to write down.