首页 > 其他分享 >社论 22.10.4

社论 22.10.4

时间:2022-10-04 07:11:17浏览次数:57  
标签:mathbb 社论 同态 int text 矩阵 22.10 自同构

Problem

令 \(\text{M}_ n(\mathbb{F}_ p)\) 表示模 \(p\) 意义下全体 \(n\) 阶矩阵的集合。

一个映射 \(f:R\to R\) 称为同态,当且仅当 $$\forall X,Y\in R,f(X+Y) = f(X) + f(Y)\ \land \ (X\times Y) = f(X) \times f(Y)$$

两个映射 \(f,g\) 是不同的,当且仅当 \(\exists\ x,f(x)\neq g(x)\)。

给定 \(n,p\),保证 \(p\) 是素数。你需要计算出 \(\text{M}_ n(\mathbb{F}_ p)\) 上同态映射的数量。答案对 \(10^9+7\) 取模。

\(n \le 1e7, p \le 10^9\)。

\(\text{M}_ 1(\mathbb{F}_ 7)\) 上的同态映射只有两种:\(f(x) = x\) 与\(f(x) = 0\)。因此答案为 2。

Solution

首先我们根据一些基础的线代知识,对于一个可逆的矩阵 \(C\),形如 \(f_C(x) = C^{-1}XC\) 的映射定是同态映射。

证明

\(f_C(XY) = C^{-1}XYC = C^{-1}XCC^{-1}YC = (C^{-1}XC)(C^{-1}YC) = f_C(X)f_C(Y)\)
\(f_C(X+Y)\) 平凡,证明从略。

随后我们有断言:所有同态要么是平凡同态 \(f(X)=0\),要么是形如 \(f_C\) 的映射。

题解对于这个断言的证明:

如果你懂很多代数

注意到 \(\text{M}_n(\mathbb{F}_ p)\) 是单环,那么它上面的同态只能是平凡同态和同构,再注意到它是一个中心单代数,根据 Skolem-Noether 定理它的同构必然是内的。

如果你只懂微小的代数

我们当然只处理不平凡的同态,取 \(\mathbb Z_p\)上的 \(n\) 维向量空间 \(V\),取定一组基,把矩阵解释成线性算子。我们看 \(P_i=f(E_{i,i})\) ,不难验证 \(V=\bigoplus_i P_iV\) ,并且 Pi 是投影算子,于是 \(\text{dim}P_iV=1\)。设 \(P_1V=<A1>\),\(A_i=f(E_{i,1})A_1\),把 \(A_i\) 们在基下的坐标取成列向量,再把列向量排成行构成一个矩阵 \(A\), \(A^{−1}\) 即为所求矩阵。

如果有人看到这里就已经会了那您nb。反正我是不会。

于是我们对“很多”的部分进行一个人话的转录。

第一句:\(\text{M}_n(\mathbb{F}_ p)\) 是单环。
单环是没有非平凡理想的环。简单来说,从单环中任选一个元素 \(r\),能满足对其中任意元素左/右乘 \(r\) 得到结果还属于其自身的子群只有该单环本身。

第二句:单环上的同态只能是平凡同态和同构。
同态的定义是保持环上两个运算结构的映射。同构的定义是同态双射。
对于同态 \(f:\mathbb R\to \mathbb R\),由于这是一个自同态,因此若任意元素不在像空间或原像空间内就不满足同态性质了。因此这个同态是满射。由于这是单环上的同态,因此其对应运算保持矩阵乘法的结构,因此不存在两个不同的原像使得他们的像相同。因此这个同态是单射。
这也就证明了非平凡自同态是自同构。因此问题归约到所有非平凡自同构的形态问题。

第三句:\(\text{M}_n(\mathbb{F}_ p)\) 是一个中心单代数。
\(\text{M}_n(\mathbb{F}_ p)\) 是一个矩阵环,因此它是一个矩阵代数。矩阵代数的外推是中心单代数,因 此\(\text{M}_n(\mathbb{F}_ p)\) 是一个中心单代数。

第四句:根据 Skolem-Noether 定理,断言成立。
Skolem-Noether 定理:域上的 \(n\times n\) 矩阵代数上的自同构为内自同构。
由于第三句的证明,我们能断言 \(\text{M}_n(\mathbb{F}_ p)\) 上的自同构为内自同构。
内自同构是以共轭方式给出的定义。群 \(G\) 的一个自同构,如果是 \(G\) 内的元素的共轭作用,便称为内自同构。由 \(g\in G\) 的共轭作用给出的内自同构 \(f_g(x) = gxg^{-1}\)。取 \(g = C^{-1}\) 得到 \(f(X) = C^{-1}XC\)。

由定义,有所有内自同构形如 \(f_C\)。由第二句的结论,有所有非平凡同态形如 \(f_C\)。
因此我们证明了断言。

对于“微小”的部分,不要去碰它。
某些人的心态已经被读明白这段话而搞崩了。

接下来我们只需要求不同的形如 \(f_C\) 的同态的个数,取模后加上平凡同态就是答案。

