CNITA作业

C N I T A CNITA CNITA 作业 群

  • 第6章习题:

    1. G \mathbb{G} G是群,对任意 n ∈ N n\in \N nN, i ∈ [ 0 , n ] i \in [0, n] i[0,n] g i ∈ G g_i \in \mathbb{G} giG。证明 g 0 g 1 ⋯ g n g_0 g_1 \cdots g_n g0g1gn的逆元是 g n − 1 ⋯ g 1 − 1 g 0 − 1 g_n^{-1} \cdots g_1^{-1} g_0^{-1} gn1g11g01
      证明:
      ∵ g i ∈ G 是群 ∴ 其操作满足结合律。 ∴ ( g 0 g 1 ⋅ ⋅ ⋅ g n ) ∗ ( g n − 1 ⋅ ⋅ ⋅ g 1 − 1 g 0 − 1 ) g 0 g 1 ⋅ ⋅ ⋅ ( g n ∗ g n − 1 ) ⋅ ⋅ ⋅ g 1 − 1 g 0 − 1 = e 满足右逆元 同理: ( g n − 1 ⋅ ⋅ ⋅ g 1 − 1 g 0 − 1 ) ∗ ( g 0 g 1 ⋅ ⋅ ⋅ g n ) g n − 1 ⋅ ⋅ ⋅ g 1 − 1 ( g 0 − 1 ∗ g 0 ) g 1 ⋅ ⋅ ⋅ g n = e 满足左逆元 ∴ g 0 g 1 ⋯ g n 的逆元是 g n − 1 ⋯ g 1 − 1 g 0 − 1 \because g_i\in \mathbb{G} 是群 \therefore 其操作满足结合律。\\ \therefore (g_0g_1···g_n)*({g_n}^{-1}···{g_1}^{-1}{g_0}^{-1})\\g_0g_1···(g_n*{g_n}^{-1})···{g_1}^{-1}{g_0}^{-1}=e \\满足右逆元\\ 同理: ({g_n}^{-1}···{g_1}^{-1}{g_0}^{-1})*(g_0g_1···g_n)\\{g_n}^{-1}···{g_1}^{-1}({g_0}^{-1}*g_0)g_1···g_n=e \\满足左逆元\\ \therefore g_0 g_1 \cdots g_n 的逆元是 g_n^{-1} \cdots g_1^{-1} g_0^{-1} giG是群其操作满足结合律。(g0g1⋅⋅⋅gn)(gn1⋅⋅⋅g11g01)g0g1⋅⋅⋅(gngn1)⋅⋅⋅g11g01=e满足右逆元同理:(gn1⋅⋅⋅g11g01)(g0g1⋅⋅⋅gn)gn1⋅⋅⋅g11(g01g0)g1⋅⋅⋅gn=e满足左逆元g0g1gn的逆元是gn1g11g01

    2. 证明:任意群 G \mathbb{G} G的两个子群的交集也是群 G \mathbb{G} G的子群。
      证明:
      设:两个子群的名为 A 1 和 A 2 要证 ∀ 群 G 的两个子群交集是群 G 的子群 需证: ∀ g i ∈ A ! ∧ A 2 & g i ∈ G 而且 A ! ∧ A 2 需要为群 显然 ∀ g i ∈ A ! ∧ A 2 & g i ∈ G 所以,需证 A ! ∧ A 2 为群 设:两个子群的名为 A_1 和 A_2\\ 要证 \forall 群 \mathbb{G} 的两个子群交集是 群 \mathbb{G} 的子群\\ 需证:\forall g_i\in A_!\wedge A_2 \And g_i\in \mathbb{G}\\ 而且 A_!\wedge A_2 需要为群\\ 显然 \forall g_i\in A_!\wedge A_2 \And g_i\in \mathbb{G}\\ 所以,需证 A_!\wedge A_2 为群\\ 设:两个子群的名为A1A2要证G的两个子群交集是群G的子群需证:giA!A2&giG而且A!A2需要为群显然giA!A2&giG所以,需证A!A2为群
      证明: A ! ∧ A 2 为群 A_!\wedge A_2 为群 A!A2为群
      1、单位元性质:
      e ∈ A ! ∧ e ∈ A 2 → e ∈ A 1 ∩ A 2 e\in A_!\wedge e\in A_2\to e\in A_1\cap A_2\\ eA!eA2eA1A2
      2、逆元:
      ∀ a ∈ A 1 , b ∈ A 2 总有 a − 1 ∈ A 1 , b − 1 ∈ A 2 当 a = b 时:有 a ∈ A 1 ∩ A 2 \forall a\in A_1,b\in A_2\\ 总有 a^{-1}\in A_1,b^{-1}\in A_2\\ 当 a=b 时:有 a\in A_1\cap A_2\\ aA1,bA2总有a1A1,b1A2a=b时:有aA1A2
      3、封闭性:
      ∀ 群 K ,有: ∀ a , b ∈ K 满足: a ∘ b ∈ K ∴ 子群 A 1 , A 2 满足此性质 那么在两子群中满足封闭性 所以在其交集也有此性质成立 \forall 群 \mathbb{K},有:\forall a,b\in\mathbb{K}\\ 满足:a\circ b\in\mathbb{K}\\ \therefore 子群 A_1,A_2 满足此性质\\ 那么在两子群中满足封闭性\\ 所以在其交集也有此性质成立\\ K,有:a,bK满足:abK子群A1,A2满足此性质那么在两子群中满足封闭性所以在其交集也有此性质成立
      4、结合律
      ∵ ∀ 群 G 满足交换律 ∴ ∀ 群 g ⊆ G 又 ∵ ∀ a ∈ A 1 ∩ A 2 ,有 a ∈ A 1 ∧ a ∈ A 2 ∴ ∀ a ∈ A 1 ∩ A 2 满足结合律 \because \forall 群 \mathbb{G} 满足交换律\\ \therefore \forall 群 \mathbb{g}\subseteq\mathbb{G}\\ 又 \because \forall a\in A_1\cap A_2,有 a\in A_1\wedge a\in A_2\\ \therefore \forall a\in A_1\cap A_2 满足结合律\\ G满足交换律gGaA1A2,有aA1aA2aA1A2满足结合律

    3. G \mathbb{G} G是阿贝尔群, H \mathbb{H} H K \mathbb{K} K G \mathbb{G} G的子群。
      请证明 H K = { h k : h ∈ H , k ∈ K } \mathbb{H} \mathbb{K} = \{hk: h \in \mathbb{H}, k \in \mathbb{K}\} HK={hk:hH,kK}是群 G \mathbb{G} G的子群。
      如果 G \mathbb{G} G不是阿贝尔群,结论是否依然成立?
      证明:
      1、证明 H K = { h k : h ∈ H , k ∈ K } \mathbb{H} \mathbb{K} = \{hk: h \in \mathbb{H}, k \in \mathbb{K}\} HK={hk:hH,kK} 是群 G \mathbb{G} G的子群.
      ∵ H 和 K 为 G 的子群 ∴ ∀ h ∈ H ,有 h ∈ H 同理: ∀ k ∈ K ,有 k ∈ K 又 ∵ G 为阿贝尔群,满足交换律 ∴ ∀ h , k ∈ G ,有 h k ∈ G ∧ k h ∈ G ∴ 对于 h ∈ H , k ∈ K 总有 h k ∈ H K 据 H , K 及乘法性质, H K 满足群的基本性质 且 ∀ t ∈ H K , 有 t ∈ G ∴ H K = { h k : h ∈ H , k ∈ K } 是群 G 的子群 \because \mathbb{H} 和 \mathbb{K} 为 \mathbb{G} 的子群\\ \therefore \forall h\in\mathbb{H},有 h\in\mathbb{H}\\ 同理:\forall k\in\mathbb{K},有 k\in\mathbb{K}\\ 又 \because \mathbb{G} 为阿贝尔群,满足交换律\\ \therefore \forall h,k\in\mathbb{G},有 hk\in\mathbb{G}\wedge kh\in\mathbb{G}\\ \therefore 对于 h\in\mathbb{H},k\in\mathbb{K} 总有 hk\in\mathbb{HK}\\ 据 \mathbb{H},\mathbb{K} 及乘法性质,\mathbb{HK} 满足群的基本性质\\ 且 \forall t\in \mathbb{HK}, 有 t\in\mathbb{G}\\ \therefore \mathbb{H} \mathbb{K} = \{hk: h \in \mathbb{H}, k \in \mathbb{K}\} 是群 \mathbb{G} 的子群 HKG的子群hH,有hH同理:kK,有kKG为阿贝尔群,满足交换律h,kG,有hkGkhG对于hH,kK总有hkHKH,K及乘法性质,HK满足群的基本性质tHK,tGHK={hk:hH,kK}是群G的子群
      2、 G \mathbb{G} G 不是阿贝尔群.
      ∵ G 为非阿贝尔群 ∴ 其中不满足交换律 ∴ 无法得到 H K = { h k : h ∈ H , k ∈ K } 是群 G 的子群 \because \mathbb{G} 为非阿贝尔群\\ \therefore 其中不满足交换律\\ \therefore 无法得到 \mathbb{H} \mathbb{K} = \{hk: h \in \mathbb{H}, k \in \mathbb{K}\} 是群 \mathbb{G} 的子群 G为非阿贝尔群其中不满足交换律无法得到HK={hk:hH,kK}是群G的子群

    4. G \mathbb{G} G是阿贝尔群, m m m是任意整数,记 G m = { g m : g ∈ G } \mathbb{G}^m = \{ g^m: g\in \mathbb{G}\} Gm={gm:gG}。请证明 G m \mathbb{G}^m Gm G \mathbb{G} G的一个子群。
      ∵ G m = { g m : g ∈ G } ∴ G m 为 G 的一个子集 ∴ 对于 ∀ a , b , c ∈ G 满足结合律 \because \mathbb{G}^m = \{ g^m: g\in \mathbb{G}\}\\ \therefore \mathbb{G}^m 为 \mathbb{G} 的一个子集\\ \therefore 对于 \forall a,b,c\in\mathbb{G} 满足结合律\\ Gm={gm:gG}GmG的一个子集对于a,b,cG满足结合律
      1、封闭性:
      对于 ∀ g ∈ G 及 ∀ m 1 , m 2 有: g m 1 ∈ G m 1 ∧ g m 1 ∈ G m 1 g m 1 ∗ g m 2 = g m 1 + m 2 ∈ G m 1 + m 2 记为: g m 1 ∗ g m 2 ∈ G m 对于 \forall g\in\mathbb{G} 及 \forall m_1,m_2 有: g^{m_1}\in\mathbb{G}^{m_1} \wedge g^{m_1}\in\mathbb{G}^{m_1}\\ g^{m_1}*g^{m_2}=g^{m_1+m_2}\in\mathbb{G}^{m_1+m_2} 记为: g^{m_1}*g^{m_2}\in\mathbb{G}^{m} 对于gGm1,m2有:gm1Gm1gm1Gm1gm1gm2=gm1+m2Gm1+m2记为:gm1gm2Gm
      2、逆元:
      ∵ 若有 g ∈ G ,则有: g − 1 ∈ G ∴ 在 G m = { g m : g ∈ G } 时,总有: g − m ∈ G m \because 若有 g\in G,则有:g^{-1}\in G\\ \therefore 在 \mathbb{G}^m = \{ g^m: g\in \mathbb{G}\} 时,总有:g^{-m}\in\mathbb{G}^{m} 若有gG,则有:g1GGm={gm:gG}时,总有:gmGm
      3、单位元:
      由逆元存在:易知, e ∈ G m 由逆元存在:易知,e\in\mathbb{G}^m\\ 由逆元存在:易知,eGm

  • 第7章习题:

    1. 证明:如果群 G \mathbb{G} G没有非平凡子群,则群 G \mathbb{G} G是循环群。
      证明:
      ∵ 群 G 没有非平凡子群 ∴ 群 G 仅有两个子群,即: { e } 和 G 显然:假设 G = { e } 时, G 为循环群 那么,还需证: G ≠ { e } 时为循环群 此时有 G = < g > ∴ G = { g 1 } ,则 G 为循环群 \because 群 \mathbb{G} 没有非平凡子群\\ \therefore 群 \mathbb{G} 仅有两个子群,即:\{e\} 和 \mathbb{G}\\ 显然:假设 \mathbb{G}=\{e\} 时,\mathbb{G} 为循环群\\ 那么,还需证:\mathbb{G}\neq\{e\} 时为循环群\\ 此时有 \mathbb{G}=<g>\\ \therefore \mathbb{G}=\{g^1\},则 \mathbb{G} 为循环群\\ G没有非平凡子群G仅有两个子群,即:{e}G显然:假设G={e}时,G为循环群那么,还需证:G={e}时为循环群此时有G=<g>G={g1},则G为循环群

    2. 证明推论:循环群 G \mathbb{G} G中任意元素的阶都整除群 G \mathbb{G} G的阶。
      证明:
      ∵ G 为循环群 ∴ ∀ g ∈ G 有: h = g k 则: h 的阶为 n / d 设 m ∈ N 使得 h m = g k m = e ∵ g k = e 当且仅当 n ∣ k ∴ n ∣ k m ,即: ( n / d ) ∣ ( k / d ) m ∴ 循环群 G 中任意元素的阶都整除群 G 的阶 \because \mathbb{G} 为循环群\\ \therefore \forall g\in\mathbb{G} 有:h=g^k\\ 则:h的阶为 n/d\\ 设 m\in\mathbb{N} 使得 h^m=g^{km}=e\\ \because g^k=e 当且仅当 n|k\\ \therefore n|km ,即:(n/d)|(k/d)m\\ \therefore 循环群\mathbb{G}中任意元素的阶都整除群\mathbb{G}的阶 G为循环群gG有:h=gk则:h的阶为n/dmN使得hm=gkm=egk=e当且仅当nknkm,即:(n/d)(k/d)m循环群G中任意元素的阶都整除群G的阶

    3. 编程完成以下工作:给定一个素数 p p p,找出 Z p ∗ \Z_p^* Zp的最小生成元。对于素数 1 < p < 10000 1< p < 10000 1<p<10000,哪一个素数 p p p使得 Z p ∗ \Z_p^* Zp的最小生成元最大?
      这里我开始的时候用 p y t h o n python python 写了一遍:

  import gmpy2
  def get_prime(n):
      prime = []
      for i in range(1, n + 1):
          if gmpy2.is_prime(i):
              prime.append(i)
      return prime


  def find_group(p):
      data = []
      for i in range(2, p):
          li = []
          flag = 0
          for j in range(1, p):
              m = pow(i, j, p)
              if m in li:
                  flag = 1
                  break
              li.append(m)
          if flag == 0:
              data.append(i)
      # 尾部保存素数p
      data.append(p)
      return data


  def get_min_gen(prime):
      record = []
      for i in prime:
          record.append(find_group(i))
      m = [record[0][0], record[0][-1]]
      for i in range(len(record)):
          if record[i][0] > m[0]:
              m[0] = record[i][0]
              m[1] = record[i][1]
      return m
  print(get_min_gen(get_prime(10000)[1:])[1])

