"The formula itself is a general purpose method of decoding a bitmap stored in the constant n, so it could actually be used to draw any other image, and does not in fact contain any reference to itself."
As a high school student, I thrilled to the idea that long numbers (eg. pi digits) might contain messages. As a postgrad, I now know that the long numbers are actually a form of information (eg. a digital photograph is just a number: a sequence of bits).
Sadly, there's nothing exciting about it, as the interesting sequences occur very sparsely, just as the vast majority of bit sequences (out of all those possible) represent uninteresting digital photographs.
Yes, the PI really contains all information on the world, since it's an infinite non-periodic number. The only problem is that it also contains all noise on the world, too. It's like a block of marble, that contains all great sculptures, you just have to remove bits from here and there...
If you assume that pi is a normal number (unproven, but likely) then it is almost certain (ie. probability 1) that the digits of e and the square root of 2 are subsequences of the digits of pi.
To answer my questions (according to your links): Yes, normal numbers only have to satisfy conditions on finite strings. And subsequence means deleting some items out of a sequence.
Maybe this was your point, but it seems to me that, with these definition, wtallis's claim (http://news.ycombinator.com/item?id=1567549) is correct; indeed, one simply needs to find 1 at some point, then find 4 a little later, then 1 after that, then 4 again, then a 2, and so forth. The indices where one finds the desired digits become the indices of the claimed subsequence of digits of π.
Indeed. And for the claim to be correct, even a much weaker condition than normality would suffice. E.g. a number like 0.123456789012345678901234567890[repeat] is definitely not normal, but contains all decimal subsequences.
The formula is clearly finite (on the order of 40 symbols), it does not contain "all the information in the world" and neither can any sequence it generates.
Information theory is a tricky beast. Pi contains no more information than it takes to express it, so in information theory terms it doesn't contain much information at all since it can be expressed very concisely.
It so happens that pi + enough information to use pi as raw material to produce the desired information can output anything you like, which some people find amazing. But really, "anything + enough information to use 'anything' as raw material to produce the desired output" works equally well, too; pi isn't actually that special either. Also, the information needed to produce your desired output from pi is on average larger than the information in the desired output in the first place, which is why the "compress your things by referencing a digit number in pi" doesn't actually work.
So, pi contains all the information in the world as long as you use more information to extract it from pi, in which case all you are really doing is expressing the original information in a particularly unpleasant encoding.
But it sounds cool to say pi has all this information... "how can anything with an infinite number of normalized digits consist of only a handful of bits?" asks our feeble, mathematics-impaired human minds.
(By the way, this is extended agreement with the post I'm replying to, not any implicit disagreement.)
Normal people don't have the tools to check the math on a formula that involves 500-digit numbers. It's not like I'm going to pop out my TI-80 and graph it. This formula is cool, but it's only a bit more accessible than the human genome.
Normal people don't have the tools to check the math on a formula that involves 500-digit numbers.
Sure we do, for flexible values of "normal":
from decimal import getcontext, Decimal
getcontext().prec = 600
n = Decimal(960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719)
# ignore floors, just using integer arguments
f = lambda x,y: (y/17 * Decimal(2)**(-17*x - (y%17))) % 2
results = {}
dhalf = Decimal('0.5')
for x in xrange(106):
for y in xrange(17):
# this takes a while
results[x,y] = '*' if f(Decimal(x), Decimal(y+n))>dhalf else ' '
# this prints reversed for some reason unless we reverse the x iteration
for y in xrange(17):
print(''.join(results[x,y]+' ' for x in xrange(105,-1,-1)))
http://en.wikipedia.org/wiki/Tuppers_self-referential_formul...