Programming abstractions in C阅读笔记:p166-p175
《Programming Abstractions In C》学习第58天,p166-p175总结。
一、技术总结
1.斐波那契数列(Fibonacci Sequenc)
(1)斐波那契数列来源
斐波那契数列来自于《Liber Abaci》一书里兔子繁殖问题,相关资料很多,这里不赘述。
(2)关于《Liber Abaci》一书
《Liber Abaci》——Liber:a book(意思是“书”);Abaci:abacus的复数形式(意思是“算盘”)。
根据Laurence Sigler《Fibonacci’s Liber Abaci: A Translation into Modern English of Leonardo Pisano’s Book of Calculation》一书第9页内容“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世纪, abaci是指直接使用印度数字(Hindu numerals),而不用“算盘”进行计算。所以,这本书恰当的中文译名应该是《计算之书》(The Book of Calculation,注:纪志刚翻译的中文版用的就是这个名字)。
(3)关于“斐波那契”这个名字
既然称为斐波那契数列,那么作者的名字是否叫斐波那契?根据百科说法是: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.递推关系(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语言实现
/*
* 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));
}
}
二、英语总结
1.suspcious什么意思?
答:
(1)suspicious < suspicion:adj. feel doubt or not trust(可疑的)。 语法结构: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(本质、核心)。示例: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
欢迎搜索及关注:编程人(a_codists)
Programming abstractions in C阅读笔记:p166-p175的更多相关文章
- Mongodb Manual阅读笔记:CH3 数据模型(Data Models)
3数据模型(Data Models) Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mon ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十一章:模板测试
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十一章:模板测试 代码工程地址: https://github.co ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第六章:在Direct3D中绘制
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第六章:在Direct3D中绘制 代码工程地址: https://gi ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第四章:Direct 3D初始化
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第四章:Direct 3D初始化 学习目标 对Direct 3D编程在 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第一章:向量代数
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第一章:向量代数 学习目标: 学习如何使用几何学和数字描述 Vecto ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- [阅读笔记]Software optimization resources
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of differe ...
- 《uml大战需求分析》阅读笔记05
<uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...
随机推荐
- 使用 Sa-Token 实现 [记住我] 模式登录、七天免登录
一.需求分析 如图所示,一般网站的登录界面都会有一个 [记住我] 按钮,当你勾选它登录后,即使你关闭浏览器再次打开网站,也依然会处于登录状态,无须重复验证密码: 本文将详细介绍在 Sa-Token中, ...
- 使用Locust进行分布式性能测试
Locust是一个强大的性能测试工具,用于评估系统的性能和可扩展性.本文将简洁地介绍使用Locust进行分布式性能测试的步骤和优势. 步骤: 1. 配置测试环境:在主节点和多个从节点上安装相同版本的L ...
- Centos 8 时钟同步
Centos 8 时钟同步使用的是 chrony 参考:https://www.cnblogs.com/my-show-time/p/14658895.html $ rpm -qa | grep ch ...
- Unsupervised Learning of Depth and Ego-Motion from Video(CVPR2017)论文阅读
深度估计问题 从输入的单目或双目图像,计算图像物体与摄像头之间距离(输出距离图),双目的距离估计应该是比较成熟和完善,但往单目上考虑主要还是成本的问题,所以做好单目的深度估计有一定的意义.单目的意思是 ...
- vulnhub billu:b0x
知识点 SQLi.目录爆破.数据库操作.文件包含漏洞.提权.反弹shell 解题步骤 nmap扫描有80,22端口 nmap -sV -Pn -T 4 192.168.220.132 访问网页提示sq ...
- 王道oj/problem16
网址:http://oj.lgwenda.com/problem/16 思路:都在注释里,注意增删查的参数以及停止条件 代码: #define _CRT_SECURE_NO_WARNINGS#incl ...
- Cobalt Strike使用教程二
0x00 前言 继前一章介绍了Cobalt Strike的基本用法,本章接着介绍如何攻击.提权.维权等. 0x01 与Metasploit联动 Cobalt Strike → Metasploit m ...
- 从序号和确认号理解TCP三次握手
头部信息 TCP首部存储的数据和建立连接有关,具体每个字段的用途可以参考这一篇文章,其中序号和确认号决定了发送数据的内容. 头部中间部分"保留"和"窗口"中间是 ...
- [k8s]使用私有harbor镜像源
前言 在node上手动执行命令可以正常从harbor拉取镜像,但是用k8s不行,使用kubectl describe pods xxx 提示未授权 unauthorized to access rep ...
- 关于Vue的就地更新策略的解析
在Vue中使用v-for渲染列表时,默认使用就地更新策略.该策略默认是基于索引的,规定在列表绑定的数据元素顺序变化时,不会重新创建整个列表,而只是更新对应DOM元素上的数据.以下代码实现了一个TODO ...