Недавно я пытался решить некоторые рекуррентные отношения из CLRS, и я заметил странный нюанс при решении этих уравнений. Я не знаю, заметил ли кто-нибудь из вас это или нет, или, возможно, чемпионы Теории могут пролить больше света на это. (У меня тоже есть степень по CS, но не по теории!). При решении рекуррентности по основной теореме:
T (n) = a T (n / b) + f (n)
Я заметил, что рассуждение выглядит примерно так:
i) разверните арийное дерево рекурсии, и мы получим log b n листовых узлов, где работа, выполненная для узла, равна Θ (1), давая Θ (n log b a ) для всех конечных узлов
ii) для всех неконечных узлов g (n) = Σa j f (b / n j ), где j суммирует от 0 до этажа (log * 1021) * b n - 1), где высота дерева равна log b n
iii) Теперь сделайте прыжок веры: заявите, что f (n) действительно ограничено O (n log b a - & epsilon;) для некоторых & epsilon; > 0
iv) Теперь решите g (n) в терминах f (n) и T (n) в терминах g (n). Как упомянуто в шаге i, T (n) действительно Θ (n log b a ) + g (n), поэтому, как только у вас получится, что g (n) объединится с другим срок, чтобы придумать T (n)
Проблема, с которой я сталкиваюсь при таком подходе, состоит в том, что здесь рассуждение выглядит примерно так: посмотрите, если мы предположим, что правая часть равна X, то мы включим это в уравнение, чтобы решить левую часть. Разве это не немного странно? Разве это не так:
Дано: X 2 = 8X - 16
так что давайте предположим, что X = 4 и поместим это в RHS и решим для X, круто, видите, мы получили 4 !!!
Это определенно интересно, но вы действительно решаете проблему - почему вы не догадались, что X - иррациональное число, а не мнимое число?
Более того, я бы на самом деле хотел бы знать, в какой области математики существует этот тип рассуждений, так как я подозреваю, что он пришел к CS из этой области. Любая идея? Я знаю, что почти 99% математики в CS - это просто «более причудливая форма аргументов при определенных допущениях» (так как специализация CS не решает уравнения в общепринятом смысле), но все же этот метод кажется очень уникальным. Есть идеи?