展开全部

主编推荐语

本书带你推开编程世界的大门,领略科技的奇妙和程序的精髓。

内容简介

本书是关于计算机编程的科普书,它包含了计算机软件的发展历史、原理、数据结构,以及基本算法等内容,并进一步探讨了动态规划、概率统计和神经网络等进阶知识。作者由浅入深地对编程的本质进行了直观、具体的讨论。虽然书中的例子都是用Python编写的,但是介绍的编程方法和思想却是通用的。

书中的实例都有对应的完整代码实现,涉及初等数学、数据结构、排序与查找、数理统计、动态规划及神经网络等多个方面。这些实例把编程原理讲解和程序代码结合在一起,从而让概念更加容易理解。

目录

  • 版权信息
  • 前言
  • 第1章 程序、数字与进制
  • 1.1 概述
  • 1.2 何谓程序?
  • 1.3 计算机只有两根手指?
  • 1.3.1 为什么偏偏是二进制?
  • 1.3.2 计算机与十进制
  • 1.4 Python怎么掰手指?
  • 1.5 Python语言入门
  • 第2章 计算机内部探秘
  • 2.1 计算机本来就叫计算机
  • 2.2 化计算为加法
  • 2.2.1 从小学的1+1开始
  • 2.2.2 计算机的移位操作
  • 2.2.3 不单单是乘除法实现
  • 2.3 进制转换及数据存储
  • 2.3.1 进制的转换
  • 2.3.2 计算机如何存储数据?
  • 2.3.3 形象一点来看晶体管
  • 2.3.4 抽象一点来看数据存储逻辑
  • 2.3.5 字符的编号
  • 2.4 从加法到芯片
  • 2.4.1 万法归加法
  • 2.4.2 自己做个加法器
  • 2.5 101页报告改变了世界
  • 2.5.1 又笨又快的图灵机
  • 2.5.2 从101页报告到极简计算机
  • 2.5.3 跟着“极简”执行代码
  • 第3章 编程基础概念
  • 3.1 计算机的外包装
  • 3.2 计算机的高级语言
  • 3.3 Goto语句有害
  • 3.4 说说数据结构
  • 3.5 面向对象编程
  • 3.5.1 什么是面向对象编程?
  • 3.5.2 Python的混合编程
  • 3.6 进程与线程
  • 3.7 递推与递归
  • 3.8 关于分治
  • 3.9 算法及性能分析
  • 第4章 数学与编程是一家
  • 4.1 什么是函数?
  • 4.1.1 先算一个阶乘
  • 4.1.2 往前走一步——求平方根
  • 4.1.3 再往前走一步——求阶乘的平方根
  • 4.1.4 Python常见的库
  • 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.5 Python解方程
  • 4.5.1 二次方程
  • 4.5.2 高次方程
  • 4.5.3 Python解同余方程
  • 4.6 Python用刘徽割圆术求面积
  • 4.6.1 刘徽割圆术求面积
  • 4.6.2 进入递推,交给Python
  • 4.7 跟着Ada计算伯努利数(向Ada致敬)
  • 4.7.1 分析计算伯努利数
  • 4.7.2 为什么要向Ada致以敬意?
  • 第5章 字符处理
  • 5.1 先来谈谈字符编码
  • 5.1.1 首先是Unicode
  • 5.1.2 有了Unicode还不够
  • 5.2 Python如何操作字符串
  • 5.2.1 丰富的字符串操作
  • 5.2.2 开始造个轮子
  • 5.3 凯撒密码(Caesar cipher)
  • 5.4 字符串查找(KMP算法)
  • 5.4.1 从最笨的方法开始
  • 5.4.2 聪明一点的方法
  • 5.5 Python如何操作文件
  • 5.5.1 操作文件的方式
  • 5.5.2 简单地演练一下
  • 5.6 JSON是谁
  • 5.6.1 JSON对象
  • 5.6.2 解析JSON
  • 5.6.3 解析复杂JSON
  • 5.7 关于正则表达式
  • 5.7.1 正则表达式的功用
  • 5.7.2 正则解释器
  • 5.7.3 正则表达式的应用
  • 第6章 数据结构
  • 6.1 Python的序列
  • 6.1.1 ArrayList和LinkedList操作
  • 6.1.2 首先是ArrayList
  • 6.1.3 接下来是LinkedList
  • 6.2 关于栈
  • 6.3 括号如何匹配
  • 6.4 数学表达式解析
  • 6.4.1 计算机读取数学表达式
  • 6.4.2 获取操作数与操作符序列
  • 6.4.3 开始计算
  • 6.5 关于HashMap
  • 6.5.1 Python中的字典操作
  • 6.5.2 手动做HashMap
  • 6.5.3 增删改查
  • 6.5.4 HashMap遍历
  • 6.5.5 成果验收
  • 6.6 树之遍历
  • 6.6.1 先构建一棵二叉树
  • 6.6.2 再遍历二叉树
  • 6.6.3 换一种方式遍历
  • 6.7 树之构建和查找
  • 6.7.1 还是先构建树
  • 6.7.2 然后查找特定元素
  • 6.7.3 让树更加泛用
  • 6.8 平衡树(AVL算法)
  • 6.8.1 平衡二叉树
  • 6.8.2 平衡二叉树增加节点
  • 6.8.3 不平衡就旋转
  • 6.9 图的表示
  • 6.10 拓扑排序
  • 6.11 最短路径(Dijkstra算法)
  • 6.12 关键路径CP
  • 第7章 查找与排序
  • 7.1 查字典
  • 7.2 每次吃最甜的葡萄
  • 7.3 抓牌看牌
  • 7.3.1 先来描述一下场景
  • 7.3.2 进入Python
  • 7.4 向左向右看齐
  • 7.4.1 先来分而治之
  • 7.4.2 开始编写快速排序程序
  • 7.5 先分叉再排序
  • 7.5.1 先理解堆排序思路
  • 7.5.2 Python的时间
  • 7.6 不会淘汰的季后赛
  • 7.7 以上排序的比较
  • 7.8 插入排序2.0
  • 7.9 桶排序
  • 7.10 二分查找(试着做一个字典)
  • 第8章 动态规划
  • 8.1 游戏币贪心算法
  • 8.1.1 游戏币的动态规划
  • 8.1.2 随机数字三角的动态规划
  • 8.2 序列的最大公约数
  • 8.3 基因序列比对(Levenshtein算法)
  • 8.4 背包问题
  • 8.4.1 背包问题解析
  • 8.4.2 开始变成程序
  • 第9章 数理统计与人工智能
  • 9.1 人均收入统计
  • 9.1.1 先从数据出发
  • 9.1.2 进入程序世界
  • 9.1.3 来看点经济学(基尼系数)
  • 9.2 用贝叶斯公式智能诊断
  • 9.2.1 先来谈谈概率
  • 9.2.2 “智能医生”的训练
  • 9.3 预测广告效果的线性回归
  • 9.3.1 线性回归
  • 9.3.2 向量
  • 9.3.3 编写线性回性程序
  • 9.4 马尔可夫模型
  • 9.4.1 什么是马尔可夫模型
  • 9.4.2 开始解决一些问题吧
  • 9.5 最后聊聊人工神经网络
  • 9.5.1 可以开始做点仿生了——一个简单的神经元
  • 9.5.2 “神经元”如何学习
展开全部

评分及书评

评分不足
1个评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。