上周, 本客在"周末一题: 科学博物馆里的思考"里给出一个Chameleon catches small dragonflies的故事. 其中第二问, "After how many minutes will the chameleon catch his 98th dragonfly?"涉及到一个t(98).
这里给出一个递推:
t(m) = Σr(i), i=1..m
when m = 2j
t(2j) = Σr(i), i=1..2j
= Σr(2i+1), i=1..j
+ r(1) - r(2j+1)
+ Σr(2i), i=1..j
= r(1) - r(2j+1) + Σ[r(i)+1], i=1..j
+ Σr(i), i=1..j
= 1 -[r(j) + 1] + 2t(j) + j
= 2t(j) + j - r(j) (1)
when m = 2j+1
t(2j+1) = Σr(i), i=0..2j+1
= r(1) + Σr(2i+1) + Σr(2i), i=1..j
= 1 + j + 2Σr(i), i=1..j
= 2t(j) + j + 1 (2)
呵呵, 据此可以再作推演:
t(2j+1) = t(2j) + r(j) + 1 (3) |