注意到 \(\forall \ X,C^{-1}XC = A^{-1}XA\)。因此两边左乘 \(A\) 右乘 \(C^{-1}\) 得到 \(\forall \ X,AC^{-1}X = XAC^{-1}\)。因此 \(AC^{-1}\) 与所有矩阵乘积可交换,此性质表明其只有对角线有相同元素,即其是一个纯量阵。因此 \(A = \lambda C\)。
因此 \(f_A = f_C \Leftrightarrow A = \lambda C\)。于是同态个数就是全体 \(n\) 阶可逆矩阵 \(GL_n\) 的个数除以系数种类 \((p-1)\)。注意到矩阵可逆的充要条件是矩阵满秩。于是考虑求得满秩 \(n\times n\) 矩阵的个数。
取 \(\mathbb Z_p\) (模 \(p\) 意义下整数集合)上的 \(n\) 维向量空间 \(V\)。从中取矩阵第一行(可视作行向量) \(a_1\),共有 \(p^n-1\) 种取法(除去全零向量)。第二行可以取 \(V \ \text{\\} \{a_1\}\) 种的所有向量,取法有 \(p^n-p\) 种(除去全零向量和先前取出的向量能表出的 \(p-1\) 个向量)。以此类推取完 \(n\) 行,这部分的答案可写作 \(\prod_{i=0}^{n-1} (p^n - p^i)\)。

因此最终答案即为

\[\frac{\prod_{i=0}^{n-1} (p^n - p^i)}{p-1} + 1 \]

code
#include <bits/stdc++.h>
int n, p, sq[10000007], mod = 1e9 + 7;

typedef long long ll; typedef __int128 lll;
struct FastMod { int m; ll b; void init(int _m) { m = _m; b = ((lll)1<<64) / m; } int operator() (ll a) {ll q = ((lll)a * b) >> 64; a -= q * m; if (a >= m) a -= m; return a; } } Mod;
int add(int a, int b) { return (a += b) >= mod ? a - mod : a; } int mul(int a, int b) { return Mod(1ll * a * b); } template <typename ...Args> int mul(int a, Args ...b) { return mul(a, mul(b...)); }

int qp(int a, int b = mod - 2) { 
    int ret = 1; 
    while (b) { 
        if (b & 1) ret = mul(ret, a); 
        a = mul(a, a); 
        b >>= 1; 
    } return ret; 
}

signed main() {
    std::cin >> p >> n; int ans = 1;
    sq[0] = 1; Mod.init(mod);
    for (int i = 1; i <= n; i++) sq[i] = mul(sq[i-1], p);
    for (int i = 0; i < n; i++) ans = mul(ans, sq[n] - sq[i] + mod);
    std::cout << add(mul(ans, qp(p-1)), 1);
}

标签:mathbb,社论,同态,int,text,矩阵,22.10,自同构
From: https://www.cnblogs.com/joke3579/p/solution221004.html

相关文章

  • 2022.10.4 - mac安装homebrew
    因为网络的问题,所以用国内源;有个大佬写好了自动下载脚本:https://gitee.com/cunkai/HomebrewCN按照文档选择镜像下载安装就OK;安装是安装好了,但是下载的时候会出现:Comman......
  • 每天一个小java练习(牢子好可爱啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊)2022.10.1
    练习题:接收用户输入的3个整数,并将它们的最大值作为结果输出:下面是我的代码以及运行截图啦啦啦啦:  这个本身很基础,,但是涉及到了?:的用法,就记录一下......
  • 2022.10.03考试总结
    2022.10.03考试总结得分:\(140/300\)总结:今天拿了一个暴力分,第二题的暴力因为精度问题没有跑过去,第一题是签到题,在考场上因为担心这道题出现问题所以打了对拍,二三题都有......
  • 【閒話】2022.10.03閒話
    最近繃不住要看書了又到了一波補給大家可以來我宿舍搶奪(什啊最近再切莫反好難啊所以joke您怎麼那麼巨啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊......
  • 2022.10.02考试总结
    2022.10.02考试总结得分:\(10/400\)总结:今天的四道题目考的比较奇怪,然后把考试的主要时间花在了第一题一个错误的算法和最难的第三题的实现,导致考了一个比较低的分数T1......
  • 【闲话】2022.10.02
    今日accoders测试我因\(\texttt{c++14}\)拿到了\(151\to15\)的结果可怜PBK(哭\(\color{white}{Poor\BK!!}\)huge:这个微思望是谁啊,是咱们这的嘛?乐.png又......
  • 2022.10.2
    #include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefdoubledb;constintN=1e5+50;constintM=1e5+50;constintMod=1e9+7;inlinei......
  • 闲话 22.10.1
    闲话这才是真正的闲话最后讲了一下求导和积分但是感觉没几个人听听了也没几个人会——bycrs_line如果有不会的东西都可以来找我!给solution引流但是高数很多东西真......
  • 【闲话】2022.10.01
    今天早上下雨充分证明了\(\texttt{雨假同期命题}\)的正确性但是国庆没有放假老天爷:玩我呢早上:\(\textsf{bikuhiku}\):完蛋,早上没外套,我再拿一件吧早操前:\(\texts......
  • 2022.10.1
    B.CrazyBinaryString给01串,问最长的01数量相等的子串和子序列长度。#include<bits/stdc++.h>usingnamespacestd;map<int,int>M;intn;chars[100005];intma......