命题群 G 的非空子集 H 是 G 的子群,当且仅当 H = ∅,且对任意 a, b ∈ H, a b − 1 ∈ H ab^{-1} ∈ H ab−1∈H,的证明。
因为H是G的子群,所以H是一个群,则根据群的公理,H中的元素存在逆元,且该逆元 ∈ \in ∈H,所以 b − 1 ∈ H b^{-1} \in H b−1∈H,根据群的封闭性, a b − 1 ∈ H ab^{-1}\in H ab−1∈H。
若 a , b ∈ H a,b \in H a,b∈H,且 a = b a=b a=b,则有 a a − 1 ∈ H aa^{-1}\in H aa−1∈H,所以 e ∈ H e \in H e∈H,所以H存在单位元。 因为 e ∈ H e \in H e∈H,假设 a − 1 ∈ H a^{-1}\in H a−1∈H,则有 e a − 1 ∈ H , 即 a − 1 ∈ H ea^{-1} \in H,即a^{-1}\in H ea−1∈H,即a−1∈H,所以 ∀ a ∈ H \forall a \in H ∀a∈H,存在一个逆元。 因为 b ∈ H b \in H b∈H,所以 b − 1 ∈ H b^{-1}\in H b−1∈H,所以对任意一个元素 a ∈ H , b − 1 ∈ H a\in H,b^{-1}\in H a∈H,b−1∈H, a b − 1 ∈ H ab^{-1} \in H ab−1∈H,故满足封闭性。 结合律很显然就不证了。
设G是阿贝尔群,m是任意整数,记 G m = g m : g ∈ G G^m = { g^m: g\in G } Gm=gm:g∈G。请证明 G m G^m Gm是G的一个子群。 由群的封闭性, g m ∈ G g^m \in G gm∈G,所以 G m ⊆ G G^m \subseteq G Gm⊆G。 因为 e ∈ G e\in G e∈G,且 e m = e e^m = e em=e,所以 e ∈ G m e\in G^m e∈Gm。 ∀ a ∈ G \forall a\in G ∀a∈G,一定存在 a − 1 ∈ G a^{-1}\in G a−1∈G,所以对于 a m ∈ g m a^m \in g^m am∈gm,所以肯定存在 a − m ∈ g m a^-m \in g^m a−m∈gm,所以对于 ∀ i ∈ g m \forall i \in g^m ∀i∈gm,肯定存在一个逆元。 ∀ a m ∈ g m , ∀ b m ∈ g m \forall a^m\in g^m,\forall b^m \in g^m ∀am∈gm,∀bm∈gm, a m b m = ( a b ) m a^mb^m=(ab)^m ambm=(ab)m,因为 a b ∈ G ab\in G ab∈G,所以 ( a b ) m ∈ g m (ab)^m\in g^m (ab)m∈gm,所以 g m g^m gm满足封闭性。 结合律很显然就不证了。
证明:如果群G没有非平凡子群,则群G是循环群。 因为群G,没有平凡子群,所以G的子群只能为 { e } 或 者 G \{e\}或者G {e}或者G,当 G = { e } G=\{e\} G={e}显然满足所证要求,当 G ! = { e } G!=\{e\} G!={e}时,任取G中的一个非单位元的元素 a a a,构成G的一个子群 { a } \{a\} {a},根据G的性质,群 { a } = G \{a\}=G {a}=G,所以也就是说 a a a能生成群 G G G,所以 { a } \{a\} {a}是循环群,所以 G G G是循环群。
证明循环群G中任意元素的阶都整除群的阶。 假设群的阶数为n,任取群里的一个元素 a a a,且有 a k = e a^k=e ak=e,假设a是群的生成元,那么易证该性质是成立的。 如果a不是群的生成元,假设G的生成元是 g g g,那么 a = g m a=g^m a=gm,所以 g m k = e g^{mk}=e gmk=e,因为 n ∣ m k n|mk n∣mk,且 n n n不整除m,否则a就是G的生成元,所以 n ∣ k n|k n∣k,得证。 然后课本上的证明是,首先我们有群 G = < g > G=<g> G=<g>是阶为 n n n的循环群,如果 h = g k h=g^k h=gk,则h的阶为 n / d n/d n/d,其中 d = g c d ( k , n ) d=gcd(k,n) d=gcd(k,n)。所以对于群中的任意一个元素表示为h,群的阶除以h的阶表示为 n / n d = d n/\frac {n}{d}=d n/dn=d,所以循环群G中任意元素的阶都整除群的阶。
def is_prime(n): for i in range(2, int(n**(1/2)+1)): if n % i == 0: return False return True def prime_fators_list(p): l = [] for i in range(2, int(p**(1/2)+1)): if p % i == 0: if is_prime(i): l.append(i) if is_prime(p/i): l.append(p/i) return l def is_primitive_root(a, p): flist = prime_fators_list(p - 1) # 出求p-1的所有素因子 5 for f in flist: for f in flist: if pow(a, int((p - 1) / f), p) == 1: return False return True def find_smallest_root(p): for i in range(2, p-1): if is_primitive_root(i, p): return i max_root = 2 max_root_prime = 3 for i in range(4, 10000): if is_prime(i): root = find_smallest_root(i) if root > max_root: max_root = root max_root_prime = i print(max_root_prime)用了最朴素得方法,结果最得大的最小生成元是31,且 p = 5881 p = 5881 p=5881。
设 q 是素数且 p = 2 ∗ q + 1 p = 2 ∗ q + 1 p=2∗q+1 也是素数。选取 g = h 2 g = h^2 g=h2 且 g ! = 1 g != 1 g!=1,其中 h 是 Z p ∗ h 是 Z_p^{*} h是Zp∗ 中的元素。显然, < g > <g> <g>是循环群。
< g > <g> <g>的阶是多少,为什么?
< g > <g> <g>的阶是 q q q。
因为 p = 2 ∗ q + 1 p=2*q+1 p=2∗q+1,所以 p − 1 = 2 ∗ q p-1=2*q p−1=2∗q,所以群 Z p ∗ Z_p^{*} Zp∗的阶是 2 q 2q 2q,假设 h n = e h^n=e hn=e,则有 n ∣ 2 q n|2q n∣2q,因为 g = h 2 g=h^2 g=h2,所以 g n / 2 = e g^{n/2}=e gn/2=e,所以 n 2 ∣ 2 q \frac{n}2|2q 2n∣2q,所以 n 2 ∣ q \frac{n}2|q 2n∣q,又因为 q q q是素数,所以 n / 2 = q n/2=q n/2=q,所以 < g > <g> <g>的阶是 q q q。
< g > <g> <g>有多少个生成元?
有 q − 1 q-1 q−1个生成元,因为 ϕ ( q ) = q − 1 \phi(q)=q-1 ϕ(q)=q−1,根据推论7.2。
def get_group(h, p, q): l = [] g = h ** 2 % p l.append(g) while g != 1: g = g * h ** 2 % p l.append(g) return l n1 = int(input()) n2 = 2 * n1 + 1 for i in range(2, n2): group = get_group(i, n2, n1) print(group)