亚洲an日韩专区在线-亚洲an天堂an在线观看-亚洲a区视频-亚洲a图-免费黄网大全-免费黄网在线

檢驗有限集合及其二元運算是否構成群的程序

2014-10-07 15:04:15 大云網  點擊量: 評論 (0)
摘 要:利用C語言編制程序檢驗有限集合及其上二元運算是否適合結合律,是否存在單位元,每一個元是否存在逆元,從而快速檢查一個有限集合對所給二元運算是否成一個群。關鍵詞:有限群 結合律 左單位元 左逆元 
摘 要:利用C語言編制程序檢驗有限集合及其上二元運算是否適合結合律,是否存在單位元,每一個元是否存在逆元,從而快速檢查一個有限集合對所給二元運算是否成一個群。
關鍵詞:有限群 結合律 左單位元 左逆元 程序

     在半群論、群論的研究中,經常需要構造反例以支持研究,這就面臨著檢驗對集合特別是有限集合規定的代數運算是否滿足構成半群或群的條件,其中結合律的檢驗尤為繁瑣,對含有N個元的集合,就結合律需檢驗個式子,每個式子又需進行四次二元運算;雖然對于階數不高于20的群的個數和種類已完全得到[1]:
階數 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
群數 1 1 1 2 1 2 1 5 2 2 1 5 1 2 1 14 1 5 1 5
 
但在實際構建階數不大于20的群時,仍需與已知的群建立同構映射;因而可借助編制程序利用計算機進行快速檢驗;本文通過用數字字符代替字母字符,將文[2]最多可檢驗含有65536個元的有限集合擴展為任意有限集合。
 
1 預備知識
定義2.1[3]  群的第二定義
一個不空集合G對于一個叫做乘法的代數運算來說作成一個群,假如
I,G對于乘法來說是封閉的;
II,結合律成立:a(bc)=(ab)c
對于G的任意三個元a,b,c都對;
III,G里至少存在一個左單位元e,能讓
             ea=a
對于G中的任何元a都成立;
IV,對于G的每一個元a,在G里至少存在一個左逆元,能讓
            =
定義2.2[3]  有限群的另一定義    
  一個有乘法的有限不空集合G作成一個群,假如
Ⅰ、G對于這個乘法來說是閉的;
Ⅱ、結合律成立:
                      
對于G的任意三個元、、都成立;
    Ⅲ、消去律成立:
             
                                 
2 程序
    對于一個有限集合來說:如果利用有限群的另一定義來判斷所給的有限集合及其代數運算是否構成群:封閉性的檢驗很簡單,只需觀察所給的運算表中沒有新元素出現即可,如果有新元素出現則不滿足封閉性,反之則滿足封閉性;對于消去律的驗證,只需觀察集合A中的所有元素都出現在所給的運算表中每行每列,因而只需檢驗結合律是否成立;但對于一個給定的階數很大的群,在判斷消去律的時候就會顯得麻煩。這時依據群的第二定義檢驗有限集合及其上二元運算是否構成群,可利用計算機的方法檢驗結合律是否成立及左單位元,左逆元的存在性。下面,筆者給出利用C語言編制的檢驗程序。
