參考原文:
基本思想是將x表示為乘積:$x=\prod$
其中,$a_i \ge a_ > 1$,如此一來,有:
$\log_b=\sum\log_b$
每次執行到l4,我們都得到了乙個最小的k,使得針對本次迭代的輸入x,有:
$\fracx \ge 1$
$x\geq\frac > 1$
取$a_1 = 2^k / (2^k - 1)$,則:
$x=a_1x'$
$x'=\fracx$
x'將作為新的x進入下一次迭代。
附加說明一下,k的值是累加的,沒有在新的迭代中重新設為1。這意味著對$x''$的尋找是從$(2^k - 1 / 2^k)x'$開始的,而不是x/2。
這是合理的,因為$x'$的最大因子必然小於等於x的最大因子$a_1$:
$\frac}-1}\le\frac$
從而有$k' \ge k$,所以新的迭代開始時,k保留原值就可以了。
TAOCP 1 2 1 8 習題8的證明
a 首先要把要證明的東西泛化,記 n 3 f n 通過觀察n 3時的取值,1,3,5,7,9,11,13,f 3 是前6個奇數的和減去前3個奇數的和。f n 就是前n n 1 2個奇數的和,減去前 n 1 n 2個奇數的和。求前k個奇數的和比較簡單,1 2k 1 k 2 k 2 這也是本節eq 2 ...
PTA 習題2 5 兩個有序鍊錶序列的合併
習題2.5 兩個有序鍊錶序列的合併 題目要求 本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。介面 list merge list l1,list l2 l1和l2是給定的帶頭結點的單鏈表,其結點儲存的資料是遞增有序的 函式merge要將l1和l2合併為乙個非遞減的整數...
習題2 5 兩個有序鍊錶序列的合併 15分
本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型...