计算机算法

计算机网络

萝らか妹 提交于 2019-11-28 21:35:24
关于 TCP 并发连接的几个思考题与试验 TCP 源端口号与目的端口号: 源端口号与目的端口号, 加上IP首部的源IP地址和目的IP地址唯一确定一个TCP连接 序号: 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流编号 确认号: 仅当ACK标志位1时有效. 表示期望下一个字节的序号 头部长度: 标识TCP头部有多少个32bit(4字节). 因为4位最大能表示15, 所以TCP头部长度是60字节 保留位: 6位, 必须全为0 6个标志位: URG: 紧急指针是否有效 ACK: 确认序号是否有效 PSH: 接收方应尽快将这个报文段从TCP接收缓冲区中读走 RST: 表示要求对方中心建立连接. 称携带RST标志的TCP报文为复位报文段 SYN: 请求建立连接. 称携带SYN标志的TCP报文为同步报文段 FIN: 表示通知对方本端要关闭连接. 称携带FIN标志的TCP报文为结束报文段 16位窗口大小: 通过窗口大小来达到流量控制 检验和: 由发送端填充, 接收端对TCP报文执行CRC算法以检验TCP报文在传输过程中是否损坏. TCP特点: 基于字节流 --> 边界问题, 粘包问题 面向连接 可靠传输 缓冲传输 全双工 流量控制 --> 窗口机制 选项与填充(选项为4字节整数倍, 否则用0填充) 最常见的可选字段是最长报文大小MSS(Maximum Segment

编程的难点

半世苍凉 提交于 2019-11-28 15:56:05
本文转自知乎,大佬剖析的十分透彻,本人转载只为学习。 编程的难分为两类,一种是工程上的难,一种是算法上的难。 我先回答一下工程上的难: 我们做一个比较, 就是开发一个大型软件, 和设计并建造一栋摩天大楼, 究竟哪个更难, 为什么? 实际上这个比较一旦抛出, 软件开发的"难"就立马显现出来了。 摩天大楼一旦盖起,将不再,也不可能“更新版本”,更不可能在建筑结构上进行“重构”,比如一个一百层的摩天大楼,不可能说过两个月发现地方不够住,然后再加五层,又过了两个月发现某个房间的设计满足不了人们日益增长的需求,将整个房间扩大两倍,究其原因,就是因为“建筑”这个东西太不灵活了,你如果想“重构”这个摩天大楼,几乎只有一个办法:炸毁,推倒重来。 而对于软件来讲,它本身的一个灵活性,导致了它可能在不破坏原有的大部分功能的前提下进行一定的功能性改造,在改造的过程中,原有的一些功能模块的更改,可能导致之前的一些文件或环境, 或应用程序在这个新的版本下出现不兼容的现象,所以它要保证旧的东西在新的东西下能成功运行。 一个东西越是牵扯的东西多,越和环境耦合,和“用户”耦合越深,和“自身”耦合,和“历史”耦合越深,它的“更新”就越难,而“重构”是多次更新之后的“必然结果”。 这就是为什么摩天大楼几乎无法进行功能性更新,因为建筑这个东西本来就是一个“超级耦合体”,你改变墙壁的厚度,会减轻它的重量

操作系统详解

时光毁灭记忆、已成空白 提交于 2019-11-28 03:28:29
目录 一 为什么要有操作系统 二 什么是操作系统 三 操作系统与普通软件的区别 四 操作系统发展史 五、操作系统原理 1. 操作系统的资源管理技术 2. 系统调用 3. 操作系统内核 4. 处理器状态: 内核态和用户态 5. 中断(Interupt) 6. 进程 7. 处理器调度 8. 进程的交互 9. 临界区管理 10. 信号量(samaphore)和PV操作 11. 管程 12. 死锁 13. 可变分区存储管理 14. 分页存储管理 15. 分段存储管理 16. 虚拟存储管理 17. 请求段页式虚拟内存管理 18. I/O硬件原理:I/O控制方式 19. I/O软件原理 20. 缓冲技术 21. 驱动调度技术 22. 设备独立性 23. 虚拟设备 24. 文件逻辑结构 25. 文件物理结构 二、Q&A 1. 什么是操作系统?操作系统在计算机系统中的主要作用是什么? 2. 什么是多道程序设计?多道程序设计有什么特点? 3. 计算机操作系统为什么引入进程? 4. 在分时系统中,什么是响应时间?它与哪些因素有关? 5. 解释并发性与并行性 6. 试述存储管理的基本功能。 7. 何谓地址转换(重定向)?哪些方法可以实现地址转换? 8. 什么是文件的共享?介绍文件共享的分类和实现思想。 一 为什么要有操作系统 ( 两本书:现代操作系统、操作系统原理,学好python以后再去研究吧~~)

图像识别技术初探(2014/2/17)

断了今生、忘了曾经 提交于 2019-11-27 23:04:35
目录 1 前言. 1 1.1 植物的发展史. 1 1.1.1 植物界的类群及多样性. 1 1.1.2 植物的分类等级. 2 1.2植物的识别方法. 3 1.2.1 花与种子的特性. 3 1.2.2 叶子的特征. 3 1.3 什么是数字图像处理. 5 1.3.1 数字图像处理概念及其意义. 5 1.3.2 数字图像处理中的基本图像类型. 6 1.3.3 图像格式分析. 7 1.4 什么是模式识别. 8 1.4.1 模式识别的概念. 8 1.4.2 模式识别研究方向. 9 1.4.3 模式识别在实际中的应用. 10 2 预处理与算法研究. 10 2.1 图像的预处理. 10 2.2 数字图像处理方法. 11 2.2.1 二值处理. 11 2.2.2 模糊模式识别算法. 12 2.2.3 边缘检测与轮廓提取. 12 3.2.4 信息存储. 14 3 算法实现. 14 3.1 分析实际工作过程. 14 3.2 算法实现过程. 15 3.2.1 掏空内部点算法的基本思想. 15 3.2.2 边界跟踪算法的基本思想. 15 3.2.3 部分实现代码. 18 4 小结分析. 25 5 参考文献. 26 6 致谢. 27 1 前言 1.1 植物的发展史 1.1.1 植物界的类群及多样性 植物界的发生和发展经历了漫长的历史,随着地球历史的发展,由原始生物不断演化,其间大约经历了30亿年

图论算法

你说的曾经没有我的故事 提交于 2019-11-27 22:57:22
Problem1一笔画问题 题目描述 给出一个图,求其欧拉回路(若没有回路,则求其欧拉路径),若不存在则输出‘No solution’ 输入 输入的第一行为边数F(<=1024),后面F行每行表示一条边(定点标号范围为1-500) 输出 输出一条合法的欧拉回路(路径),若有多条满足要求,输出其字典序最小的那一个。 Problem2 Car的旅行路线 题目描述 住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单位里程价格为Ti,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为t。 那么Car应如何安排到城市B的路线才能尽可能的节省花费,求其最少花费 输入 第一行有四个正整数s,t,A,B。 S(0<S<=100)表示城市的个数,t表示飞机单位里程的价格,A,B分别为城市A,B的序号,(1<=A,B<=S)。 接下来有S行,其中第I行均有7个正整数xi1,yi1,xi2,yi2,xi3,yi3,Ti,这当中的(xi1,yi1),(xi2,yi2),(xi3,yi3)分别是第I个城市中任意三个机场的坐标,T I为第I个城市高速铁路单位里程的价格。 输出 输出最小花费,保留一位小数 Problem3求割点与桥 题目描述 给定一个图,求其割点与桥 输入

对比《网络是怎样连接的》PDF+《程序是怎样跑起来的》PDF+《计算机是怎样跑起来的》PDF

怎甘沉沦 提交于 2019-11-27 16:58:28
理解知识最好的办法是写一写汇编。从中感觉自己对浮点数在寄存器的存放机制了解还不够。加深了对基址寄存器和变址寄存器的了解。不足的地方在于有些例子陈旧了。记住0.1循环100相加不是10。 从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是了解从用户双击程序图标到程序开始运行之间到底发生了什么。《程序是怎样跑起来的》图文并茂,通俗易懂,非常适合计算机爱好者阅读。 《计算机是怎样跑起来的》以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及SE 的相关知识。适合计算机爱好者和相关从业人员阅读。 《程序是怎样跑起来的》PDF,273页,带目录,文字可复制。《计算机是怎样跑起来的》PDF,276页,带目录,文字可复制。 下载: https://pan.baidu.com/s/1W3HcmFKuUeQBIBRFSXue7Q 提取码: 7mq6 《计算机是怎样跑起来的》倡导在计算机迅速发展、技术不断革新的今天,回归到计算机的基础知识上。通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的最新技术时,能够迅速掌握其要点并灵活运用。计算机本身并不智能

《计算机是怎样跑起来的》PDF+《程序是怎样跑起来的》PDF+《网络是怎样连接的》PDF分析

浪尽此生 提交于 2019-11-27 14:13:38
理解知识最好的办法是写一写汇编。从中感觉自己对浮点数在寄存器的存放机制了解还不够。加深了对基址寄存器和变址寄存器的了解。不足的地方在于有些例子陈旧了。记住0.1循环100相加不是10。 从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是了解从用户双击程序图标到程序开始运行之间到底发生了什么。《程序是怎样跑起来的》图文并茂,通俗易懂,非常适合计算机爱好者阅读。 《计算机是怎样跑起来的》以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及SE 的相关知识。适合计算机爱好者和相关从业人员阅读。 《程序是怎样跑起来的》PDF,273页,带目录,文字可复制。《计算机是怎样跑起来的》PDF,276页,带目录,文字可复制。 下载: https://pan.baidu.com/s/1W3HcmFKuUeQBIBRFSXue7Q 提取码: 7mq6 《计算机是怎样跑起来的》倡导在计算机迅速发展、技术不断革新的今天,回归到计算机的基础知识上。通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的最新技术时,能够迅速掌握其要点并灵活运用。计算机本身并不智能