Skip to content

Latest commit

 

History

History
225 lines (163 loc) · 5.82 KB

375-189506-[专业选修]乘方运算_科学计数法.sy.md

File metadata and controls

225 lines (163 loc) · 5.82 KB
show version enable_checker
step
1.0
true

乘方运算

回忆

  • 上次深入了整型的细节
    • python 把复杂的逻辑都留给自己
    • 对我们提供一个近乎无限大的整型变量
    • 可以做绝对精确的计算
    • 还不会溢出
    • 很厉害
  • python 还可以用千分位符分割整数和小数
    • 这有利于观察很大的数字
  • 这些很大的数字都怎么来的?
    • 加法和乘法都比较慢
  • 有乘方运算吗??🤪

搜索乘方

  • 什么不会就搜什么

图片描述

具体运算

图片描述

  • 两种方法都可以计算出乘方的值
  • 前面的是底数
  • 后面的是指数

其他进制形式

图片描述

  • 什么时候 计算机可以算 乘方了呢?

莱布尼茨计算器

  • 莱布尼茨的计算器
    • 可以 算 平方

图片描述

  • 但是不能算 3次方

巴贝奇 和 差分机

  • 巴贝奇 发明了
    • 差分机
    • difference engine
  • diff2(x)
    • 这个是 二次微分
    • 具体值为 4
    • 常量 Constant
    • 如果是 n项式 n次微分之后 也得到 常量
  • diff1(x)
    • 这个是 一次微分
    • = 2(x + 1)2 - 3(x + 1) + 2 - 2x2 + 3x -2
    • = 2x2 + 4x + 2 - 3x - 3 + 2 - 2x2 + 3x -2
    • = 4x - 1
  • 当x=0时
    • diff1(0) = -1

图片描述

  • 根据下图计算方法得到n+1

图片描述

  • 当然不止是 2项式

机械计算总结

  • 机器计算能力不断增强
年代 计算器 人物 功能
1642 帕斯卡计算器 帕斯卡 五位 加减法
1671 莱布尼茨计算器 莱布尼茨 16位 加减乘除
1822 差分机 巴贝奇 可计算多项式 精度达到6位小数
  • 为蒸汽朋克 打下基础

图片描述

  • 巨大的数据量 看起来好长
    • 有什么办法简化一下吗?

科学计数法

图片描述

  • 乘方和前后次序有关
  • 301000 和 100030 结果不同
  • 科学计数法表示的类型是浮点型数字
  • 浮点型数字是有范围的
    • 如果超过 $1e308$ 就会报错
  • 科学计数法支持其他进制么?

其他进制

图片描述

  • 这显然是按照整型变量进行计算的
  • 远远超过了传统的计数规则
Value Symbol English standard 中文
1024 Y yotta 尧 yáo
1021 Z zetta 泽 zé
1018 E exa 艾 ài
1015 P peta 拍 pāi
1012 T tera 太 tài
109 G giga 吉 jí
106 M mega 兆 zhào
103 k kilo 千 qiān
102 h hecta 百 bǎi
101 da deca 十 shí
  • 原来只能说不计其数、恒河沙数
  • 现在真的能写出来
  • 还能算
  • 单个科学计数法支持其他进制么

尝试

图片描述

  • 显然不支持
  • 如果非要使用一定要转化之后进行使用
  • 那我可以把最大的浮点型转化为整数,然后计算么?

转成整型

图片描述

  • 服务器愣住了 😵‍💫
    • 乘方 不愧是 累乘 运算
  • 小结一下各种运算

运算小结

图片描述

优先级

  • 原来的优先级
  • 从左到右计算
  • 先乘除
  • 后加减
  • 有括号的要优先

图片描述

  • 乘方运算优先级高于乘除运算
  • 除了优先级之外
  • 还需要注意类型转化

隐式转化

图片描述

  • 浮点数和整数运算
  • 属于混合类型的运算
  • 其实系统要先把整型转化为浮点型
  • 然后再计算
  • 这个过程我们对我们隐藏
  • 所以也叫隐式转化
  • 有隐式就有显式

显示转化

  • 浮点型和整型运算
  • 默认是把整型隐式转化为浮点型
  • 也可以把浮点型显示转化为整型
    • 用 int() 函数强制显示转化完成

图片描述

  • 明明白白看得见的转化
  • 叫做显示转化
  • 这样就是两个整型变量的加法了
  • 早期的python是没有这么复杂的
  • 早啥情况啊?
  • 先去总结

总结

  • 乘方运算符是**
    • 优先级高于乘除
    • 浮点型和整型都支持
    • 我们学了好多运算符
      • 加法是最基础的运算
      • 减法是加法的逆运算
      • 乘法是累加
      • 除法是乘法的逆运算
      • 乘方是累乘
      • 对数是乘方的逆运算
  • 为什么先乘除后加减?

图片描述

  • 这就得回忆ast树生成的时候
    • 优先级
    • 结合性
  • 一层层的
    • 就像套娃一样

图片描述

  • 具体到py程序 也是一层层的

    • python3 是 zsh上的 应用
    • math 是 python3 里面的包
  • 我想跳出这个层级

    • 在python程序中
      • 直接执行shell中的命令
  • 可以吗?🤔

  • 下次再说 👋