2.1 結合律及左單位元的檢驗程序
#include <stdio.h>
#define N 100
int  f( int  m, int  n, int  b[N][N] )
{ return  b[m][n];  }
int  g( int  m, int  n, int  a[N], int  b[N][N] )
{ int  k, t=-1;
for(k=0; k<N; k++ )
if ( a[k]==f(m, n, b))
{  t=k;  break;  }
return t ;
}
getdata(int  a[N], int  b[N][N], int  n )
{int  i, j;
i=0; j=0;
printf( "n Enter the elements of set A:n");
for(i=0;i<n;i++)
  scanf("%d",&a[i]);
printf("n Enter the elements of matrix B:n");
for(i=0;i<n;i++)
  for(j=0;j<n;j++)  scanf("%d",&b[i][j]);
printf( "n" );
return;
void check(int  a[N], int  b[N][N], int  n)
{ int  i, j, k, s=0;
for( i=0; i<n; i++ )
  if ( s==1)  break;
  else
for( j=0; j<n; j++)
     if (s==1) break;
         else  
for( k=0; k<n; k++)
             if (f(g(i,j,a,b),k,b)!=f (i,g(j,k,a,b),b))
{ s=1;
printf("NO!n");
printf("%2c%2c%2c",a[i],a[j],a[k]);
printf("n");
break;
}
if ( s==0 )  printf( "YES!n");
   return;
}
main()
{int  i, j, n,t=0,a[N], b[N][N];
do
{  printf("n Enter the data n:  " );
scanf("%d",&n);
}while(n<=0||n>N);
getdata( a, b, n);
check(a, b, n);
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
if(b[i][j]==a[j])
{printf("%d",a[i]);
t++;}
}
printf("%4dn",t);
return;
}
2.2 左逆元的檢驗程序
#include <stdio.h>
#define  N   100
main()
int i,j,n,s,m,a[N],b[N][N];
printf("n Enter the leftidentity m:n");
scanf("%d",&m);
do
{printf("n Enter the data n: ");
scanf("%d",&n);
}while(n<=0||n>N); 
printf("n Enter the elements of set A:n");
for(i=0;i<n;i++)
  scanf("%d",&a[i]);
printf("n Enter the elements of matrix B:n");
for(i=0;i<n;i++)
  for(j=0;j<n;j++)  scanf("%d",&b[i][j]);
printf("n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
if(b[j][i]==m){
    s=0;
break;
  }
else s=1;
 }
if(s==0)
    printf("Yes!n");
    else
    printf("No!n");
}
   在檢驗過程中,需將運算表輸入,輸入的過程即可檢驗封閉性,因而本程序沒有對封閉性檢驗的過程。
 
3 實例檢驗
  設集合A中包含e,a,b,c,d,f六個元.A的乘法由下表規定:
 
  e a b c d f
e e a b c d f
a a e d f b c
b b f e d c a
c c d f e a b
d d c a b f e
f f b c a e d
 
試驗證集合A對于該乘法來說是否作成群.
    說明:由于本文中的程序僅對所給有限集A中的元為數字時能正常運行.若對于所給有限集A中的元為其外的字母或符號時,須先對其做一個替換.
在利用程序檢驗前,先做如下替換:分別用1,2,3,4,5,6代替字母e,a,b,c,d,f.則A的乘法表為
大云網官方微信售電那點事兒

責任編輯:葉雨田

免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
?
主站蜘蛛池模板: 亚洲免费观看在线视频 | 毛片手机在线 | 91久久色| 美国一级毛片片aaa 美国一级毛片片aa成人 | 视频一区二区三区自拍 | 欧美成人tv在线观看免费 | jk制服福利在线播放 | 亚洲国产精品第一区二区三区 | 琪琪午夜伦埋大全影院 | 国产成人十八黄网片 | 国内精品一区二区2021在线 | 国产一区自拍视频 | 黄网国产| 一区二区三区四区视频在线 | 久久啊| 在线中文字幕视频 | 狠狠久久综合 | 男女性高爱潮免费的国产 | 一级色网站 | 亚洲成 人a影院青久在线观看 | 欧美日本俄罗斯一级毛片 | 中午字幕在线观看 | 免费人成在线观看视频不卡 | 免费视频网站一级人爱视频 | 国产片网址 | 午夜性刺激免费视频观看不卡专区 | 久久视奸 | 国产自偷自拍 | 亚洲天码中文字幕第一页 | 美女福利视频午夜在线 | 真正免费一级毛片在线播放 | 久久久9视频在线观看 | 国产日韩在线视频 | 精品久久久久久久久久中文字幕 | аⅴ资源天堂8在线 | 久久精品国产一区二区三区 | 欧美日韩一区二区视频免费看 | 欧美精品专区55页 | 国产精品大全国产精品 | 国产a久久精品一区二区三区 | 男女扒开双腿猛进入爽爽视频 |