作品介绍

程序员的数学思维修炼


作者:周颖     整理日期:2017-02-24 11:02:23


  本书是一本专门为程序员而写的数学书,介绍了程序设计中常用的数学知识。本书门槛不高,不需要读者精通很多高深的数学知识,只需要读者具备基本的四则运算、乘方等数学基础知识和日常生活中的基本逻辑判断能力即可。本书拒绝枯燥乏味的讲解,而是代之以轻松活泼的风格。书中列举了大量读者都很熟悉,而且非常有趣的数学实例,并结合程序设计的思维和算法加以剖析,可以训练读者的数学思维能力和程序设计能力,进而拓宽读者的视野,增强职场竞争力。
  本书共11章,分别介绍了数据的表示、神奇的素数、递归、排列组合、用余数进行数据分组、概率、复利、数理逻辑、推理、几何图形构造、统筹规划等程序设计中常用的数学知识,从而引导读者深入理解编程中的数学方法和思路。本书包含的实例有结绳记事、孪生素数、梅森素数、哥德巴赫猜想、阶乘、汉诺塔、斐波那契数列、乘法原理、加法原理、字符编码、密码长度、日历中的数学、心灵感应魔术、约瑟夫环、智叟分牛、百枚钱币鼓士气、庄家的胜率、中奖概率、用概率方法求π值、复利的威力、对折纸张、舍罕王的赏赐、三段论、选言推理、假言推理、关系推理、花盆摆放、残缺棋盘、丢失的线条、田忌赛马、背包问题等。
  本书适合广大程序设计人员及数学爱好者阅读,尤其适合有一定程序设计经验,但还需要进一步加深对程序设计理解的人员阅读。本书对IT求职人员、信息学竞赛和大学生程序设计竞赛等参赛学员也有很好的参考价值。 作者简介
  毕业于电子科技大学。高级程序员、某软件公司的技术总监。擅长C和C++语言,对数据结构和算法有深入的研究。长期从事行业软件设计和团队管理工作,已十年有余。有着丰富的IT架构设计经验和行业咨询经验。负责过多个大型软件项目的开发工作。

目录:
  第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 用穷举法解决背包问题

八字精批2025运势命中贵人八字合婚



闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾鐎规洏鍎抽埀顒婄秵閸犳宕曢幋鐘冲枑闁绘鐗嗙粭鎺旂棯閹勫仴闁哄瞼鍠撶槐鎺懳熷ú顏勬疂闂備礁鍚嬪妯横缚閿熺姴钃熼柨婵嗘啒閺冨牆鐒垫い鎺戝閸嬪鐓崶銊р槈闁绘挻绻堥弻锟犲炊閵夈儳浠鹃梺缁樻尪閸庣敻寮婚敓鐘茬闁靛⿵绠戦ˇ鈺冪磼缂併垹骞栭柣鏍с偢瀵鏁愭径瀣簻闂佸憡绺块崕鎶芥偪閸曨垱鈷戦柛婵嗗椤箓鏌涙繝鍐疄妤犵偞鐗為妵鎰板箳濠靛洦娅囬梻渚€娼уù姘熆閳ь剟鏌涢悩璇у姛缂佽鲸鎹囧畷鎺戔枎閹存繂顬夋俊鐐€戦崝宀勫箠濮椻偓閻涱喗绻濋崨顖滄澑闂佸湱铏庨崑鍡欐閺夋娓婚柕鍫濇噽缁犱即鏌eΔ鈧Λ妤勭亱濠殿喗銇涢崑鎾绘煛鐏炵偓绀嬬€规洜鍘ч埞鎴﹀炊瑜忛悰鈺備繆閻愵亜鈧呪偓闈涚焸瀹曟娊鏁愭径濠呮憰闂佹寧绻傞ˇ浼村磻閹扮増鐓曟繛鍡楁禋濡插綊鏌熼鐣屾噰婵﹥妞介獮鏍倷閼碱兛鎮i柣搴㈩問閸犳牗鏅舵惔锝呭灊閻庯綆浜堕崥瀣熆鐠虹尨宸ョ€规挸妫濆铏圭磼濡椿姊块梺闈涙閸嬫捇姊虹悰鈥充壕闂佽鍎兼慨銈夊煕閹达附鐓涢柛灞久崝婊勭箾閸涱厽鍤囬柡灞剧洴閹倖鎷呴梹鎰瀳闂佽姤岣块崰鏍蓟濞戙垹唯妞ゆ梻鍘ч~顏堟⒑缂佹ɑ灏伴柣鐔叉櫊楠炲啳銇愰幒鎴犲€炲銈呯箰鐎氼喖袙閵忋垻纾藉ù锝呮惈鏍℃繝銏㈡嚀濡繈鐛径鎰濞达絽鎽滄鍥⒑閸︻厐瑙勵殽閹间礁姹查柛顐犲灮绾捐棄霉閿濆懎顥忛柛搴$箲閵囧嫰鏁冮崒娆愬枤闂佺硶鏂侀崑鎾愁渻閵堝棗绗掗柨鏇缁棃鎮介崨濠勫幈濠电偛妫楃换姗€顢撳Δ鈧悾婵嬫晲閸涱喖浠撮梺鎼炲妼婢т粙骞栭悙顒佸闁绘垶锚濞堝苯螖濡ゅ﹣绨烽柛妤€鍟块悾宄邦潨閳ь剟銆侀弮鍫濆耿闁哄洨濮烽ˇ銊︾節閻㈤潧啸闁轰焦鎮傚畷鏇㈠箣閻樼數顦梺绯曞墲缁嬫垿姊婚鐐寸叆婵犻潧妫Σ鍝ョ磼閻樿櫕鐨戦柍褜鍓欑粻宥夊磿闁单鍥ㄥ閺夋垹鏌ч梺褰掓?閻掞箓鎮¢妷鈺傜厽闁哄洨鍋涢埀顒€婀遍埀顒佺啲閹凤拷
闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柤鍝ユ暩娴犳氨绱撻崒娆掑厡缂侇噮鍨堕妴鍐川閺夋垹鍘洪悗骞垮劚椤︻垶宕¢幎鑺ョ厪闊洦娲栨牎闂佽瀵掗崜鐔奉潖閾忓湱纾兼俊顖氭惈椤矂姊洪崷顓涙嫛闁稿妫涢崚鎺楀醇閵夈儳锛滃┑鐐村灦閻楁梻鑺辨繝姘拺缁绢厼鎳忚ぐ褏绱掗幓鎺戔挃婵炴垹鏁诲畷濂稿即閻斿搫骞樼紓鍌欑椤戝牆鈻旈弴鐘电煋婵炲樊浜濋悡娑㈡倶閻愭彃鈷旈柍钘夘樀閺屽秶鎷犻崣澶婃敪缂備胶濮甸惄顖氼嚕閹绢喗鍋嗗ù锝呮啞閺嗩剟姊婚崒姘偓椋庢濮樿泛鐒垫い鎺戝€告禒婊堟煠濞茶鐏¢柡鍛埣椤㈡稑饪伴崨顖ょ床婵$偑鍊栧Λ渚€宕戦幇鐗堝€块柛婵勫劗閸嬫挾鎲撮崟顒傤槰濠碉紕鍋犲Λ鍕偩閻戣棄纭€闁绘劏鏅滈~宥呪攽閻愬弶顥滈柡鍫墰閳ь剙鐏氶悧妤佺┍婵犲洦鍊锋い蹇撳閸嬫捇濡舵径濠勶紱闂佸湱鍎ら〃鍛村磼閵娾晜鐓曢煫鍥ㄦ尭閹垿鏌涘▎蹇曠缂佺粯鐩獮瀣倻閸℃瑥濮辨繝鐢靛仦閸垶宕瑰ú顏勭柧闁哄被鍎查悡鏇㈡煃閳轰礁鏆熼柟鍐插閺屾盯鎮╁畷鍥ㄥ垱濠殿喖锕ュ浠嬪蓟閸涘瓨鍊烽柤鑹版硾椤忣厽绻濋埛鈧崶鈺冩毇闂佸搫鐬奸崰鏍х暦濞嗘挸围闁糕剝顨忔导锟�,濠电姷鏁告慨鐑藉极閹间礁纾婚柣鎰惈閸ㄥ倿鎮规潪鎵Э婵炴垯鍨圭粻锝夋煟濡搫鎮佺紒妤€顦靛娲偡閹殿喗鎲肩紓浣筋嚙缁夌懓鐣烽悽绋垮嵆闁靛骏绱曢崢鍗炩攽閻樼粯娑ч悗姘煎墴瀹曟繂鈻庨幘瀵稿幗闂佸湱鍎ら崺濠囩叕椤掑嫭鐓涢悘鐐插⒔濞叉挳鏌涢埡浣割伃鐎规洘锕㈤、鏃堝川椤撶喓褰梻鍌氬€峰ù鍥磻閹邦厾浠氶梻浣虹帛閻楁洟濡剁粙娆惧殨濠电姵纰嶉崑鍕棯閹峰矂鍝洪柡鍛櫊濮婃椽宕ㄦ繝鍕暤闁诲孩鍑归崜鐔煎灳閺嶎厼閱囬柕澶涜吂閹锋椽姊虹涵鍛汗闁稿绋掓穱濠冪附閸涘﹤鈧灚绻涢幋鐐茬瑲婵炲懎娲ㄧ槐鎺楊敊绾板崬鍓板銈嗘尭閸氬顕ラ崟顐嬬喓绱掑Ο鑽ゅ絿闂傚倸鍊烽悞锔锯偓绗涘懏宕查柛灞绢嚤濞戞ǚ鏋庨柟瀛樻煥娴滅偓鎱ㄥΟ鎸庣彧闁绘繍浜炵槐鎺旂磼濡吋鍒涘Δ鐘靛仜椤戝骞冨▎鎾崇妞ゆ挾鍣ュΛ婵嬫⒒娴h棄鍚瑰┑顔炬暬瀹曟繂螖閸涱厾鐛ラ梺鍝勭▉閸樺ジ寮伴妷鈺傜厓鐟滄粓宕滃璺何﹂柛鏇ㄥ灠缁犳娊鏌熼幖顓炵仭闁轰線绠栭弻锝嗘償閵忋垹鏆¢梺鐟板殩閹凤拷
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾鐎规洏鍎抽埀顒婄秵閸犳宕曢幋鐘冲枑闁绘鐗嗙粭鎺旂棯閹勫仴闁哄瞼鍠庨埢鎾诲垂椤旂晫浜剧紓鍌欒兌婵潧螞閸愵喖钃熸繛鎴炃氬Σ鍫ユ煕濡ゅ啫浠﹂柣蹇撶У缁绘繂鈻撻崹顔界亶缂備緡鍠楅幑鍥ь嚕婵犳碍鏅濋柍褜鍓濋悘鎺撶箾閹炬潙鍤柛銊ㄤ含閻熝呯磽閸屾艾鈧兘鎮為敃鍌氳摕闁靛⿵闄勫▍鐘绘煟閿濆懏婀版い顐f礋閺岀喖骞戦幇闈涙缂佺偓鍎抽崥瀣┍婵犲洤围闁告洦鍘兼俊浠嬫⒑缂佹ḿ绠栨俊顐㈠暣瀵鏁愰崱妯哄妳闂佹寧绋戠€氼亞鍒掗悽鍛娾拺闁圭ǹ瀛╃壕鎼佹煕閵娿儳绉烘い銏″哺閺佹劖寰勬繝鍌溾偓顓烆渻閵堝棗濮傞柛銊ㄥ吹缁綁鎮欑€靛摜鐦堥梺姹囧灲濞佳冪摥闂佽瀛╅崙褰掑矗閸愵喗鏅查柣鎰▕濞尖晠鏌ら崫銉毌闁瑰嘲鎼埞鎴︽倷鐠洪缚鏁垮銈嗘肠閸パ冨殤濠电偛妫欓崹鍦婵傚憡顥婃い鎺嶇缁插鏌嶈閸撴岸銆冮崨顓炵カ闂備礁缍婇崑濠囧礂濮椻偓瀵劍绂掔€n偄鈧敻鏌ㄥ┑鍡欏嚬婵炴挳顥撻幃顔尖攽鐎n偀鎷洪柣鐘叉穿鐏忔瑧绮婚幎鑺ョ厱閻庯綆鍋嗛埊鏇㈡煛閸涱厾鍩i柟宕囧仱婵$柉顦寸憸鎵亾缁绘繈濮€閿濆懐鍘梺鍛婃⒐閻楃娀骞冮垾鏂ユ瀻闁归偊鍠氶鏇㈡⒑閸撴彃浜濈紒璇插缁傛帡濮€閻樺棛鎳撻オ浼村川椤撴繃顫曢梻浣告惈閻绱炴担鍓插殨濞寸姴顑呮儫閻熸粌绻橀幃鈩冨緞閹邦厼鈧敻鎮峰▎蹇擃仾缂佲偓閸愨斂浜滈柕濞垮劵闊剚顨ラ悙瀵稿⒊闁靛洦鍔欓獮鎺戔攽閸ャ劍鐝栭梻鍌欑劍鐎笛呮崲閸屾娑樷枎閹炬潙浠兼繝闈涘€搁幉锟犲煕閹烘嚚褰掓晲閸ャ劌娈屽銈嗘礃缁海妲愰幒鏂哄亾閿濆骸浜滈柣蹇旀尦閺岀喎鐣烽崶褎鐏堝銈冨灪缁嬫垼顣惧銈嗘尵閸犳劙濡靛┑鍫氬亾濞堝灝鏋欑紒顔界懄娣囧﹪骞栨担鑲濄劎鎲歌箛娑欏仒妞ゆ洍鍋撻柡宀嬬稻閹棃鏁嶉崟顓熸闂備胶枪鐎涒晜绔熼崱娑樼閻庯綆鍠栭拑鐔兼煏婢跺牆鍔ら柨娑欑洴濮婃椽宕烽鐐板闂佸搫顑呴妶绋跨暦婵傚壊鏁傞柛顐ゅ枔閸橀亶姊虹紒姗堣€挎繛浣冲洢鈧倹绺介崨濠備缓濡炪倖鐗楅妵娑㈠磻閹惧磭鏆﹂柛銉e妽椤旀洟姊绘笟鈧ḿ褏鎹㈤崱娑樼疇闁搞儺鍓欑壕濠氭煙閸撗呭笡闁哄懏鐓¢獮鏍偓娑欋缚缁犳﹢鏌℃担鍦ⅹ闁宠鍨块崹楣冨礃閼碱剟鐛撴繝鐢靛仩鐏忔瑩宕伴弽褜鍤曞┑鐘崇閺呮彃顭块懜鐬垿寮查埡鍛拺闁告繂瀚鈺傜箾鐎涙ê鍝虹€规洦鍓濋妵鎰板箳閹绢垱瀚奸梻鍌欑贰閸嬪棝宕戝☉銏″殣妞ゆ牗绋掑▍鐘炽亜閺嶃劎鐭岀痪鎯с偢閹綊宕堕妸銉хシ闂侀€炲苯澧柟顔煎€块獮鍐┿偅閸愨晛浠虹紓浣割儏閻忔繈鎳撻崹顔规斀闁绘劖娼欓悘锕€鐣濋敐鍛仴闁诡噯绻濋獮瀣攽閹邦厼鐦滈梻渚€娼ч悧鍡椢涘☉娆愭珷妞ゆ帒瀚崵鏇㈡煏閸繍妲归柣鎾存礋閹鏁愭惔鈥茬凹閻庤娲栭惌鍌炲蓟閳╁啯濯撮悷娆忓绾炬娊姊烘潪鎵妽闁圭懓娲顐﹀箻缂佹ɑ娅㈤梺璺ㄥ櫐閹凤拷

上一本:从数学观点看物理世界:基本粒子与统一场理论 下一本:极限论与微分学新探

作家文集