# 数学公式及 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个的无重组合,组合个数用