但是很不幸,我发现它运行耗费的时间十分的久。

于是,我使用 C++ 试着做了:

  #include<iostream>
  #include<cmath>
  #include<vector>
  using namespace std;

  bool prime(int n){
    for(int i=2;i<=sqrt(n+1);i++){
      if(n%i==0){
        return false;
      }
    }
    return true;
  }

  void primeList(int n,vector<int>&list){
    if(n>=2) list.push_back(2);
    for(int i=3;i<=n;i++){
      if(prime(i)){
        list.push_back(i);
      }
    }
  }

  int getMingen(int p){
    if(!prime(p)) return 0;
    if(p==2) return 1;
    vector<int> data;
    for(int i=2;i<p;i++){
      int j;
      for(int j=1;j<p-1;j++){
        if(int(pow(i,j))%p==1) break;
      }
      if(p-1==j) return i;
    }
    return 0;
  }

  int main(){
    vector<int>list;
    primeList(13,list);
    for(vector<int>::iterator i=list.begin();i!=list.end();i++){
      cout<<*i<<": "<<getMingen(*i)<<";";
      cout<<endl;
    }
    return 0;
  }
  

但是它的结果是错误的,改了很久搞不动了 😢
所以最后我寻找到这个同学的:
就是这个😄
并且对输出结果进行了点调整:

  #include<iostream>
  #include<cmath>
  #include<vector>
  using namespace std;

  //判断素数
  bool prime(int x)
  {
      int y;
      for (y = 2; y <= sqrt(x); y++)
          if (x % y == 0)
              return false;
      return true;
  }

  //获得一定范围内的素数
  void getPrimeList(int maxNum, vector<int>& PrimeList) {
      if (maxNum >= 2) PrimeList.push_back(2);
      for (int i = 3; i <= maxNum; i = i + 2) {
          if (prime(i)) PrimeList.push_back(i);
      }
  }
  //获得Z_p* 的最小生成元
  int getMingener(int Prime) {

      if (!prime(Prime)) return 0;
      if (Prime == 2) return 1;
      for (int i = 2; i <= Prime - 1; ++i) {
          int j;
          for (j = 1; j < Prime-1; ++j) {
              if ((int)pow(i, j)%Prime==1) break;
          }
          if (j == (Prime - 1)) return i;
      }
      return 0;
  }

  int main()
  {
    vector<int> primes;
    getPrimeList(10000, primes);
    vector<int> mingen;
    int min=getMingener(2);
    for (vector<int>::iterator it = primes.begin(); it != primes.end(); it++) {
        int m = getMingener(*it);
        if(m>min){
          min=m;
      }
    }
      for (vector<int>::iterator it = primes.begin(); it != primes.end(); it++) {
          int m = getMingener(*it);
          if(m==min){
            cout<<*it<<", ";
      }
    }
      cout<<"min: "<<min<<endl;
      return 0;
  }

