The real core
Student-ranked library
Адрес должен быть не raw codec, а место страницы в порядке: energy student-а, затем raw tie-breaker.
Правильный порядок
address(page) = rank_by( student_energy(page), raw_lexicographic_tiebreaker ) 0 → самые дешёвые / human-like страницы ... 2^32768 - 1 → самые дорогие / noise-like страницы
Exact MVP
Демо ниже работает на короткой длине, чтобы exact DP/counting считался прямо в браузере. Это не игрушечная идея — это тот же алгоритмический слой, который надо масштабировать до 4096.
Что это доказывает
Если counting layer считает число страниц с energy меньше E и число страниц с той же energy перед данной страницей, то порядок строгий и покрывает все страницы.
student_rank(page) = count(energy < E(page)) + count(energy = E(page), raw < page)