Now this isn’t my typical post but I had to share the message, it was even difficult writing it from how easily it was to get distracted – thanks Vsauce. ‘The Library of Babel’ is a book, by Jorge Luis Borges, which was then developed into a website. The idea of it is to create every possible combination of strings 3,200 characters long; using lowercase letters, periods, spaces, and commas. The library would be split into hexagon shaped rooms, with 4 walls, each with 5 shelves holding 32 volumes, containing 410 pages, of 40 lines with 80 characters. Thus each page (80 x 40 = 3200) is one combination of possible strings.


First paragraph found in The Library of Babel

To put this into perspective, if you were to flip through each book/volume in one second, it would take you 10^4668 YEARS. To make things worse 32.5 million books will differ from each other by only 1 character, and 496 trillion books will differ by 2 characters. You can imagine how big this number gets for 3 or even 4 character differences.  Either way there are only 10^80 atoms in the universe, and unfortunately Earth will be consumed by the sun in less than 10^10 years, consequently we will never know all the secrets carried in the library. According to the theory of language, what we also do not understand today we might in the future, when new words are originated with that set of characters. The next big thing, the future of technology, our history, future, and present, the cure to all diseases, the demise of humanity to what could save us, even this blog post, is all contained within those pages.

As a programmer and a math enthusiast, this is where things get interesting. The pages are numbered sequentially, the page number is carried on from volume to volume. This page number in base 10 can be inputted into an algorithm, which returns a number in base-29 which represents the content of that page. So the same page will always carry the same 3,200 character combination. The same way you can get the content of the page from the page number, you can reverse and get the page number of any 3,200 character string.