По случаю пятницы новый небольшой рассказ. Не стесняйтесь ругать в комментариях, критика очень приветствуется.
Они всегда старались докопаться до сути. С самого рассвета своей цивилизации. От истоков. Это было тем качеством, которое позволило им подняться среди других видов. Изучить, разобраться, воспроизвести, описать. И снова изучить, и весь процесс повторяется. Они начинали с простейших закономерностей. Затем углубились в суть материи, разбирались с частицами и их взаимодействиями. Открыли глаза на окружающий мир и изучили другие миры. Сначала соседние, потом далекие. Докопались до самой сути своего пространства и научились путешествовать в любое место своей бесконечной вселенной. Они досконально разобрались во всех взаимодействиях. Их теории были безупречно полны и достоверны. Они наконец описали всю вселенную, во всем ее многообразии и бесконечности и переложили это на красивый язык математики. Они измерили все состояния и смогли путешествовать в своих теориях не только в пространстве, но и во времени. Они смогли предсказать любое прошлое или будущее состояние вселенной. Они описали ее целиком и полностью. И удивлению их не было предела. Ведь в их безупречной модели совсем не было будущего. Оно как бы не существова...
Он сохранил архив, приложил алгоритм и отправил его своему преподавателю. Наконец можно было отдохнуть и развлечься с друзьями. Задание было нелегким. Надо было написать архиватор для очень сложного бесконечного набора данных, который необходимо сохранить в конечном объеме. К счастью уровень энтропии не был непомерным и у него в итоге получилось внедрить прямо в набор данных такой скрипт, который как бы изучал эти данные изнутри и преобразовывал определенный их фрагмент в их же архив. Хитро, не? Интересно кто еще решил таким же образом.
Женя Белик
Комментарии (40)
GreatRash
14.10.2016 13:23«Архиватор для бесконечного набора данных» — смешно. ? ? 1 =?
SystemXFiles
14.10.2016 13:26+3А почему нет? Вдруг вся бесконечность сводится к циклу (повторяемые фрагменты)? Тогда можно будет бесконечность описать конечным образом (с некоторой вероятностью — уверенностью).
izzholtik
14.10.2016 13:52Нет, поскольку количество повторяющихся последовательностей будет бесконечно велико и не сможет быть записано конечным числом.
SystemXFiles
14.10.2016 14:10+3А такой вариант?
Вполне себе бесконечная последовательность и записана конечно прямо в комментарии.
while(true) { print("123") }
tangro
14.10.2016 17:27Не пойдёт, потому что чтобы такое написать — надо быть уверенным, что последовательность именно повторяет одни и те же фрагменты бесконечно, а как же это понять, не считав её полностью, а как же её считать, если она бесконечна.
MichaelBorisov
14.10.2016 23:31Последовательность не может иметь бесконечную энтропию, если ее каким-то образом можно представить в конечном мире. Задача сводится, таким образом, к выяснению способа представить эту последовательность в виде конечного алгоритма, порождающего ее.
tangro
15.10.2016 18:05Вот я Вам представляю в конечном виде круг: О
Напишите-ка мне алгоритм, выводящий полностью отношение длины его окружности к радиусу.
isden
14.10.2016 13:28Подождите, насколько я понимаю, из «бесконечного набора данных» никак нельзя получить конечный набор. Иначе — это не бесконечный, а просто очень большой набор данных.
lavmax
14.10.2016 13:32+1Вот вам пример. В прямоугольной двумерной системе координат бесконечный набор данных находящийся на линии проходящей через ноль и отклоненной от оси Х на 45 градусов можно сжать до трех символов "X=Y".
Xandrmoro
14.10.2016 13:33Если набор не истинно случайный — описание закономерности может быть сколь угодно сложным, но всё же конечным.
isden
14.10.2016 13:36Т.е., по сути, все сводится к поиску некой функции для описания этих данных? Что-то сдается мне, подобная задача для произвольных данных выглядит как-то не очень решаемой.
lavmax
14.10.2016 13:42+1Речь шла не про произвольный набор, а про "очень сложный бесконечный набор данных" с приемлемым уровнем энтропии :)
isden
14.10.2016 13:44А чем они отличаются? :)
lavmax
14.10.2016 13:48+1Думаю можно сказать, что "произвольный набор данных" в определении содержит невозможность компрессии. Хотя тут само понятие поизвольности несколько размыто. А, в свою очередь, бесконечный набор данных вполне может сжиматься — вот пример
isden
14.10.2016 13:55Нет, я немного не про это.
Вот смотрите. Если мы можем подобным образом описать наш набор данных — значит задача решена.
Но, на вход нам могут поступать _любые_ данные, иначе наш архиватор предназначен только для сжатия, условно говоря, прямых линий и окружностей.
И даже в этом случае идем далее — если этот набор любых данных бесконечен, нам нужно как-то уметь определять, что мы можем сжать, а что нет. Но как решить эту задачу на бесконечных данных?lavmax
14.10.2016 14:02+1Достаточно научиться путешествовать по всему объему данных :) Например вы легко можете попасть в любую точку на функции x=y и убедиться в работоспособности такого описания функции. Чем сложнее набор данных, тем сложнее задача описания его в математическом виде. Задача трех тел, например, до сих пор не решена в общем случае.
isden
14.10.2016 14:07Ну т.е. в общем случае сабжевая задача не решаема (в данный момент), а в частном случае нам нужно определить этот самый частный случай, что сводит решение проблемы к общему случаю. Я правильно понял? :)
lavmax
14.10.2016 14:42Более того, на данный момент считается, что ее даже теоретически нельзя решить. Но это на данный момент )
alix_ginger
16.10.2016 10:55Как насчет чисел Фибоначчи? Набор данных бесконечен, но описать его можно одной строкой. Я так понял, в рассказе описывается что-то похожее, хоть и значительно сложнее
isden
16.10.2016 11:11Смотрите тред далее.
Если мы абсолютно точно уверены, что данная последовательность подчиняется какой-то закономерности — то тут вопросов нет. Вся фишка тут в том, чтобы определить, есть ли закономерность в бесконечном наборе данных.
AlexanderS
14.10.2016 13:51+1Задание было нелегким. Надо было написать архиватор для очень сложного бесконечного набора данных, который необходимо сохранить в конечном объеме.
Если набор данных — это псевдослучайная последовательность, то выполнив свёртку можно представить её в виде вполне себе конечного объёма полинома для генерации М последовательности. Подозреваю, что ученик исследовал отклики от прогона данных через корелляторы =)lavmax
14.10.2016 14:05+2Вопрос еще в том, что само определение случайности/псевдослучайности фактически лежит в области можем мы сжать это или нет. Если можем — это псевдослучайный набор, если нет — случайный. Для нас, здесь и сейчас. Имхо любой случайный набор данных имеет вероятность стать в будущем псевдослучайным.
AlexanderS
14.10.2016 14:16+1В принципе, справедливо и обратное — набор считающийся псевдослучайным на какой-то итерации может стать случайным, когда «заработает» какой-то коэффициент полинома. Т.е. если реализовать длинный-предлинный сдвиговый регистр ПСП с небольшим количеством обратных связей для большущего полинома, то какой-то коэффициент свой вклад может начинать вносить спустя большое время после запуска процесса.
MichaelBorisov
14.10.2016 23:34Но от этого последовательность не станет истинно случайной. Просто выяснится, что у нее более длинный период повторения и задающий полином.
Rasheverak
15.10.2016 11:18А разве можно 10ю цифрами написать абсолютно, т.е. даже участками, неповторяющуюся бесеонечную последовательность?
Самое простое, мне кажется, все четные обозначить как А а нечетные как Б-и сразу появяться закономерности и последовательности, а потом разобраться ниже уровнями…
Извините если протупил, я не метематик вовсе…lavmax
15.10.2016 11:24Думаю, что дело в том, что повторение "участками" не считается. Если вы взяли 10 цифр, то как минимум эти 10 цифр будут постоянно повторяться. А можно ли из этого сделать случайную бесконечную последовательность? Вот, пожалуйста 3,14159265… и т.д.
Rasheverak
15.10.2016 14:50Вот! это то, что я не могу понять --учасками повторение не считается, а бесконечность мы не можем посчитать по определению… вы тут логического несоответствия не видите?:-)
А по поводу пи, имхо-если из десятичной системы массив перевести в бинарную и рассмотреть просто как массив нулей и единиц, мне думается там участками будет достаточно закономерностей, а уж как частные закономерности экстраполировать на бесконечность не знаю, думаю что нельзя будет предсказать конкретное число, но можно будет достаточно точно(с определенной вероятностью) описать некий выделенный участок.понятно, что никакого практического смысла в этом нет, но его и глупо искать (имхо) когда речь идет о бесконечности… как говорилось в одном произведении:«бесконечное познание требует бесконечного времени, а потому работай или нет результат одинаков» :-)lavmax
15.10.2016 21:00Может я не до конца вас понял, но нет, я не вижу тут противоречия. Бесконечное познание требует бесконечного времени, но познание некоторых бесконечностей не требует бесконечного познания и вполне делается за конечное время.
Doverchiviy_kot
14.10.2016 20:18+1Тут нужен архиватор Бабушкина который превратит бесконечное количество данных в пару килобайт.
Dum_spiro_spero
15.10.2016 00:18+1На правах литературного критика. )))
Двухчастная форма — это хорошо.
1. Второй абзац хотелось бы более подробным — а то много осталось за кадром. Собственно связь обитателей мира и программиста. Читатель догадывается… но… как-то непонятно.
2. Не надо использовать «как бы». Это означает «я не могу найти точную фразу, поэтому пусть читатель придумает её за меня».
Ждем еще!!!lavmax
15.10.2016 11:29+1Большое спасибо за комментарий и критику. По поводу "как-бы", тут оно означает что-то вроде "на самом деле все сильно сложнее, но вы можете представить себе, что скрипт как-бы изучает данные изнутри". Если этого эффекта не получилось, то я бы тоже с удовольствием от него избавился. Есть идеи чем его заменить?
По поводу "за кадром". Хм… В общем то так и задумывалось :) Собственно связь обитателей мира и программиста и надо додумать. Иначе вся интрига потеряется :)
SystemXFiles
Хотелось бы больше подробностей.
Ведь для осуществления такой задумки, надо чтобы был какой-то внешний интерпретатор «для очень сложного бесконечного набора данных» и уместные ребята (в плане интерпретирования, т.е. они должны быть намеренно написаны под интерпретатор) которые «эти данные изнутри преобразовывали».
Просто вакханалия какая-то получается отчасти. Трудно представить такое.
По сути это будет какой-то дикий оптимизатор данных, способный свести все эти данные к более простым выражениям, но по прежнему уместных для интерпретатора. Причем оптимизатор будет запущен в том же пространстве данных и он должен быть намеренно создан под такую задачу.
А мы созданы под такую задачу? Надо подумать.
Не в плане способности оптимизировать, а в плане «мы созданы вообще или все же мы случайное творение эволюции в рамках законов интерпретатора»?
lavmax
Внешний интерпретатор — это собственно приложенный к архиву скрипт. Он же наверное оптимизатор, если я правильно понял что вы имеете ввиду.
По поводу нас. Возможно этого никто никогда не узнает :)