@jitbit принёс файловую систему πfs, где всё можно хранить внутри π.
@jitbit принёс файловую систему πfs, где всё можно хранить внутри π.
Пи — такое хитрое число, что грубо говоря, там каждый следующий знак можно воспринимать как условно-случайный. То есть запись числа содержит любую конечную последовательность цифр.
А это значит, что рано или поздно внутри π встретится полная копия вашей ДНК, ваш пароль от роутера, каждый из ваших файлов и даже тот файл, что вы запишете завтра. И чтобы обратиться туда, надо сделать вещи:
- Найти данные внутри π (это может занять от пары секунд до пары веков и больше)
- Записать смещение и длину (это почти мгновенно)
Чтобы прочитать — просто перейти по координатам и вычитать нужную длину. В реализации файловой системы чтения нет, это вы уж сами.
Собственно, от файловой системы остаётся только аналог FAT, где хранятся смещение и длина + заголовки файлов.
Система очень надёжная, даже если вы потеряете метаданные, сами данные будут храниться вечно.
Запись делается через формулу Дэвида Бейли — можно вычислить два шестнадцатеричных знака дробной части π начиная с позиции id, без вычисления всех предыдущих. Корректна до id ≈ 1,18×10^7, дальше надо разрабатывать отдельные типы или переходить на C++ с его __float128. Для длинных смещений формула работает очень быстро по сравнению с любыми другими методами, потому что даёт считать без вычисления предыдущих цифр (то есть без сильных затрат оперативки), но всё равно время выполнения растет линейно-логарифмически. Ещё она очень хорошо параллелизуется, но при этом у неё нет квантового ускорения.
В текущей реализации пишутся чанки, для прототипа — по 1 байту. На каждый байт данных хранится 2 байта метаданных. Если вы хотите писать чанки больше или сразу целые файлы — придётся менять параметры и больше считать.
У файловой системы есть проблемы: — Нормальность π — это недоказанная гипотеза. Доказаны иррациональность и трансцендентность, но не равномерная встречаемость. Все эмпирические проверки её подтверждают, но строгого доказательства нет. Это значит, что не факт, что искомая последовательность встретится. — Для смещений порядка 2^64 одно чтение блока заняло бы тысячи процессорных лет, а смещение мегабайтного файла пока не получается записать никуда. — На практике на игровом компьютере 4 байта пишутся мгновенно, 8 байт — 18 секунд, 10 байт — 2 недели, 16 байт — 780 возрастов Вселенной. Именно поэтому выбран чанк 1 байт — чтобы вы могли хоть что-то быстро записывать. — И того, что мы уже вычислили, в массиве найдётся любой блок до 6 байт, и уже с вероятностью около 2% — блок из 7 байт. — Маркетинговый материал включает заявления “infinite storage” и “100% dedup”, это правда. — Версии для Win уже 14 лет всё ещё нет.
Можно над ней смеяться, но вообще-то она работает. Наглядным пособием почему хранение данных в π или в Вавилонской библиотеке или в бесконечной константе ничего не даёт. Потому что вся информация перетекает в индексы.
Судя по запросам сообщества, нужна поддержка ещё 𝐞, √2, τ, предлагают пихать метаданные тоже внутрь π, чтобы уменьшить объём хранения, в планах поддержка Hadoop.
Вот вам некоторые полезные смещения: hex 0xF00D — 13680, 0xDEAD — 40771, 0xC0DE — 53378, ASCII ‘Hi’ — 4506, ASCII ‘OK’ — 12301. Ещё там есть точка Фейнмана: шесть девяток подряд «999999» на позиции 762. Название файловой системы (314159, первые шесть цифр π) лежат на позиции 176451. 16470 стоит на позиции 16470, 44899 на позиции 44899, 1 на позиции 1 (если считать передними когтями с нуля).
И да, если вы дочитали до этого места, вы упоротые.
— Вступайте в ряды Фурье! | Лучшие посты — Тебя как зовут? — Как Лёху. — Как какого Лёху? — Как любого Лёху.