您好,欢迎光临有路网!
程序员的数学思维修炼(趣味解读)
QQ咨询:
有路璐璐:

程序员的数学思维修炼(趣味解读)

  • 作者:周颖
  • 出版社:清华大学出版社
  • ISBN:9787302350606
  • 出版日期:2014年04月01日
  • 页数:302
  • 定价:¥49.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    • 出版社
    • ISBN
      9787302350606
    • 作者
    • 页数
      302
    • 出版时间
      2014年04月01日
    • 定价
      ¥49.00
    • 所属分类
    内容提要
    本书是一本专门为程序员而写的数学书,介绍了程序设计中常用的数学知识。本书门槛不高,不需要读者精通很多高深的数学知识,只需要读者具备基本的四则运算、乘方等数学基础知识和日常生活中的基本逻辑判断能力即可。本书拒绝枯燥乏味的讲解,而是代之以轻松活泼的风格。书中列举了大量读者都很熟悉,而且非常有趣的数学实例,并结合程序设计的思维和算法加以剖析,可以训练读者的数学思维能力和程序设计能力,进而拓宽读者的视野,增强职场竞争力。 本书共11章,分别介绍了数据的表示、神奇的素数、递归、排列组合、用余数进行数据分组、概率、复利、数理逻辑、推理、几何图形构造、统筹规划等程序设计中常用的数学知识,从而引导读者深入理解编程中的数学方法和思路。本书包含的实例有结绳记事、孪生素数、梅森素数、哥德巴赫猜想、阶乘、汉诺塔、斐波那契数列、乘法原理、加法原理、字符编码、密码长度、日历中的数学、心灵感应魔术、约瑟夫环、智叟分牛、百枚钱币鼓士气、庄家的胜率、中奖概率、用概率方法求π值、复利的威力、对折纸张、舍罕王的赏赐、三段论、选言推理、假言推理、关系推理、花盆摆放、残缺棋盘、丢失的线条、田忌���马、背包问题等。 本书适合广大程
    文章节选
    第1章 数据的表示
    数学古称算学,是中国古代科学中一门重要的学科。根据中国古代数学发展的特点,可以分为5个时期,分别是萌芽、体系的形成、发展、繁荣和中西方数学的融合。
    在数学的不同发展阶段,对于数据的表示都有一些不同的形式。从远古的结绳记数,到现在用计算机等现代科技设计记数,数的表示形式也在逐步演化。
    本章主要介绍数据的各种表示形式,包括各种进制及进制之间的转换。
    1.1 一 则 童 话
    根据我们所学的知识可知道,数据通常是用0、1、2、3、4、5、6、7、8、9这些数来表示,由这些数的不同组合表示现实生活中各种各样的数据。首先来看这个数列中的前两个数:0和1,从通常意义来说,0就是什么也没有,真的是这样吗?对程度员来说不应该这样理解。
    先来看这样一个问题,0和1谁大?
    1.1.1 0和1的故事
    在数学王国里,胖子0与瘦子1常常为了谁大而争执不休。瞧!今天,这两个小冤家狭路相逢,彼此之间又展开了一场舌战。
    瘦子1抢先发言:“哼!胖胖的0,你有什么了不起?就像100,如果没有我这个瘦子1,你这两个胖0有什么用?”
    胖子0不服气了:“你也甭在我面前耍威风,想想看,要是没有我,你就只是一个光杆呢?”
    “哟!”1不甘示弱,“你再神气也不过是表示什么也没有,看!1+0还不等于我本身,你哪点儿派得上用场啦?”
    “去!1×0结果也还不是我,你1不也同样没用!”0针锋相对。
    “你……”1顿了顿,随机应变道,“不管怎么说,你0就是表示什么也没有!”
    “这就是你见识少了。”0不慌不忙地说,“你看,日常生活中,气温0度,难道是没有温度吗?再比如,直尺上没有我作为起点,哪有你1呢?”
    “再怎么比,我始终比你大。”1信心十足地说。
    听了这话,0更显得理直气壮地说:“嘿嘿,你的大小还得我说了算,我站你左边,你就成0.1,我站你右边你就是10。怎么样?我可让你放大10倍,也可让你缩小10倍!”
    眼看着胖子0与瘦子1争得脸红耳赤,谁也不让谁,一旁观战的其他数字们都十分 着急。
    这时,9灵机一动,上前做了个暂停的手势:“你俩都别争了,瞧你们,1、0有哪个数比我大?”
    “这……”胖子0、瘦子1哑口无言。
    这时,9才心平气和地说:“1、0,其实,只要你们站在一块,不就比我大了吗?”
    1、0面面相觑,半晌才搔搔头笑了。“这才对嘛!把自己的位置放正,就能起到应有的作用”。9语**长地说。
    从以上故事可看出以下两点:
    0并不表示什么都没有。
    数的大小与所处的位置有关系。
    下面就来讨论这两个问题。
    1.1.2 0是什么都没有?
    通常意义上,0表示“没有”的意思。例如,“2012年过去了,可我的收获为零!”这就表示在2012年没有收获。
    但是,0真表示什么都没有吗?
    其实,0不仅表示什么都没有,它还有更丰富的内涵。例如,0度并不是没有温度,而是表示温度为0度,比零下1度高,比1度低,如图1-1所示。
    图1-1
    在日常生活的常用语中,也有很多用0来表示的,如“很多女孩子都喜欢吃零食”,这里的“零食”并不是表示没有“食”,如图1-2所示。
    图1-2
    “为了增加收入,改善生活,很多程序员在业余时间都会接点零活来做。”这里的“零活”并不是没有“活”。
    其实,在数学上,0也并不是表示没有。例如,8和8.0相等吗?其含义相同吗?
    看起来在小数点后添加一个0是没有意义的,不过,其含义实际是不相同的。在近似数表示中,数字8表示数据只**到个位,如7.9、8.2等数**到个位都表示为8。而8.0表示数据**到十分位,如8.02、7.99等数**到十分位都表示为8.0。所以,从这个角度来看,8和8.0是不相等的。
    1.1.3 0的位置
    从“0和1的故事”可看出,当0所处的位置不同时,其含义也不一样。如前面说的8和8.0,当把0放在小数点后面时,从**值方面来看,两个数是相等的,但从近似数来看,小数点后多了一个0,其表示的含义也就不一样了。
    那么,在小数点左侧添加0呢?如果在数的*左侧添加0,无论添加多少个0,数的大小都不变。
    但是,如果在数的中间插入0,数的位置与数的大小关系就很明显了,如在18的中间插入一个0,得到的是108,很明显,其大小差别很大。
    对于18,表示十位为1,个位为8,也就是说,表示18这个数有1个10,8个1。而108,表示百位为1,十位为0,个位为8,即表示有1个100,0个10,8个1,这时的0是一个占位符,把1从十位挤到百位。
    而如果在紧邻小数点的左侧添加0,则数据会扩大10倍。
    目录
    第1章 数据的表示 1.1 一则童话
    1.1.1 0和1的故事
    1.1.2 0是什么都没有?
    1.1.3 0的位置
    1.1.4 程序中的
    1.2 司空见惯的十进制数
    1.2.1 远古的结绳记事
    1.2.2 什么是十进制计数
    1.2.3 为啥人类习惯十进制
    1.2.4 十进制运算规则
    1.2.5 十进制数的分解
    1.2.6 20!等于多少
    1.2.7 大整数构想
    1.3 为啥要用二进制
    1.3.1 人脑与电脑
    1.3.2 二进制计数规则
    1.3.3 简单的二进制运算规则
    1.3.4 二进制数的分解
    1.3.5 十进制数转换为二进制数
    1.4 还有哪些进制
    1.4.1 神奇的八卦:八进制
    1.4.2 钟表使用的十二进制
    1.4.3 半斤八两:十六进制
    1.4.4 60年一个甲子:六十进制
    1.4.5 各种进制之间的转换
    1.4.6 二进制与八进制、十六进制的转换
    第2章 神奇的素数
    2.1 怎么判断素数
    2.1.1 什么是素数
    2.1.2 验证素数
    2.1.3 寻找素数的算法
    2.1.4 已被证明的素数定理
    2.2 孪生素数
    2.2.1 什么是孪生素数
    2.2.2 孪生素数的公式
    2.2.3 中国剩余定理
    2.2.4 孪生素数分布情况
    2.3 使用素数的RSA算法
    2.3.1 什么是RSA
    2.3.2 RSA算法基础
    2.3.3 RSA算法实践
    2.3.4 RSA应用:数字签名
    2.3.5 RSA被破解的可能性
    2.4 哥德巴赫猜想
    2.4.1 哥德巴赫猜想是什么
    2.4.2 数值验证
    2.5 梅森素数
    2.5.1 什么是梅森素数
    2.5.2 已知的梅森素数列表
    第3章 递归——自己调用自己
    3.1 从前有座山,山里有座庙
    3.1.1 老和尚讲的故事
    3.1.2 德罗斯**应
    3.1.3 什么是递归
    3.1.4 用递归能解决哪些问题
    3.1.5 一个简单例子:求*大公约数
    3.2 用递归计算阶乘
    3.2.1 阶乘该怎么计算
    3.2.2 阶乘的递归计算方法
    3.2.3 递归的过程
    3.2.4 递归的本质:缩小问题规模
    3.3 汉诺塔
    3.3.1 古老的传说
    3.3.2 从两个盘考虑
    3.3.3 找出递归结构
    3.3.4 实现程序
    3.3.5 究竟需要移动多少次
    3.4 斐波那契数列
    3.4.1 兔子的家族
    3.4.2 从*初几月数据中找规律
    3.4.3 斐波那契数列
    3.4.4 神奇的魔八方
    第4章 排列组合——让数选边站队
    4.1 把所有情况都列出来
    4.1.1 从0还是1开始
    4.1.2 赛程安排
    4.2 乘法原理
    4.2.1 行程安排的问题
    4.2.2 乘法原理适用条件
    4.2.3 棋盘上棋子的放法
    4.2.4 买彩票保证中奖的方法
    4.3 加法原理
    4.3.1 仍然是行程问题
    4.3.2 总结出的加法原理
    4.3.3 骰子出现偶数的次数
    4.4 排列与组合的关系
    4.4.1 排列
    4.4.2 组合
    4.4.3 排列与组合的联系
    4.4.4 可重排列
    4.5 计算机中的字符编码
    4.5.1 ASCII码能表示的字符数量
    4.5.2 能表示更大范围的编码
    4.6 密码的长度
    4.6.1 容易破解的密码
    4.6.2 多长的密码才**
    4.6.3 密码中使用的字符数量也很关键
    第5章 余数——数据分组
    5.1 复习小学的余数
    5.1.1 自然数的余数
    5.1.2 余数的性质
    5.1.3 用余数进行分组
    5.2 日历中的数学
    5.2.1 n天后是星期几
    5.2.2 下月的今天是星期几
    5.2.3 10年后的“今天”是星期几
    5.3 心灵感应魔术
    5.3.1 一个小魔术
    5.3.2 魔术师是怎么猜出来的
    5.4 奇偶校验
    5.4.1 不可靠的网络传输
    5.4.2 用奇偶校验检查错误
    5.5 吕洞宾不能坐首位
    5.5.1 座位安排
    5.5.2 试排座位找规律
    5.5.3 西方的约瑟夫环
    5.5.4 用数学方法解约瑟夫环
    5.6 智叟分牛
    5.6.1 遗产分配难题
    5.6.2 智叟给出的分配方案
    5.6.3 分配原理
    第6章 概率——你运气好吗
    6.1 初中学习过的概率
    6.1.1 谁先开球
    6.1.2 用程序模拟抛硬币
    6.1.3 什么是概率
    6.1.4 必然事件与不可能事件
    6.1.5 概率的基本性质
    6.2 百枚钱币鼓士气
    6.2.1 狄青的计谋
    6.2.2 全为正面的概率是多少
    6.2.3 必然还是偶然
    6.3 庄家的胜率是多少
    6.3.1 一个看似公平的游戏
    6.3.2 庄家能赢钱吗
    6.3.3 庄家盈利比率
    6.3.4 游戏参与者获胜的概率
    6.4 你能中奖吗
    6.4.1 想中大奖吗
    6.4.2 计算中奖概率
    6.5 渔塘中有多少条鱼
    6.5.1 该怎么估算渔塘中的鱼
    6.5.2 用概率来估算
    6.5.3 用概率方法求π值
    第7章 翻一番是多少
    7.1 翻番的概念
    7.1.1 什么是翻番
    7.1.2 翻倍的概念
    7.1.3 计算倍数和番数
    7.2 复利的威力
    7.2.1 利润——****
    7.2.2 认识单利
    7.2.3 认识复利
    7.2.4 计算****的程序
    7.2.5 忘还钱的信用卡
    7.2.6 爱因斯坦的72法则
    7.3 对折纸张
    7.3.1 有趣的问题:纸张对折
    7.3.2 100米长的纸能对折几次
    7.3.3 计算对折次数的程序
    7.4 一棋盘的麦子
    7.4.1 舍罕王的赏赐
    7.4.2 需要多少麦粒
    7.5 折半法的运用
    7.5.1 翻番的逆运算
    7.5.2 找出假硬币
    7.5.3 编写程序找出假硬币
    7.5.4 折半法在查找中的应用
    第8章 数理逻辑——非此即彼
    8.1 逻辑的重要性
    8.1.1 模棱两可的表述
    8.1.2 肯定或否定
    8.1.3 程序中的逻辑判断
    8.2 命题逻辑
    8.2.1 什么是命题
    8.2.2 命题的逻辑形式
    8.2.3 简单命题
    8.2.4 复合命题
    8.2.5 复合命题的联结词
    8.3 布尔逻辑
    8.3.1 逻辑或
    8.3.2 逻辑与
    8.3.3 逻辑非
    8.3.4 逻辑异或
    8.3.5 二进制位运算
    8.4 考虑到各种可能了吗
    8.4.1 逻辑重叠的实例
    8.4.2 逻辑遗漏的实例
    8.4.3 用数轴确定边界
    8.5 用卡诺图简化逻辑函数
    8.5.1 什么是卡诺图
    8.5.2 三变量卡诺图
    8.5.3 四变量卡诺图
    8.5.4 卡诺图化简
    8.5.5 卡诺图中的相邻
    第9章 推理——逻辑的应用
    9.1 演绎推理
    9.1.1 认识演绎推理点
    9.1.2 三段论
    9.1.3 选言推理
    9.1.4 假言推理
    9.1.5 关系推理
    9.1.6 演绎推理综合实例
    9.2 归纳推理
    9.2.1 什么是归纳推理
    9.2.2 完全归纳推理
    9.2.3 不完全归纳推理
    9.3 足球比赛的得分
    9.3.1 粗心的记分员
    9.3.2 从已有数据推算出比分
    第10章 几何图形构造
    10.1 花盆摆放问题
    10.1.1 10盆花摆成5行,每行4盆
    10.1.2 转变思路,找出答案
    10.1.3 升级问题(10盆花摆10行,每行3盆)
    10.2 残缺的棋盘能补上吗?
    10.2.1 被切割的棋盘
    10.2.2 能拼接出残缺棋盘吗
    10.3 线条哪里去了?
    10.3.1 神奇的魔术
    10.3.2 解析丢失的线条
    10.4 图形剪拼
    10.4.1 均分三角形
    10.4.2 拼接正方形
    第11章 统筹规划
    11.1 认识统筹规划
    11.1.1 田忌赛马
    11.1.2 为什么会赢
    11.2 生活中的统筹规划
    11.2.1 匆忙的早晨
    11.2.2 如何节约运输成本
    11.3 **的背包问题
    11.3.1 什么是背包问题
    11.3.2 用递归程序解决背包问题
    11.3.3 用穷举法解决背包问题
    编辑推荐语
    持续**,半年3次印刷!一本专门为程序员而写的数学书,训练数学思维,增强职场竞争力 书中没有罗列晦涩难懂的数学公式和推导,而是代之以生动有趣的数学实例
    读者不必精通高深的数学知识,只需要具备四则运算和基本的逻辑思维即可阅读
    趣谈110个数学实例,并给出了33个具体的程序代码实现
    内容通俗易懂,讲解娓娓道来,风格活泼自然,版式新颖,读来亲切自然 **阅读(请点丛书链接查看) 《妙趣横生的算法(C语言实现)第2版》(算法入门经典畅销书全新升级!培养编程兴趣,提高编程能力) 《妙趣横生的算法 (C++语言实现)》(算法入门必读经典!培养编程兴趣,提高编程能力) 《C语言入门很简单》(C语言菜鸟入门的不二选择!9.8小时配套教学视频,赠送31小时C语言教学视频) 《C语言入门1.2.3——一个老鸟的C语言学习心得》(总结**率学习心得,看得懂,学得会,10小时配套视频)
    《C语言趣味编程100例》 (C语言实战练习的好帮手,快速提高水平) 《Java趣味编程100例》(培养编程兴趣,拓宽编程思维,提高编程能力,增强求职竞争力)

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外