zoukankan      html  css  js  c++  java
  • WC2017 Day4

    WC2017 Day4

    计算机架构和程序底层优化

    • 卡常!卡常!
    • 好像就是洛可强论文内容

    0x00 信息的表示和处理

    • 二进制

    整数的表示

    • 位向量
    • 16进制

    字长?

    • NOI Linux:32位
    • 这导致NOI Linux系统处理64位整数很慢
    • 大多数操作系统:64位

    字节顺序?

    • 小端法
    • 大端法
    • 绝大多数个人计算机使用小端法

    有符号数

    • 取反加一

    四则运算

    • 除法向零取整(c++)

    位运算与逻辑运算

    • 逻辑运算是短路的,1||i++并不会使i+1
    • 负数的移位运算并不好使,可能和你想象的不一样
    • 移位超过字长是未定义的,可能会出错

    浮点数

    • 没什么好讲的

    编程技巧

    • 整数当作位向量使用
    • 求1的个数?
    • 查表
    • 求后缀0的个数?
    • 二分法
    • 查表法
    • LOWBIT?
    • x & -x
    • bitset!
    • 用整数表示集合
    • 优化状压DP

    0x01 程序的底层表示

    机器指令

    • 汇编语言 第三版

    • 好书

    • 加减乘很快

    • 除法很慢

    • 跳转很不稳定

    除法优化

    • 少取模
    • 除以常数的优化
    • 《论程序底层优化的一些方法和技巧》 洛可强 2009

    0x02 CPU基础知识

    数字逻辑电路

    组合逻辑电路

    CPU的实现

    • 线性
    • 流水线,会出问题
    • 解决方案:加Bubble,转发(Forwarding),分支预测
    • 现代CPU:超标量(多核),乱序执行

    编程技巧

    • 用三元运算符(a>b?a:b)取代条件跳转,消除分支预测错误
    • 四路归并

    0x03 层次存储方式

    • 磁盘(HDD)
    • 随机访问储存器(RAM)
    • 固态硬盘(SSD)
    • 寄存器 (Register)

    局部性

    • 时间局部性
    • 空间局部性

    编写高速缓存友好的代码

    • 优化局部性
    • 避免使用步长为$ 2^n $的访问方式

    线性代数

    矩阵的转置

    • 沿对角线翻折

    行列式

    • 消元后主对角线乘积,或者递归求解

    • |A||B|=|AB|

    • 交换两行,行列式取反

    • 把一行乘以c加到另一行上,行列式不变

    • 下面都是什么玩意

    数据压缩算法和通信问题

    0x01 一些通信题

    0x02 数据压缩算法

    无损压缩

    • 主要用于文本压缩
    • 基于文本结构的压缩
    • 基于信息熵的算法

    有损压缩

    • 主要用于图片压缩

    信息熵

    • $ H=sum -p_{i}log{p_{i}} $
    • pi为每种字符出现的频率
    • aaaaaab与ab
    • 英语与汉语

    压缩算法?

    • 游程编码
    • BWT
    • 哈弗曼编码
    • 算数编码
    • RAR
    • ZIP

    图片压缩算法?

    • DFT
    • DCT
    • SVD

    总结

    • 明天WC2017
    • gtmd
    • rp++
    许愿弥生改二
  • 相关阅读:
    11. Container With Most Water
    9. Palindrome Number
    375. 猜数字大小 II leetcode java
    leetcode 72 编辑距离 JAVA
    73. 矩阵置零 leetcode JAVA
    快速排序 JAVA实现
    63. 不同路径 II leetcode JAVA
    重写(override)与重载(overload)
    62 不同路径 leetcode JAVA
    leetcode 56 合并区间 JAVA
  • 原文地址:https://www.cnblogs.com/LoveYayoi/p/6745472.html
Copyright © 2011-2022 走看看