# 数学公式及 Python 实现

📆 2020-12-1 19:07

# 求和

x = [1, 2, 3, 4, 5, 6]
result = 0
for i in range(len(x)):
    result += x[i]*2

# 乘积

x = [1, 2, 3, 4, 5, 6]
result = 1
for i in range(len(x)):
    result *= x[i]*2

# 阶乘

result = 1
for i in range(1,6):
    result *= i

# 矩阵相乘

a = [[1,2],[3,4],[5,6]]
b = [[7], [8]]
y = [[0], [0], [0]] # y 的形状为 len(a) 行 len(b) 列
for i in range(len(a))
    for j in range(len(b)):
        y[i][j] = np.dot(a[i], b[:, j])

# 矩阵 Hadamard 乘积

x = [[4,3],[2,1]]
y = [[1,2],[3,4]]
z = [[0,0],[0,0]]

for i in range(len(x)):
    for j in range(len(y[0])):
        z[i][j] = x[i][j] * y[i][j]

# 一次函数

# 二次函数

极值:

对称轴:

# 指数函数

过点:

y = math.pow(a,x)
real = math.exp(2) == math.pow(math.e,2)

导数为

# 对数

假设 那么

x = math.log(y,a)
real = math.log(y) == math.log(y,math.e)
# 特殊底数
ln = math.log(y,math.e)
lg = math.log(y,10)

# 三角函数

a b 为直角边,c 为斜边

# 向量内积

# 标准差

标准差系数

# 方差

# 协方差

# 相关系数

应用:相关系数热力图

# EMA

a=[1,2,3,4,5,6,7]

deno = 0
for i in range(1,len(a)+1):
  deno += i

ema = 0
j = len(a)
for i in a:
  ema += j/deno*i
  j -= 1

# 伯努利分布

x 表示投硬币的结果,可以是 0 或 1,p 表示出现正面或反面的概率 0.5。

# ELO

用来做排名,应用场景:游戏天梯、体育比赛排名等

A 对 B 的期望胜率:

B 对 A 的期望胜率:

Ra 表示 A 当前的 Rank 分,Rb 表示 B 当前的 Rank 分

即 A 与 B 的 Rank 分差,则:

修正 Rank 分:

W 为结果(胜 1 负 0 平 0.5),k 为常数

# 排列计算公式

定义:从n个不同的元素中,取r个不重复的元素,按次序排列,称为n个中取r个的无重排列,排列的全体集合用 表示

# 组合计算公式

定义:从n个不同的元素中取r个不重复的元素组成一个子集,而不考虑其元素的顺序,称为从n个中取r个的无重组合,组合个数用表示

最后更新于: 12/12/2021, 9:35:28 PM