群论,线段树,与广义矩阵乘法

文章未上传,请稍后查看!

代数基础知识

群论

半群

给出一个集合 \(A\) 和定义在集合 \(A\) 上的一个运算 \(\circ\)。如果 \(A\)\(\circ\) 满足以下定律:

  • \(\forall a,b \in A ,a \circ b \in A\)
  • \(\forall a,b,c \in A,(a \circ b) \circ c=a \circ (b \circ c)\)

则称二元组 \(\langle A,\circ \rangle\) 为半群。也就是一个满足结合律的运算和一个对它完备的集合的二元组。

幺半群

给出一个集合 \(A\) 和定义在集合 \(A\) 上的一个运算 \(\circ\)。如果 \(A\)\(\circ\) 满足以下定律:

  • \(\langle A,\circ \rangle\) 为半群
  • \(\exists e \in A\),满足 \(\forall a \in A,e \circ a = a \circ e = a\)

此时称二元组 \(\langle A,\circ \rangle\) 为幺半群。称上面的 \(e\) 为幺元(单位元)。

给出一个集合 \(A\) 和定义在集合 \(A\) 上的一个运算 \(\circ\)。如果 \(A\)\(\circ\) 满足以下定律:

  • \(\langle A,\circ \rangle\) 为幺半群
  • \(e\)\(\langle A,\circ \rangle\) 的单位元,则 \(\forall a \in A\),都 \(\exists b \in A\),使得 \(a \circ b = e\)

此时称二元组 \(\langle A,\circ \rangle\) 为群,称上面的 \(b\)\(a\) 的逆元,记作 \(b=a^{-1}\)

不难证明:

  • \(a \circ a^{-1}=a^{-1} \circ a=e\)
  • \(\exists! e \in A\)\(e\) 是单位元
  • \(\forall a\),都 \(\exists! b=a^{-1}\)
  • \((a^{-1})^{-1}=a\)

通常我们记 \(a^1=a\)\(a^{n}=a^{n-1} \circ a=a^{n+1} \circ a^{-1}(n\in \Z)\)\(a^0=e\)

因为结合律的原因,我们可以推出以下结论:

  • \((a^{n})^{m}=a^{nm}=(a^{m})^n\)
  • \(a^{n+m}=a^n \circ a^m\)

这些都是非常显然的。

所以,我们可以用一个方法来在 \(\Theta(\log n)\) 的时间复杂度内计算 \(a^n(n \in \N)\)。步骤如下:

\(ans:=e,x:=n,y:=a\)
循环:
begin
如果 \(x=0\)
begin
退出循环
end
如果 \(x \equiv 1 \pmod 2\)
begin
\(ans:=ans \circ y\)
end
\(y:=y\circ y\)
\(x:=\lfloor \frac{x}{2} \rfloor\)
end

结束运算后,得到 \(ans=a^n\)

通过类似的方法在半群上定义 \(a^n(n \in \N/\{0\})\) 或在幺半群上定义 \(a^n(n\in \N)\) 后,我们也可以用该算法计算 \(a^n\)。需要注意的是,因为半群中没有单位元,所以我们要将 \(ans:=e\) 修改为 \(ans:=a\)\(x:=n\) 修改为 \(x:=n-1\)

这种算法被称作快速幂算法。

交换群

给出一个集合 \(A\) 和定义在集合 \(A\) 上的一个运算 \(\circ\)。如果 \(A\)\(\circ\) 满足以下定律:

  • \(\langle A,\circ \rangle\) 为群
  • \(\forall a,b \in A,a \circ b=b \circ a\)

此时称二元组 \(\langle A,\circ \rangle\) 为交换群(阿贝尔群/Abel Group)。类似的,我们定义交换半群和交换幺半群。

例如,\(\langle \N,+ \rangle\) 就是典型的交换群,\(\langle \reals,\times \rangle\) 就是典型的交换幺半群。

给出一个集合 \(A\) 和定义在集合 \(A\) 上的两个运算 \(\oplus,\otimes\)。如果 \(A,\oplus,\otimes\) 满足以下定律:

  • \(\langle A,\oplus \rangle\) 为交换群
  • \(\langle A,\otimes \rangle\) 为半群
  • \(\forall a,b,c \in A,(a \oplus b)\otimes c=(a \otimes c) \oplus (b \otimes c)\)

此时称三元组 \(\langle A,\oplus,\otimes \rangle\) 为环。

线性代数与矩阵

矩阵

\(n \times m\) 个数,记作 \(a_{i,j}(i \in \N \cap [1,n],j \in \N \cap [1,m])\)。我们将其排列成如下形式:

\[A=\begin{bmatrix}\end{bmatrix} \]

posted @ 2024-11-28 10:15  御绫军TM_Sharweek  阅读(74)  评论(2)    收藏  举报