Bill Allombert on Thu, 26 Jan 2023 13:10:02 +0100
|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: How to define Group (Z/nZ)*
|
- To: pari-users@pari.math.u-bordeaux.fr
- Subject: Re: How to define Group (Z/nZ)*
- From: Bill Allombert <Bill.Allombert@math.u-bordeaux.fr>
- Date: Thu, 26 Jan 2023 13:08:51 +0100
- Arc-authentication-results: i=1; smail; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1674734928; c=relaxed/relaxed; bh=oOuGIKP7Gynq8QnWzY+ho+b0vGJStEbz9Oi597VqklI=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:Mail-Followup-To: References:MIME-Version:Content-Type:Content-Disposition: In-Reply-To; b=vDolOoQQCSe86O1VoYpu93Qx8ESlOxwdY4Q8snCs2cgb/b9YLaOvcubcKDZ+jqV7owWhQDMX35SDRIu2uWmBhpFokejBiJ1hKvPUhONJ+RY6eVeArYXZsYomsysu1AqlFbhvnpeT7WaznWdSgoN65SpdjgwBCc86S1Q2YwEuLqrtETJ+ckT2WSrMupNF2oQviI4GQ4JYADU8zL9avFm8U0WbsfSBE9HDEs6JKywaEMS6xHlAhHLjU27qltnk1buEqozQyT4gYkCbue3Fs3GK8FeLzguqd9UyP1CHoOWZ9RSht8UlGjfi7++QitL77bPnEMEC9dr+fMYK3ULIudQ292H6ZdMB5wXg63sIRt3gYKQlTK4JfIgICH0mSXEmLbYswxbpKjpOnskHIagviwAfyi/NZicHUCNTg/qrNFrXAX3Z5PahkcatlcgnfZ0aNvkV+/2arKa3Wx6qFT4TxaF7pPEWk0oi5YFK6+2WJ0xXmPRZOaOw24sOaUvr3ksymp3Laiy5iXtIY47/YYPKIajmICOhTSf66pKzumXivfjQd50gopNhkqSwH2wM1TBlSKvQoKE5KPi/10BIVhLHwh3VASFU4NmGQzFp5MWITNxp8Z2qPYE6C5NJoo6MBJ4b/8jIRVvVgL0UcParGhuaO3IfwXjW1rt2XK0dBOPkSQCTLv8=
- Arc-seal: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1674734928; cv=none; b=2g1OkbGVrcA6K5BntoQFCFlxd2J7LkExoNKu13Gt+yOgKHksxLcQEdxnLMbDP5Hb2ItYNb+5DMDafp9XwjkodRw8vSpoWijAtbSMEV5dNL3ynWUshvCOdLPuUXwm6wWA+s+dElHVPmw5+50d6KL5wDt9BWH13QdgPQXR0jriccg7gjaBlhy/DWwhDRuiOREhepnaG4rxeW1zRoIdcxAzNPrp+2XCOHwgufbphG+LuMsty8wZd7Rg6RtWeTKbuBDybSu2/rtHVhAsuu96howvRsgOK35jLvP/O8MDcgRMFdRmU3AU4rMTr12bzWzrT752sIWjtJppqsLTwZ5whLduuLL33wBZ7m0GYX5sLrmYsboakoe36gMot+6k3yh8aTF73MWNb/+KlWxv5MnqOjy9phnE8Oz99p2UXpFICS2ifzZymYiVXA2f7IkmQEoqb4wbTPCYDga+PPiHJ7zFrrkQmtWIfkEPbh9IV6N7z/NVTHICI0GWEMRUQQDko0j7fRQPH+Cl8WXwDaAMthk28colitT6myhnyV8QtumG2G2YfLNePoQrfSBn4nYM3RVuR1ESJQ2MErs4R4vxRU9nAfG/jo2XY6OQ6VQkQqe5IZFX3MpkYGfFmDpnaQ+zRJPeYotXp4+pJndppgCYhh2T+BrJp8SYBplCG2fAKCgUJeRuH2Q=
- Authentication-results: smail; arc=none
- Delivery-date: Thu, 26 Jan 2023 13:10:02 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=math.u-bordeaux.fr; s=2022; t=1674734928; bh=oOuGIKP7Gynq8QnWzY+ho+b0vGJStEbz9Oi597VqklI=; h=Date:From:To:Subject:References:In-Reply-To:From; b=L3Bm+HMEUAFK9BgCm4q7nTiAoHPamwUrP2oMmiZrPerILxfKZoX6nhXho26ImBWL7 y0tPkA6JPNl4/cRdYTXuzjC5odOdzIWTsmrI8e7g3P1WiGEZmgf305OSyVHNjsV1x3 PdfogYd8dIo9ZpYMpaA4nJu6FO+aFJPu6Km787OcquttzwWJmzv4wLqkw+d8rVGBXX Ycmu5xCikj73Ias3Z+i0mbVo51/uFTNQFHuHYkKo7+BLFTG3ilJOAT4LmSRRe9ICr9 xlwNUqUxBp8Cr28vVnLv9sYZR3y6m8OVvj8xMn5S1wjrn3br2fupTwanW+kMMK4/up A+6/fIl9Y2pViL9P9NmXYd6qAJ7txVIDIBxJ9SFUygCqfB6CHPjXAD65etnVW0AKq2 oh+q3XmMVzKFX5QNcbGrczOn/ycyagzrzlp6OrKuvS2NOVSPI99bzH3Bw0nBsU3F+e ryPyxTFcl1Hp9atC6qYNLdKTAldsBNWIZKVISn//9ueOUIibozENHAvhec/ZZ+rxk/ o7eh8t9LhmN6ZXsdywq6Cl39+sdZqYT7fb37JPGKMOOW+ZQXNKgL/nrRHXtlTABHqE PkgCMAe7gcqy+SFx7qPL57WTys7LZqGKNIB2vYv58/z4sUIoKKS2QcOC6fCOIkDkZI /MPoW3O8VaCjLIEwy7x2msug=
- In-reply-to: <f49e9de0-29b2-aed6-d5e0-9563ef493b40@wavecable.com>
- Mail-followup-to: pari-users@pari.math.u-bordeaux.fr
- References: <f49e9de0-29b2-aed6-d5e0-9563ef493b40@wavecable.com>
On Thu, Jan 26, 2023 at 03:18:11AM -0800, Thomas D. Dean wrote:
> How do I define the multiplicative group (Z/nZ)* and display its members? I
> saw znstar(n). Using G=znstar(7), how do I display G's members?
>
> How do I define the additive group (Z/nZ)+ and display its members?
>
> I want to create groups and look at Cayley tables.
PARI is not a group theoretic software. Abelian groups are treated as Z-modules.
You would probaby find GAP (www.gap-system.org) more intuitive.
To answer your question:
An abelian group (in multiplicative notation) in PARI/GP has two components:
? G.cyc
%10 = [6]
? G.gen
%11 = [Mod(3,7)]
Let k=#G.cyc.
The set of elements is the set G.gen[1]^e1 * ... * G.gen[k]^ek for
all choices of e1,...,ek such that 0<=e1<G.cyc[1],...,0<=ek<G.cyc[k].
you can print them as follow:
? forvec(v=[[0,c-1]|c<-G.cyc],print(factorback(G.gen,v)))
1
Mod(3,7)
Mod(2,7)
Mod(6,7)
Mod(4,7)
Mod(5,7)
or for 42
? G=znstar(42)
%14 = [12,[6,2],[Mod(31,42),Mod(29,42)]]
? forvec(v=[[0,c-1]|c<-G.cyc],print(factorback(G.gen,v)))
1
Mod(29,42)
Mod(31,42)
Mod(17,42)
Mod(37,42)
Mod(23,42)
Mod(13,42)
Mod(41,42)
Mod(25,42)
Mod(11,42)
Mod(19,42)
Mod(5,42)
But as far as number theory is concerned, this is pointless, you could just as well do
? for(i=1,42,if(gcd(i,42)==1,print(Mod(i,42))))
Mod(1,42)
Mod(5,42)
Mod(11,42)
Mod(13,42)
Mod(17,42)
Mod(19,42)
Mod(23,42)
Mod(25,42)
Mod(29,42)
Mod(31,42)
Mod(37,42)
Mod(41,42)
Cheers,
Bill.