D:\SixCocos2d-xVC2012\Cocos2d-x\XWH\cstest>csc Ideal.cs IRing.cs
D:\SixCocos2d-xVC2012\Cocos2d-x\XWH\cstest>Ideal
6阶环:
[0,3]构成理想,不是幂零理想,是素理想,是准素理想
[0,2,4]构成理想,不是幂零理想,是素理想,是准素理想
和:[0,1,2,3,4,5],不是幂零理想,不是素理想,不是准素理想
积:[0],是幂零理想(m=1),是素理想,是准素理想
交:[0],是幂零理想(m=1),是素理想,是准素理想
和:[0,3],不是幂零理想,是素理想,是准素理想
积:[0,3],不是幂零理想,是素理想,是准素理想
交:[0,3],不是幂零理想,是素理想,是准素理想
和:[0,2,4],不是幂零理想,是素理想,是准素理想
积:[0,2,4],不是幂零理想,是素理想,是准素理想
交:[0,2,4],不是幂零理想,是素理想,是准素理想
12阶环:
[0,3,6,9]构成理想,不是幂零理想,是素理想,是准素理想
[0,4,8]构成理想,不是幂零理想,不是素理想,是准素理想
和:[0,1,2,3,4,5,6,7,8,9,10,11],不是幂零理想,不是素理想,不是准素理想
积:[0],是幂零理想(m=1),是素理想,是准素理想
交:[0],是幂零理想(m=1),是素理想,是准素理想
和:[0,3,6,9],不是幂零理想,是素理想,是准素理想
积:[0,3,6,9],不是幂零理想,是素理想,是准素理想
交:[0,3,6,9],不是幂零理想,是素理想,是准素理想
和:[0,4,8],不是幂零理想,不是素理想,是准素理想
积:[0,4,8],不是幂零理想,不是素理想,是准素理想
交:[0,4,8],不是幂零理想,不是素理想,是准素理想
12阶环:
[0,3,6,9]构成理想,不是幂零理想,是素理想,是准素理想
[0,2,4,6,8,10]构成理想,不是幂零理想,是素理想,是准素理想
和:[0,1,2,3,4,5,6,7,8,9,10,11],不是幂零理想,不是素理想,不是准素理想
积:[0,6],是幂零理想(m=2),不是素理想,不是准素理想
交:[0,6],是幂零理想(m=2),不是素理想,不是准素理想
和:[0,3,6,9],不是幂零理想,是素理想,是准素理想
积:[0,3,6,9],不是幂零理想,是素理想,是准素理想
交:[0,3,6,9],不是幂零理想,是素理想,是准素理想
和:[0,2,4,6,8,10],不是幂零理想,是素理想,是准素理想
积:[0,4,8],不是幂零理想,不是素理想,是准素理想
交:[0,2,4,6,8,10],不是幂零理想,是素理想,是准素理想
using System;
using System.Collections.Generic;
namespace gap
{
class rutil
{
// ascending=true表示升序,false表示降序
public static void pibub(List<int> p,bool ascending)
{
int temp,i,j;
int n=p.Count;
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
if(p[j]>p[i]==ascending)
{
temp=p[i];
//插入
for(int k=i;k>=j;k--)
p[k]=p[k-1];
p[j]=temp;
}
}
}
}
public static string V2S(List<int> v){
string str="[";
int n=v.Count;
for(int i=0;i<n;i++)
{
str+=v[i].ToString();
if(i<n-1)
str+=",";
}
str+="]";
return str;
}
public static bool IsEqual(List<int> a,List<int> b){
int na=a.Count;
int nb=b.Count;
if(na!=nb)
return false;
for(int i=0;i<na;i++)
if(a[i]!=b[i])
return false;
return true;
}
// 判断集合I是否是环r的理想
public static int IsIdeal(IRing r,List<int> I){
//I是r的子环
Subring s=new Subring(r,I);
bool bE=IsEqual(I,s.m_Set);
if(!bE){
return 0;// 子环也不是
}
//进一步判断是否是理想
for(int i=0;i<r.size();i++){//任意纯量环元素c
for(int j=0;j<I.Count;j++){//任意向量模元素a
int ca=r.mul(i,I[j]);
int ac=r.mul(I[j],i);
int p=Subring.getidx(I,ca);
if(p==-1){
return 2;// 是子环但不是理想
}
int p1=Subring.getidx(I,ac);
if(p1==-1){
return 2;// 是子环但不是理想
}
}
}
return 1;//是理想
}
<