第六章
7.
证明:
因为
g0g1...gn(gn^-1)...(g1^-1)(g0^-1)=e;
且
(gn^-1)...(g1^-1)(g0^-1)g0g1...gn=e;
由定义得证;
8.
设G有两个子群 a,b;
c=a∩b;
c仍然是G的子集;
a中存在单位元e,b中存在单位元e;
a,b为群
所以
a,b满足群公理
所以a∩b也满足群公理
也存在e,逆元,且满足封闭性,结合律;
即c中存在e逆元,满足封闭性,结合律;
所以
c满足群公理,且c为G的子集;
所以
c为G的子群;
得证;
10.
证明:
在HK中任意取两个元素
h1k1,h2k2∈HK,
因为H,K是G的子群;
∴h1k1,h2k2∈G;
∵G为阿贝尔群
∴h1k1h2k2=h1h2k1k2;
h1h2∈H,k1k2∈K;
∴h1k1h2k2∈G;
满足封闭性
h1k1∈HK;
∴h1k1∈G;
(h1k1)^-1=(k1^-1)(h1^-1);
k1^-1∈K;h1^-1∈H;
所以(k1^-1)(h1^-1)∈G;
得证(由定理6.8可得);
若不是阿贝尔群,则不满足以上的结论;
11.
由题知g^m为G的子集,所以只需证明定理6.8即可;
(1)任取两个元素g1^m,g2^m∈G^m;
g1^mg2^m=(g1g2)^m;
∵g1,g2∈G;
所以g1g2∈G;
所以(g1g2)^m∈G^m;
(2)
任取g^m∈G^m;
(g^m)^-1=(g^-1)^m;
∵g^-1∈G;
∴(g^-1)^m∈G^m;
得证;
第七章
6.证明G如果没有非平凡子群,则G是循环群;
证明逆否命题即可;
即证明
若G不是循环群,G有非平凡群;
任取g∈G,<g>⊂G,循环群<g>为G的非平凡子群;
得证;
7,证明推论7.3,即循环群G中任意元素的阶都整除G的阶;
证明:
若h∈G;
h=g^k;
由定理7.5得h的阶为n/d;
d=gcd(k,n);
n/(n/d)=d;
所以得证;
8
//判断素数
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);
for (vector<int>::iterator it = primes.begin(); it != primes.end(); it++) {
int min = getMingener(*it);
cout << *it << ":" << min << " ";
//for (int i =1;i<=*it-1;++i )
//{
// cout << min << '^' << i << '%' << *it << '=' << int(pow(min, i)) % *it << " ";
//}
cout << endl;
}
return 0;
}
第8章
3
∵[G:H]=2;
∴G被划分成了两个部分;
设为H,K;
任取元素g∈G;
g^-1∈G;
gH=gHgg^-1;
所以
gH=Hg;
4设G是阶为p q pqpq的群,其中p pp和q qq是素数。请证明G的任意真子群为循环群;
由拉格朗日定理得H的阶为p或者q;
由推论8.2得
H为循环群,所以得证;
5
∵g∈G,且g不属于H,所以G的左陪集至少有两个;
|G|/|H|>=2;
所以得证;