最后输出结果为:23, 41, 73, min: 5
最大的最小生成元由 23、41、73 得到

  • 第8章习题:
    1. 如果 G \mathbb{G} G是群, H \mathbb{H} H是群 G \mathbb{G} G的子群,且 [ G : H ] = 2 \lbrack \mathbb{G} : \mathbb{H}\rbrack =2 [G:H]=2,请证明对任意的 g ∈ G g\in \mathbb{G} gG g H = H g g \mathbb{H} = \mathbb{H}g gH=Hg
      已知: [ G : H ] = 2 ,那么原有群上的划分仅有两部分 ∵ H 为 G 的子群 ∴ G 划作两部分: H 与设定为 K 部分 已知:\lbrack \mathbb{G} : \mathbb{H}\rbrack =2,那么原有群上的划分仅有两部分\\ \because \mathbb{H} 为 \mathbb{G} 的子群\\ \therefore \mathbb{G} 划作两部分:\mathbb{H} 与设定为 \mathbb{K} 部分\\ 已知:[G:H]=2,那么原有群上的划分仅有两部分HG的子群G划作两部分:H与设定为K部分
      1)当 g ∈ H g\in\mathbb{H} gH 时:
      g H = H = H g ,显然有: g H = H g g\mathbb{H}=\mathbb{H}=\mathbb{H}g,显然有:g\mathbb{H}=\mathbb{H}g\\ gH=H=Hg,显然有:gH=Hg
      2)当 g ∈ K g\in\mathbb{K} gK 时:
      g H , H g ∉ H 又 ∵ g H = G − H = H g ∴ g H = H g g\mathbb{H},\mathbb{H}g\notin\mathbb{H}\\ 又 \because g\mathbb{H}=\mathbb{G}-\mathbb{H}=\mathbb{H}g\\ \therefore g\mathbb{H}=\mathbb{H}g\\ gH,Hg/HgH=GH=HggH=Hg

    2. G \mathbb{G} G是阶为 p q pq pq的群,其中 p p p q q q是素数。请证明 G \mathbb{G} G的任意真子群是循环群。
      ∵ G 是阶为 p q 的群 又由: H 为 G 真子群 那么 ∀ h ∈ G , o r d ( h ) ∣ p q ∴ 由推论 8.2 得到 G 真子群为循环群 \because \mathbb{G} 是阶为 pq 的群\\ 又由:\mathbb{H} 为 \mathbb{G} 真子群\\ 那么 \forall h\in\mathbb{G},ord(h)|pq\\ \therefore 由推论8.2得到 \mathbb{G} 真子群为循环群\\ G是阶为pq的群又由:HG真子群那么hGord(h)pq由推论8.2得到G真子群为循环群

    3. 如果群 H \mathbb{H} H是有限群 G \mathbb{G} G的真子群,即存在 g ∈ G g\in \mathbb{G} gG但是 g ∉ H g \not \in \mathbb{H} gH。请证明 ∣ H ∣ ≤ ∣ G ∣   / 2 \vert \mathbb{H} \vert \leq \vert \mathbb{G} \vert \ /2 HG /2
      假设 ∣ H ∣ > ∣ G ∣ / 2 根据拉格朗日定理,有: ∣ G ∣ / ∣ H ∣ = [ G : H ] 那么有: ∣ G ∣ / ∣ H ∣ = [ G : H ] < 2 此时左陪集个数只能为 1 又因 H 为 G 的真子群 那么其左陪集个数必大于 1 所以此假设不成立 假设|\mathbb{H}|>|\mathbb{G}|/2 根据拉格朗日定理,有:\\ |\mathbb{G}|/|\mathbb{H}|=[\mathbb{G}:\mathbb{H}]\\ 那么有:|\mathbb{G}|/|\mathbb{H}|=[\mathbb{G}:\mathbb{H}]<2\\ 此时左陪集个数只能为1\\ 又因 \mathbb{H} 为 \mathbb{G} 的真子群\\ 那么其左陪集个数必大于1\\ 所以此假设不成立\\ 假设H>G∣/2根据拉格朗日定理,有:G∣/∣H=[G:H]那么有:G∣/∣H=[G:H]<2此时左陪集个数只能为1又因HG的真子群那么其左陪集个数必大于1所以此假设不成立

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值