Это теоретический вопрос, поэтому ожидайте, что многие детали здесь невозможно вычислить ни на практике, ни даже в теории.
Допустим, у меня есть строка s
, которую я хочу сжать. Результатом должен быть самораспаковывающийся двоичный файл (может быть ассемблер x86, но также может быть какой-то другой гипотетический полный по Тьюрингу язык низкого уровня), который выводит s
.
Теперь мы можем легко перебрать все возможные такие двоичные файлы и программы, отсортированные по размеру. Пусть B_s
будет подсписком этих двоичных файлов, которые выводят s
(конечно, B_s
невычислимо).
Поскольку каждый набор положительных целых чисел должен иметь минимум, должна быть самая маленькая программа b_min_s
в B_s
.
Для каких языков (то есть набора строк) мы знаем что-то о размере b_min_s
? Может быть, только оценка. (Я могу построить несколько тривиальных примеров, где я всегда могу даже вычислить B_s
, а также b_min_s
, но меня интересуют более интересные языки.)