Programming abstractions in C閱讀筆記:p166-p175
《Programming Abstractions In C》學(xué)習(xí)第58天,p166-p175總結(jié)。
一、技術(shù)總結(jié)
1.斐波那契數(shù)列(Fibonacci Sequenc)
(1)斐波那契數(shù)列來源
斐波那契數(shù)列來自于《Liber Abaci》一書里兔子繁殖問題,相關(guān)資料很多,這里不贅述。
(2)關(guān)于《Liber Abaci》一書
《Liber Abaci》——Liber:a book(意思是“書”);Abaci:abacus的復(fù)數(shù)形式(意思是“算盤”)。
根據(jù)Laurence Sigler《Fibonacci’s Liber Abaci: A Translation into Modern English of Leonardo Pisano’s Book of Calculation》一書第9頁內(nèi)容“One should here again make the point, that while derived from the word abacus the word abaci refers in the thirteenth century paradoxically to calculation without the abacus. Thus Liber abaci should not be translated as The Book of the Abacus......”在13世紀(jì), abaci是指直接使用印度數(shù)字(Hindu numerals),而不用“算盤”進(jìn)行計(jì)算。所以,這本書恰當(dāng)?shù)闹形淖g名應(yīng)該是《計(jì)算之書》(The Book of Calculation,注:紀(jì)志剛翻譯的中文版用的就是這個(gè)名字)。
(3)關(guān)于“斐波那契”這個(gè)名字
既然稱為斐波那契數(shù)列,那么作者的名字是否叫斐波那契?根據(jù)百科說法是:Liber Abaci is a historic 1202 Latin manuscript on arithmetic by Leonardo of Pisa, posthumously known as Fibonacci。Fibonacci是“filius Bonacci”,即“son of Bonacci”(波那契之子)。參考Keith Devlin所著《The Man of Numbers: Fibonacci's Arithmetic Revolution》一書)。
2.遞推關(guān)系(recurrence realtion)
p173:
tn = tn-1 + tn-2
An expression of this type, in which each element of a sequence is defined in terms of earlier elements, is called a recurrence relation。
3.斐波那契序列的C語言實(shí)現(xiàn)
/*
* File: fib.c
* -----------
* This program lists the terms in the Fibonacci sequence with
* indices ranging from MinIndex to MaxIndex
*/
#include <stdio.h>
#include "genlib.h"
/* Constants */
#define MinIndex 0
#define MaxIndex 12
/* private function prototype */
int Fib(int n);
/* Main program */
int main() {
int i;
printf("This program lists the Fibonacci sequence.\n");
for (i = MinIndex; i < MaxIndex; i++) {
printf("Fib(%d)", i);
if (i < 10) { // 打印對齊
printf(" ");
}
printf(" = %4d\n", Fib(i));
}
return 0;
}
/*
* Function: Fib
* Usage: t = Fib(n)
* -----------------
* This function returns the nth term in the Fibonacci sequence
* using a recursive implementation of the recurrence relation
*
* Fib(n) = Fib(n - 1) + Fib(n - 2)
*/
int Fib(int n) {
if (n < 2) {
return n;
} else {
return (Fib(n - 1) + Fib(n - 2));
}
}
二、英語總結(jié)
1.suspcious什么意思?
答:
(1)suspicious < suspicion:adj. feel doubt or not trust(可疑的)。 語法結(jié)構(gòu):be suspicious of。
(2)suspicion < suspect:c/u.
(3)suspect: vt. sub-("up to") + *spek-("to observe"),The notion behind the word is "look at secretly," hence, "look at distrustfully"(懷疑)。
2.supersede是什么意思?
答:p168,The frame for Fact temporarily supersedes the frame for Main。vt. super-(above) + *sed-(to sit),即“displace, replace”之意。
3.essence是什么意思?
答:u. the basic or most import quality of sth(本質(zhì)、核心)。示例:p174, The essence of recursion is to break problems down into simpler ones that can be solved by calls to exactly the same function。形容詞格式:essential。之前老是不記得essential是什么意思,這里對比著來記。
三、參考資料
1. 編程
(1)Eric S.Roberts,《Programming Abstractions in C》:https://book.douban.com/subject/2003414
2. 英語
(1)Etymology Dictionary:https://www.etymonline.com
(2) Cambridage Dictionary:https://dictionary.cambridge.org
歡迎搜索及關(guān)注:編程人(a_codists)
浙公網(wǎng)安備 33010602011771號