Концептуально история любого процесса и измерение его возраста требует как минимум:
- единиц измерения процесса,
- позиции внешнего наблюдателя,
- некого буфера для промежуточных манипуляций с протоколами наблюдения, то есть счётчика итераций, например, да и самого местоположения наблюдателя со всем неизвестным его устройством.
И поэтому понятна сложность оценки времени. И удивительно, что вообще удаётся рассчитать хоть что-то.
В программировании есть принцип оценки алгоритмической сложности. Многие полагают будто это математический метод расчёта абсолютной точности. На самом деле для этого потребуется абсолютное же уточнение сценария. А в общем случае из-за вариативности почти любого жизненного процесса расчёт этой сложности скорее эвристический метод, чем математический, с огрублением и выбором статистической примерности.
Например, какова алгоритмическая сложность операции деления? Кто-то скажет, что константа и вопрос странный. Но ведь деление это высокоуровневое обобщение сложного алгоритма с бесконечной вариативностью сценариев. Ибо деление это вычитание делителя из делимого сколько-то раз, для этого нужно иметь счётчик и условие проверки отношения делимого к делителю, и если делимое меньше, то нужен ещё какой-то признак дробности/сдвига.
И вот в этих условиях начинается:
Если мы 6 делим на 3, то мы 2 раза из 6 вычитаем 3 и получаем ноль, процесс закончен.
Но если мы 7 делим на 3, то мы так же 2 раза вычитаем 3 из 7, но получаем 1, который меньше 3, меньше делителя. Тут у нас появляется новая концепция — остаток от деления. Если остановиться, то у нас есть составной итог: результат деления и остаток от него.
Если рассчитывать дробную часть, что в разных условиях это может быть бесконечное количество конечных дробей и бесконечное количество периодических и иррациональных. В данном случае у нас 1 и чтобы вычесть из него 3, нужно как-то поставить точку дробной части для результата, после чего умножить число на основание системы счисления, то есть на 10 (что тоже вариативное количество операций сложения). И далее из 10 вычитаем 3 и получаем 3 и остаток 1, делаем какой-то сдвиг регистра и снова умножаем полученный остаток на основание системы, и в данном случае снова получаем 10, а значит бесконечную периодическую дробь: 2,(3). То есть этот процесс деления не закончится никогда. Его алгоритмическая сложность не имеет даже математического выражения.
И вот так оказывается, что алгоритмическую сложность в полной мере нельзя посчитать даже у простой операции деления, не говоря уж про сложные алгоритмы. Тем не менее примерно прикидывать можно и это работает.
Так же и с оценкой прошлого. Мы не можем его знать в полной мере, но что-то знать можем. А сопоставляя всё, что мы знаем в единую систему, с какой-то погрешностью строим модель прошлого, которая даёт нам предсказуемость будущего.
В общем-то это какой-то секрет полишинеля. Именно потому люди и приходят в философию, что сталкиваются с пределами точности их естественнонаучных и житейских методов оценки действительности. Однажды ты подходишь к помутневшим краям вселенной и далее всё как в тумане…