Я пытаюсь найти амортизированную стоимость операции в последовательности n
операций со структурой данных, в которой ith
операция стоит i
, если i
является точной степенью числа 2, и 1 в противном случае.
Я думаю, мне нужно найти способ выразить сумму затрат до числа n
, но я застрял. Я вижу, что специальные, более дорогие значения i
встречаются с отцом и дальше друг от друга:
i = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
Итак, похоже, что у меня нет чисел между первой и второй степенями 2, затем одно число, затем 3, затем 7. Когда я некоторое время смотрел на это, я (поправьте меня, если это не так) обнаружил, что число нестепеней числа 2 между jth
и kth
степенями числа 2 является 2^(j-1) - 1
.
Но как я могу связать все это вместе в сумме? Я вижу что-то большее, чем js
в сочетании с количеством фактических степеней двойки, но у меня возникли проблемы с объединением всего этого в единую концепцию.