有限交换环r[x]/(a)、(m)r[x]/(n)r[x]的结构分析

本文介绍了有限交换环R[x]/(a)、(m)r[x]/(n)r[x]的结构,并使用C++实现相关运算,包括多项式的加法、乘法、取余以及不可约性和本原性的判断。代码示例展示了如何进行多项式运算及模运算,并通过多项式环来表示和研究这些结构。
摘要由CSDN通过智能技术生成

D:\MathTool\gaptool>PolynomialRing
R8_3/([[0,2],[2]],[1,0,1])=R16_118:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,12,0,0],4,1,0,16,1,7,15,128,15,16,[1,3,8,4,0],[[4,4,128]]
I1I2=[[1,1,1],[2,1,3],[4,1,4],[4,2,4],[8,23,4]],[[2,1,3],[4,1,10],[4,2,10],[4,4,3],[8,5,12],[8,16,12],[8,23,22]]
R8_3/([[4,6],[4,7]],[0,0,1])=R16_16:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,4,8,0],8,1,0,16,1,15,15,160,15,16,[1,3,4,8,0],
[[2,8,16],[4,8,16],[8,2,16],[8,4,16],[8,8,32]]
I1I2=[[1,1,1],[2,1,3],[4,1,4],[8,1,8]],[[2,1,3],[4,1,10],[4,4,3],[8,1,44],[8,5,12]]
R8_3/([[6,1],[6,3]],[0,0,1])=R16_17:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,4,8,0],8,1,0,16,1,7,7,128,15,16,[1,3,4,0,8],[[2,8,16],
[4,8,16],[8,2,16],[8,4,16],[8,8,64]]
I1I2=[[1,1,1],[2,1,3],[4,1,4]],[[2,1,3],[4,1,10],[4,4,3],[8,5,12]]
cnt=4
R2_2/([1,0,1])=R4_9:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,0],2,1,1,2,2,1,1,8,1,4,[1,2,1],[[2,2,8]]
cnt=4
R2_2/([1,1,1])=R4_11:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,0],2,1,1,1,2,0,0,7,0,4,[1,1,2],[[2,2,9]]
cnt=4
R2_2/([0,0,1])=R4_9:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,0],2,1,1,2,2,1,1,8,1,4,[1,2,1],[[2,2,8]]
cnt=4
R2_2/([0,1,1])=R4_10:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,0],2,1,1,3,4,0,0,9,2,4,[1,3,0],[[2,2,7]]
cnt=8
R2_2/([1,0,0,1])=R8_51:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,7,0,0],2,1,1,5,4,0,0,21,4,8,[1,3,2,2],[[2,2,43]]
cnt=9
R3_2/([1,0,1])=R9_11:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,8,0],3,1,1,1,2,0,0,17,0,9,[1,2,6],[[3,3,64]]
cnt=9
R3_2/([1,1,1])=R9_9:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,8,0],3,1,1,3,2,2,2,21,2,9,[1,4,4],[[3,3,60]]
cnt=9
R3_2/([0,0,1])=R9_9:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,8,0],3,1,1,3,2,2,2,21,2,9,[1,4,4],[[3,3,60]]
cnt=9
R3_2/([0,1,1])=R9_10:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,8,0],3,1,1,5,4,0,0,25,4,9,[1,6,2],[[3,3,56]]
cnt=16
R4_3/([1,0,1])=R16_105:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,12,0,0],4,1,1,8,2,3,3,48,7,16,[1,3,2,6,4],[[2,4,32],[4,2,32],[4,4,144]]
cnt=16
R4_3/([1,1,1])=R16_106:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,12,0,0],4,1,1,4,2,3,3,40,3,16,[1,3,2,2,8],[[2,4,36],[4,2,36],[4,4,144]]
cnt=16
R4_3/([0,0,1])=R16_110:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,12,0,0],4,1,1,8,2,7,7,56,7,16,[1,3,6,2,4],[[2,4,32],[4,2,32],[4,4,136]]
cnt=16
R4_3/([0,1,1])=R16_104:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,3,12,0,0],4,1,1,12,4,3,3,64,11,16,[1,3,6,6,0],[[2,4,28],[4,2,28],[4,4,136]]
R4_3/([[1,0,1]],[1,0,0,1])=R32_-1:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,7,24,0,0,0],4,1,0,32,2,7,7,160,31,32,[1,7,2,4,10,8],[[2,4,144],[4,2,144],[4,
4,576]]
I1I2=[[1,1,1],[2,1,7],[4,3,2],[8,13,2],[8,21,2],[16,106,8],[16,251,2]],[[2,1,7],[4,3,5],[4,4,21],[8,13,17],[8,21,17],[16,106,92],[16,251,53]
]
cnt=64
R4_3/([1,0,0,1])=R64_-1:N0n0bAbOn1n2n4n5n6n7n8S1N2=[1,7,56,0,0,0,0],4,1,1,40,4,7,7,320,39,64,[1,7,6,16,10,8,16],[[2,4,344],[4,2,344],[4,4,30
88]]
I1I2=[[1,1,1],[2,1,7],[4,3,6],[8,13,8],[8,21,8],[16,106,8],[16,251,2],[32,-1,8]],[[2,1,7],[4,3,15],[4,4,21],[8,13,68],[8,21,68],[16,104,48],
[16,106,92],[16,205,36],[16,219,36],[16,251,53],[32,-1,428]]

#include"ZmodnZ.h"
#include<vector> 
#include<iostream>
#include<fstream> 
#include<string> 
using namespace std;

typedef vector<int> Polynomial;// 用向量表示多项式

// r[x]/(a)、(m)r[x]/(n)r[x]
struct PolynomialRing:public IRing
{
public:
    // 静态函数
    static bool IsEqual(Polynomial& a,Polynomial& b);// 是否相等 
    static Polynomial add(Polynomial& a,Polynomial& b,int ord);// 加法    
    static Polynomial mul(Polynomial& a,Polynomial& b,int ord);// 乘法
    static Polynomial mod(Polynomial& a,Polynomial& b,int ord);// 取余    
    static bool is_zero(Polynomial& a);// 是否为零多项式    
    static bool is_irr(Polynomial& a,int ord);// 是否不可约,Error测试不通过 
    static bool is_pri(Polynomial& a,int ord);// 是否本原,Error测试不通过
    static Polynomial pow(Polynomial&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值