数学之美

最近在读《数学之美》这本书,做一下个人笔记。看的是PDF,看完后会买一本的哦!版权意识还是有的。

ps:图片文字都是这本书中的内容,侵权立删。会有点自己的理解。

第九章    图论和网络爬虫

1    图论

每座桥恰巧走过一遍并回到原出发点?

关于图的最重要的一种算法是遍历算法,也就是如何通过弧访问图的各个节点。

广度优先搜索(Breadth-First Search,BFS):要尽可能‘广’地访问与每个节点直接连接的其他节点

深度优先搜索(Depth-First Search,DFS):一条路走到黑= =!

2    网络爬虫

把互联网看成一张大图,把每一个网页当作一个节点,把超链接当作连接网页的弧。

在网络爬虫中,使用一个‘散列表’(Hash Table,也叫哈希表)而不是一个记事本记录网页是否下载过的信息。

3    延伸阅读:图论的两点补充说明

3.1    欧拉七桥问题的证明
把每一块连通的陆地作为一个顶点,每一座桥当成图的一条边,那么就把七座桥抽象成下图:

对于图中的每一个顶点,与它相连的边的数量定义为它的度(degree)

定理:如果一个图能够从一个顶点出发,每条边不重复地遍历一遍回到这个顶点,那么每一顶点的度必须是偶数。

证明:假如能够遍历图的每一条边各一次,那么对于每个顶点,需要从某条边进入顶点,同时从另一条边离开这个顶点。进入和离开顶点的次数是相同的,因此每个顶点有多少条进入的边,就有多少条出去的边。也就是说,每个顶点相连的边的数量是成对出现的,即每个顶点的度都是偶数。

3.2    构建网络爬虫的工程要点

“如何构建一个爬虫”?(我第一反应就是库啊= =!咸鱼的我)

①首先,用BFS还是DFS?

网络爬虫对网页遍历的次序不是简单的BFS或者DFS,而是有一个相对复杂的下载优先级排序的方法。在爬虫中,BFS的成分多一些。

②第二,页面的分析和URL的提取

URL的提取比以前复杂多了

③第三,记录哪些网页已经下载过的小本本——URL表

为了防止一个网页被下载多次,用散列表记录哪些网页已经下载过。难点:上千台服务器上建立和维护一张散列表就不简单了。首先,这张散列表会大到一台服务器存储不下。其次,由于每个下载服务器在开始下载前和完成下载后都要访问和维护这张表,以免不同的服务器做重复的工作,这个存储散列表的服务器的通信就成了整个爬虫系统的瓶颈。如何解决?

好的方法:明确每台服务器的分工。在此基础上判断URL是否下载就可以批处理了,比如每次向散列表(一组独立的服务器)发送一大批询问,或者每次更新一大批散列表的内容。

《数学之美》——第九章 个人笔记相关推荐

  1. OpenGL蓝宝书第九章学习笔记:片段着色器和帧缓存

    前言 本篇在讲什么 OpenGL蓝宝书第九章学习笔记之片段着色器和帧缓存 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C++语法有简单认知 对OpenGL有简单认知 最好是有OpenGL ...

  2. 小蓝本 第一本《因式分解技巧》 第九章 待定系数法 笔记 (第九天)

    小蓝本 第一本<因式分解技巧> 第九章 待定系数法 笔记 (第九天) 前言 待定系数法 二次因式 一次因式分解缺陷 二次因式分解方法 注意 既约的情况 拓展 习题9 题目 题解 前言 已经 ...

  3. 工程伦理第九章学习笔记2020最新

    工程伦理第九章学习笔记2020最新 继续更新

  4. 《数学之美》-吴军 读书笔记

    从吴军的<数学之美>找到了伽莫夫的<从一到无穷大>,前段时间先整理了<从一到无穷大>的笔记.现在整理下<数学之美>以巩固下. 近段时间AlfaGo 与人 ...

  5. 《数学之美》——吴军#读书笔记

    <数学之美> 吴军 第一章:文字和语言vs数字和信息 主要内容概述:"语言和数学的产生都是为了同一个目的--记录和传播信息".科技是伴随着人类的不断进化而发展进步的.信 ...

  6. 吴军《数学之美》部分概念笔记(1-11章)

    相关参考资料见正文 Good-turing模型: 由于我们是估算对于一个位置上出现单词wi的概率.这种情况下,在样本库中没有出现的单词,其概率并非为0. 但由于已有的Nr`r的累计和已经达到了1,所以 ...

  7. 《Java从入门到精通》第九章学习笔记

    第9章 类的高级特性 一.抽象类 抽象类只声明方法的存在,不能被实例化,就是说抽象类不能创建其对象,在定义抽象类时要在class前面加上abstract关键字. 1 /*定义一个抽象类Fruit,并定 ...

  8. 《自己动手写CPU》--第九章--学习笔记

    章将实现MIPS32指令集架构中定义的加载存储指令,分两步:首先实现除ll.sc指令外的一般加载存储指令,其次实现比较特殊的加载存储指令ll.sc. 9.1加载存储指令说明 MIPS32指令集架构中定 ...

  9. 《数学之美》吴军-读书笔记

    信息的冗余是信息安全的保障. 早起数字并没有书写的形式,而是掰指头,这就是我们今天使用十进制的原因. 1970年以后统计语言学的出现使得自然语言处理重获新生,并取得了今天的非凡成就. 一个句子是否合理 ...

最新文章

  1. PyTorch中文文档 说明书
  2. Linux 服务器日志文件查找技巧精粹
  3. OpenAI解析「AI算力」:3个半月翻一倍,6年超过30万倍
  4. 92django_url
  5. bat no moudle named xxx
  6. Oracle编程入门经典 第9章 掌握SQL*Plus
  7. 重识微信:花 8 小时列举微信功能
  8. pycharm 如何通过VCS快速提交代码?
  9. 计算机二级html真题,计算机二级《Web程序设计》试题及答案
  10. Bitcoin Cash和Bitcoin Core到底谁是分叉币
  11. JQM页面跳转,多种效果
  12. 终端服务器超出了最大允许连接数
  13. 排序算法之——堆排序分析
  14. 为Android购买多个改装微信,从制作一个“微信多开版”看微信安全
  15. python新浪微博爬虫_基于Python的新浪微博数据爬虫
  16. 比较常用的平面设计软件都有哪些?
  17. winxp下用ssh控制 linux 服务器
  18. python 当前日期的上一个月和后一个月
  19. 数据库常见问题汇总Subquery returns more than 1 row
  20. html5 video speed control插件,谷歌浏览器插件Video Speed Manager 视频速度控制插件

热门文章

  1. oracle3个重要角色,Oracle 用户及角色 介绍
  2. JAVA微信公众号开发第11微信发红包
  3. 在RHEL6.0 X64系统中安装oracle 11g数据库及安装后设置
  4. Camtasia2023官方中文版免费下载
  5. 【JAVA项目实战】【图书管理系统】用户查询功能【Servlet】+【Jsp】+【Mysql】
  6. 网站服务器域名费用入什么科目,域名费用计入什么科目
  7. edge java_在Windows 10上,Edge浏览器不支持插件,因此Java无法运行
  8. Pretty girl你一定要会管理自己的身体
  9. 【转载】生活常识,人人必备
  10. android实现调用科大讯飞语音识别功能详细步骤