1.为什么学数学?
2.计算机为什么用二进制?
二进制和现代计算机计算机系统硬件实现有关,组成计算机系统的逻辑电路通常只有2个状态,开关的接通与断开,0断开,1接通,二进制数据抗干扰能力强。 二进制适合逻辑运算,真假和10对应,加减乘除都可以用0,1实现
乘除怎么表示?
位运算
不区分逻辑左移和算术左移?
右移存在问题:高位补0还是1,左移只要补0就ok
3.取余操作本身就是个哈希函数
- 同余定理:a,b,%m相等:a和b对于模m同余
- 奇偶数也是余数应用
哈希算法
- 任意长度输入通过哈希算法压缩为某一固定长度输出
- 为了增加数据散列的随机程度:f(x)=(x+MAX)%size,加一个MAX
迭代法
通过旧的变量值推出新的变量值
1.求方程精确或近似值
二分
2.查找匹配记录
二分
3.机器学习算法中的迭代
4.数学归纳法
5.递归
6.排列
- 田忌赛马
- 暴力破解密码
7.组合
8.动态规划
9.BFS
10.DFS
11.双向广度优先搜索
- a,b两个人,a先BFS,记录a所有好友,然后看b是否出现在集合a中,没有就从b出发BFS,记录所有好友,然后看a和a1是否出现在b和b1并集中,没有就回到a继续从它出发BFS,记录二度好友a2,然后看b和b1是否出现在a,a1,a2并集中,如果没有回到b继续从它出发BFS,如此,until找到a的好友和b的好友交集
12.图
13.时空复杂度
14.概率与统计
- 随机变量x和y联合:联合概率
- 通过联合概率P(x,y)在y求和,就可以得到P(x),这个P(x)就是边缘概率
- 朴素贝叶斯分类算法
- 链式法则和马尔科夫假设
15.线性代数
- 向量空间
- 文本检索
- 线性回归
- 高斯消元
- 最小二乘法
- 矩阵
16.缓存系统:如何通过哈希表和队列实现高效访问?
缓存设计主要考虑因素:
- 硬件性能
- 命中率:LFU,LRU
- 更新周期
17.如何设计一个缓存系统?
- 哈希表
- 链表+数组构建哈希表
18.搜索引擎
- 倒排索引
- 倒排索引基于哈希表
- 向量空间模型
- 相关性
搜索引擎设计框架
- 离线
- 在线
电商难题
- 相关性/准确度
查询分类
- 第一种方法是在商品分类的数据上,运用朴素贝叶斯模型构建分类器
- 第二种方法是根据用户的搜索行为构建分类器
查询分类和搜索引擎结合
19.推荐系统
-
MovieLens数据集
-
设计整体思路
- 用户评分标准化
- 衡量其他用户或物品之间相似度
- 根据相似用户或物品,给出预测得分p
-
SVD
20.位操作
- (i&1)==0是偶数
- 集合操作{1, 3, 8}和{4, 8},10000101,10001000,或一下就找到并集
21.书籍推荐
《离散数学及其应用》 《概率统计》 《线性代数及其应用》 《程序员的数学》 《数学之美》