Aritmética modular
Na matemática, a aritmética modular é um sistema de aritmética para números inteiros, onde os números "envolvem" ao atingir um determinado valor, chamado de módulo. A abordagem moderna da aritmética modular foi desenvolvida por Carl Friedrich Gauss em seu livro Disquisitiones Arithmeticae, publicado em 1801.
Um uso familiar da aritmética modular é o relógio de 12 horas, no qual o dia é dividido em dois períodos de 12 horas. Se agora são 7:00, 8 horas depois serão 3:00. Uma adição simples resultaria em 7 + 8 = 15, mas os relógios "envolvem" a cada 12 horas. Como o número da hora recomeça em zero quando chega a 12, isso é módulo 12 aritmético. Nos termos da definição abaixo, 15 é congruente a 3 módulo 12, então & #34;15:00" em um relógio de 24 horas é exibido "3:00" em um relógio de 12 horas.
Congruência
Dado um inteiro n > 1, chamado de módulo, dois inteiros a e b são considerados congruentes módulo n, se n for um divisor de sua diferença (ou seja, se houver um número inteiro k tal que a − b = kn).
Módulo de congruência n é uma relação de congruência, ou seja, é uma relação de equivalência compatível com as operações de adição, subtração e multiplicação. O módulo de congruência n é denotado:
- um)) b)(modn).{displaystyle aequiv b{pmod {n}}}
Os parênteses significam que (mod n) aplica-se a toda a equação, não apenas ao lado direito (aqui, b)). Esta notação não deve ser confundida com a notação b) mod n (sem parênteses), que se refere à operação modulo. De facto, b) mod n denota o inteiro único um tal que 0 ≤ um < n e um)) b)(modn){displaystyle aequiv b;({text{mod}};n) ? (isto é, o restante b)Não. quando dividido por nNão.).
A relação de congruência pode ser reescrita como
- um= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =kn+b),Não. a=kn+b,
mostrando explicitamente sua relação com a divisão euclidiana. No entanto, o b aqui não precisa ser o restante da divisão de a por n. Em vez disso, o que a instrução a ≡ b (mod n) afirma que a e b têm o mesmo resto quando divididos por n. Aquilo é,
- um= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =pn+R,- Sim.
- b)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =qn+R,- Sim.
onde 0 ≤ r < n é o resto comum. Subtraindo essas duas expressões, recuperamos a relação anterior:
- um- Sim. - Sim. b)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =kn,Não.
configurando k = p − q.
Exemplos
No módulo 12, pode-se afirmar que:
- 38)) 14(mod12){displaystyle 38equiv 14{pmod {12}}}
porque 38 − 14 = 24, que é um múltiplo de 12. Outra forma de expressar isso é dizer que 38 e 14 têm o mesmo resto 2, quando divididos por 12.
A definição de congruência também se aplica a valores negativos. Por exemplo:
- 2)) - Sim. - Sim. 3(mod5)- Sim. - Sim. 8)) 7(mod5)- Sim. - Sim. 3)) - Sim. - Sim. 8(mod5).{displaystyle {begin{aligned}2&equiv -3{pmod {5}}-8&equiv 7{pmod {5}}-3&equiv -8{pmod {5}}end{aligned}}}
Propriedades básicas
A relação de congruência satisfaz todas as condições de uma relação de equivalência:
- Reflexividade: um) um (mod n)
- Simetria: um) b) (mod n) se b)) um (mod n).
- Transitividade: Se um) b) (mod n) e b)) c (mod n), então um) c (mod n)
Se a1 ≡ b1 (mod n) e a2 ≡ b2 (mod n), ou se a ≡ b (mod n), então:
- um + k) b) + k (mod n) para qualquer inteiro k (compatibilidade com a tradução)
- k a) b) (mod n) para qualquer inteiro k (compatibilidade com escala)
- k a) b) (mod Kn) para qualquer inteiro k
- um1 + um2) b)1 + b)2 (mod n) (compatibilidade com a adição)
- um1 – um2) b)1 – b)2 (mod n) (compatibilidade com subtração)
- um1 um2) b)1 b)2 (mod n) (compatibilidade com a multiplicação)
- umk) b)k (mod n) para qualquer inteiro não negativo k (compatibilidade com exponencial)
- p(um) p(b)(mod) n), para qualquer polinomial p(x) com coeficientes inteiros (compatibilidade com avaliação polinomial)
Se a ≡ b (mod n), então geralmente é falso que ka ≡ kb (mod n). No entanto, o seguinte é verdade:
- Se c) D (mod φ(n), Onde? φ é a função totient de Euler, então umc) umD (mod n)— desde que um é coprime com n.
Para cancelamento de termos comuns, temos as seguintes regras:
- Se um + k) b) + k (mod n), onde k é qualquer inteiro, então um) b) (mod n)
- Se k a) b) (mod n) e k é coprime com n, então um) b) (mod n)
- Se k a) b) (mod Kn) e k ≠ 0, então um) b) (mod n)
O inverso multiplicativo modular é definido pelas seguintes regras:
- Existência: existe um inteiro denotado um-1 tal que A-1 ≡ 1 (mod n) se e somente se um é coprime com n. Este inteiro um-1 é chamado de inverso multiplicador modular de um Modulo n.
- Se um) b) (mod n) e um-1 existe, então um-1) b)-1 (mod n) (compatibilidade com inverso multiplicativo, e, se um = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = b), modulo de singularidade n)
- Se um x) b) (mod n) e um é coprime para n, então a solução para esta congruência linear é dada por x) um-1b) (mod n)
O inverso multiplicativo x) um-1 (mod n) pode ser computado eficientemente resolvendo a equação de Bézout umx+nSim.= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =1- Sim. para x,Sim.- Sim.—utilizando o algoritmo Euclidiano Estendido.
Em particular, se p for um número primo, então a é coprimo com p para cada a tal que 0 < a < p; portanto, existe um inverso multiplicativo para todo a que não é congruente ao módulo zero p .
Propriedades avançadas
Algumas das propriedades mais avançadas das relações de congruência são as seguintes:
- O pequeno teorema de Fermat: Se p é primo e não se divide um, então um p – 1 ≡ 1 (mod p).
- Teorema de Euler: Se um e n são coprime, então um φ(n) ≡ 1 (mod n), onde φ é a função totient de Euler
- Uma consequência simples do teorema pequeno de Fermat é que se p é primo, então um- Sim.) um p - 2 (mod p) é o inverso multiplicativo de 0 < um < p. Mais geralmente, do teorema de Euler, se um e n são coprime, então um- Sim.) um φ(n) − 1 (mod n).
- Outra consequência simples é que se um) b) (mod φ(n), Onde? φ é a função totient de Euler, então kum) kb) (mod n) fornecido k é coprime com n.
- O teorema de Wilson: p é primo se e somente se (p - 1)! ≡ −1 (mod p).
- teorema restante chinês: Para qualquer um, b) e coprime m, n, existe um único x (mod Mn.) tal que x) um (mod m) e x) b) (mod n). Na verdade, x) b)n-1 m + a nm-1 n (mod Mn.) Onde? mn- Sim. é o inverso de m Modulo n e nm- Sim. é o inverso de n Modulo m.
- Teorema de Lagrange: A congruência f (x) ≡ 0 (mod) p), onde p é primo, e f (x) = um0 xn +... + umn é um polinomial com coeficientes inteiros tais que um0 ≠ 0 (mod p), tem no máximo n raízes.
- Modulo de raiz primitiva n: Um número g é um modulo raiz primitiva n se, para cada inteiro um coprime para n, há um inteiro k tal que gk) um (mod n). Um modulo de raiz primitiva n existe se e somente se n é igual a 2, 4, pk ou 2pk, onde p é um número primo estranho e k é um inteiro positivo. Se um modulo raiz primitiva n existe, então há exatamente φ(φ(n) tais raízes primitivas, onde φ é a função totient do Euler.
- Resíduos quádricos: Um inteiro um é um modulo de resíduos quadráticos n, se existe um inteiro x tal que x2) um (mod n). O critério de Euler afirma que, se p é um primo estranho, e um não é um múltiplo de p, então um é um modulo de resíduos quadráticos p se e somente se
- um(p- Sim. - Sim. 1)/2)) 1(modp).{displaystyle a^{(p-1)/2}equiv 1{pmod Não.
Aulas de congruência
A relação de congruência é uma relação de equivalência. O modulo de classe de equivalência n de um inteiro um é o conjunto de todos os inteiros da forma um+kn,Não. a+kn,} Onde? k é qualquer inteiro. É chamado de classe de congruência ou classe de resíduos de um Modulone pode ser denotado como (ummodn),(a{bmod {n}}),} umou Não.um] quando o módulo n é conhecido pelo contexto.
Cada modulo de classe de resíduosn contém exatamente um inteiro no intervalo 0,...... ,n- Sim. - Sim. 1.{displaystyle 0,ldotsn-1.} Assim, estes n inteiros são representantes de suas respectivas classes de resíduos.
Geralmente é mais fácil trabalhar com inteiros do que com conjuntos de inteiros; ou seja, os representantes mais frequentemente considerados, em vez de suas classes de resíduos.
Consequentemente, (ummodn)(a{bmod {n}})} denota geralmente o inteiro único k tal que <math alttext="{displaystyle 0leq k0≤ ≤ k<n{displaystyle 0leq k<n}<img alt="{displaystyle 0leq k e k)) um(modn);{textstyle kequiv a{pmod {n}};} é chamado de resíduos de um Modulon.
Em particular, (ummodn)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =(b)modn)(a{bmod {n}})=(b{bmod {n}})} é equivalente a um)) b)(modn),(em inglês) e isso explica por que "= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =" é frequentemente usado em vez de ")) - Sim." neste contexto.
Sistemas de resíduos
Cada classe de resíduos módulo n pode ser representada por qualquer um de seus membros, embora geralmente representem cada classe de resíduos pelo menor número inteiro não negativo que pertence a essa classe (já que este é o restante adequado que resulta da divisão). Quaisquer dois membros de diferentes classes de resíduos modulo n são modulo incongruente n . Além disso, todo número inteiro pertence a um e apenas um módulo de classe de resíduos n .
O conjunto de inteiros {0, 1, 2,..., n - 1 } é chamado de pelo menos sistema de resíduos Modulo n . Qualquer conjunto de n inteiros, nenhum dos dois é o módulo congruente n , é chamado de Sistema de resíduos completo Modulo n .
O menor sistema de resíduos é um sistema completo de resíduos, e um sistema de resíduos completo é simplesmente um conjunto contendo precisamente um representante de cada módulo de classe de resíduos n . Por exemplo, o menor sistema de resíduos módulo 4 é {0, 1, 2, 3}. Alguns outros sistemas de resíduos completos Modulo 4 incluem:
- {1, 2, 3, 4}
- (13, 14, 15, 16)
- {−2, −1, 0, 1}
- {−13, 4, 17, 18}
- {−5, 0, 6, 21}
- (27, 32, 37, 42)
Alguns conjuntos que não são sistemas de resíduos completos módulo 4 são:
- {−5, 0, 6, 22}, já que 6 é congruente para 22 modulo 4.
- {5, 15}, uma vez que um sistema de resíduos completo modulo 4 deve ter exatamente 4 classes de resíduos incongruentes.
Sistemas de resíduos reduzidos
Dado a função totient
φ ( n ) , qualquer conjunto de φ ( n ) Inteiros que são relativamente primos para n e incongruentes mutuamente em Modulus n é chamado de Sistema de resíduos reduzido Modulo n . O conjunto {5,15} acima, por exemplo, é uma instância de um sistema de resíduos reduzido Modulo 4.
INTERGERS MODULO N
O conjunto de todas as classes de congruência dos inteiros para um módulo n é chamado de anel de inteiros modulo n, e é denotado Z./nZ.- Sim. - Não. Não., Z./n{displaystyle mathbb {Z} /n}ou Z.n{displaystyle mathbb {Z} _{n}}. A notação Z.n{displaystyle mathbb {Z} _{n}} é, no entanto, não recomendado porque pode ser confundido com o conjunto de inteiros n-ádicos. O anel Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} } é fundamental para vários ramos da matemática (veja § Aplicações abaixo).
O conjunto é definido para n > 0 como:
- Z./nZ.= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =(um? ? n∣ ∣ um∈ ∈ Z.?= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =(0? ? n,1? ? n,2? ? n,...... ,n- Sim. - Sim. 1? ? n?.{displaystyle mathbb {Z} /nmathbb {Z} =left{{overline {a}}_{n}mid ain mathbb {Z} right}=left{{overline {0}}_{n},{overline {1}}_{n},{overline {2}}_{n},ldots{overline {n{-}1}}_{n}right}}.}
(Quando) n = 0, Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} } não é um conjunto vazio; ao contrário, é isomorfo Z.{displaystyle mathbb {Z} } }, desde um0 Não.um}
Definimos adição, subtração e multiplicação em Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} } pelas seguintes regras:
- um? ? n+b)? ? n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =(um+b))? ? nNão é verdade. {a}}_{n}+{overline {b}}_{n}={overline {(a+b)}}_{n}}
- um? ? n- Sim. - Sim. b)? ? n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =(um- Sim. - Sim. b))? ? nNão é verdade. {a}}_{n}-{overline {b}}_{n}={overline {(a-b)}}_{n}}
- um? ? nb)? ? n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =(umb))? ? n.Não é verdade. {a}}_{n} {b}}_{n}={overline {(ab)}}_{n}.}
A verificação de que esta é uma definição adequada usa as propriedades dadas anteriormente.
Desta forma, Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} } torna-se um anel comutativo. Por exemplo, no anel Z./24.Z.{displaystyle mathbb {Z} /24mathbb Não.nós temos
- 12? ? 24.+21? ? 24.= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =33? ? 24.= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =9? ? 24.Não é verdade. {12}}_{24}+{overline {21}}_{24}={overline {33}}_{24}={overline {9}}_{24}}
como na aritmética para o relógio de 24 horas.
Usamos a notação Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} } porque este é o anel quociente de Z.{displaystyle mathbb {Z} } } pelo ideal nZ.- Não., um conjunto contendo todos os inteiros divisíveis por n, onde 0Z.} é o conjunto singleton (} Assim Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} } é um campo quando nZ.- Não. é um ideal máximo (ou seja, quando n é primo).
Isso também pode ser construído a partir do grupo Z.{displaystyle mathbb {Z} } } sob a operação de adição sozinho. A classe de resíduos umn é o grupo de um no grupo quociente Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} }, um grupo cíclico.
Em vez de excluir o caso especial n = 0, é mais útil incluir Z./0Z.{displaystyle mathbb {Z} /0mathbb Não. (que, como mencionado anteriormente, é isomorfo para o anel Z.{displaystyle mathbb {Z} } } de inteiros). Na verdade, essa inclusão é útil ao discutir a característica de um anel.
O anel de inteiros modulo n é um campo finito se e somente se n é primo (isso garante que cada elemento nonzero tem um inverso multiplicativo). Se n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =pk{displaystyle n=p^{k}} é um poder principal com k > 1, existe um campo finito único (até isomorfismo) GF(n)= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =Fn{displaystyle mathrm {GF} (n)=mathbb {F} _{n}} com n elementos, mas isso é não Z./nZ.{displaystyle mathbb {Z} /nmathbb {Z} }, que não é um campo porque tem zero-divisores.
O subgrupo multiplicativo de inteiros modulo n é denotado por (Z./nZ.)× × (mathbb {Z} /nmathbb {Z})^{times }}. Isto consiste em um? ? nNão. A superlinha {a}}_{n}} (onde) um é coprime para n), que são precisamente as classes que possuem um inverso multiplicativo. Isso forma um grupo comutativo sob multiplicação, com ordem φ φ (n)(n)}.
Extensão para números reais
Aplicativos
Na matemática teórica, a aritmética modular é um dos fundamentos da teoria dos números, abordando quase todos os aspectos de seu estudo, e também é amplamente usada na teoria de grupos, teoria dos anéis, teoria dos nós e álgebra abstrata. Na matemática aplicada, é usado em álgebra computacional, criptografia, ciência da computação, química e artes visuais e musicais.
Uma aplicação muito prática é calcular somas de verificação dentro de identificadores de número de série. Por exemplo, o International Standard Book Number (ISBN) usa aritmética de módulo 11 (para ISBN de 10 dígitos) ou módulo 10 (para ISBN de 13 dígitos) para detecção de erros. Da mesma forma, os números de contas bancárias internacionais (IBANs), por exemplo, fazem uso da aritmética do módulo 97 para detectar erros de entrada do usuário em números de contas bancárias. Em química, o último dígito do número de registro CAS (um número de identificação exclusivo para cada composto químico) é um dígito de verificação, que é calculado tomando o último dígito das duas primeiras partes do número de registro CAS vezes 1, o dígito anterior vezes 2, o dígito anterior vezes 3 etc., somando tudo isso e calculando a soma módulo 10.
Na criptografia, a aritmética modular sustenta diretamente os sistemas de chave pública, como RSA e Diffie-Hellman, e fornece campos finitos que fundamentam curvas elípticas e é usado em uma variedade de algoritmos de chave simétrica, incluindo Advanced Encryption Standard (AES), International Data Algoritmo de Criptografia (IDEA) e RC4. RSA e Diffie-Hellman usam exponenciação modular.
Na álgebra computacional, a aritmética modular é comumente usada para limitar o tamanho dos coeficientes inteiros em cálculos e dados intermediários. É usado na fatoração polinomial, um problema para o qual todos os algoritmos eficientes conhecidos usam aritmética modular. É usado pelas implementações mais eficientes do máximo divisor comum polinomial, álgebra linear exata e algoritmos de base de Gröbner sobre os inteiros e os números racionais. Conforme postado no Fidonet na década de 1980 e arquivado no Rosetta Code, a aritmética modular foi usada para refutar a conjectura da soma de poderes de Euler em um microcomputador Sinclair QL usando apenas um quarto da precisão inteira usada por um supercomputador CDC 6600 para refutar duas décadas antes por meio de uma busca de força bruta.
Na ciência da computação, a aritmética modular é frequentemente aplicada em operações bit a bit e outras operações que envolvem estruturas de dados cíclicas e de largura fixa. A operação de módulo, conforme implementada em muitas linguagens de programação e calculadoras, é uma aplicação da aritmética modular que é frequentemente usada neste contexto. O operador lógico XOR soma 2 bits, módulo 2.
Na música, o módulo aritmético 12 é usado na consideração do sistema de temperamento dodecafônico igual, onde a oitava e a equivalência enarmônica ocorrem (ou seja, alturas em uma proporção de 1:2 ou 2:1 são equivalentes, e C -sharp é considerado o mesmo que Ré bemol).
O método de lançar noves oferece uma verificação rápida de cálculos aritméticos decimais realizados à mão. Baseia-se na aritmética modular modulo 9, e especificamente na propriedade crucial que 10 ≡ 1 (mod 9).
O módulo aritmético 7 é usado em algoritmos que determinam o dia da semana para uma determinada data. Em particular, a congruência de Zeller e o algoritmo Doomsday fazem uso intenso da aritmética do módulo-7.
De forma mais geral, a aritmética modular também tem aplicação em disciplinas como direito (por exemplo, repartição), economia (por exemplo, teoria dos jogos) e outras áreas das ciências sociais, onde a divisão proporcional e a alocação de recursos desempenham um papel central na análise.
Complexidade computacional
Como a aritmética modular tem uma gama tão ampla de aplicações, é importante saber o quão difícil é resolver um sistema de congruências. Um sistema linear de congruências pode ser resolvido em tempo polinomial com uma forma de eliminação Gaussiana, para detalhes veja o teorema da congruência linear. Algoritmos, como a redução de Montgomery, também existem para permitir que operações aritméticas simples, como multiplicação e módulo de exponenciação, sejam executadas com eficiência em grandes números.
Algumas operações, como encontrar um logaritmo discreto ou uma congruência quadrática, parecem ser tão difíceis quanto a fatoração inteira e, portanto, são um ponto de partida para algoritmos criptográficos e criptografia. Esses problemas podem ser NP-intermediários.
Resolver um sistema de equações aritméticas modulares não lineares é NP-completo.
Exemplos de implementação
Abaixo estão três funções C razoavelmente rápidas, duas para realizar multiplicação modular e uma para exponenciação modular em inteiros sem sinal não maiores que 63 bits, sem estouro das operações transitórias.
Uma maneira algorítmica de computar um)) b)(modm){displaystyle acdot b{pmod {m}}}:
- Não. O que se passa?(- Não. um, - Não. b), - Não. m) ( se (!(um | b)) > (O que se passa? < < 32) retorno um * b) % m; - Não. D = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0, Mp2 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = m > 1; - Não. Eu...; se (um - Sim. m) um % m; se (b) - Sim. m) b) % m; para (Eu... = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0; Eu... < 64; ++Eu...) ( D = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = (D > Mp2) ? (D < < 1) - Não. m : D < < 1; se (um > 0x8000000000000000ULL) D - Sim. b); se (D - Sim. m) D - Sim. m; um * 1; ? retorno D;?
Em arquiteturas de computador onde um formato de precisão estendida com pelo menos 64 bits de mantissa está disponível (como o tipo long double da maioria dos compiladores x86 C), a seguinte rotina é mais rápida do que uma solução usando um loop, empregando o truque que, por hardware, a multiplicação de ponto flutuante resulta nos bits mais significativos do produto mantidos, enquanto a multiplicação inteira resulta nos bits menos significativos mantidos:
- Não. O que se passa?(- Não. um, - Não. b), - Não. m) ( longo duplo x; - Não. c; - Não. R; se (um - Sim. m) um % m; se (b) - Sim. m) b) % m; x = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = um; c = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = x * b) / m; R = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = (- Não.)um * b) - Não. c * m) % (- Não.)m; retorno R < 0 ? R + m : R;?
Abaixo está uma função C para realizar a exponenciação modular, que usa a função mul_mod implementada acima.
Uma maneira algorítmica de computar umb)(modm){displaystyle a^{b}{pmod Não.:
- Não. - Não.(- Não. um, - Não. b), - Não. m) ( - Não. R = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = m - Sim. 1 ? 0 : 1; enquanto (b) > 0) ( se (b) > 1) R = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = O que se passa?(R, um, m); b) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = b) > 1; um = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = O que se passa?(um, um, m); ? retorno R;?
No entanto, para que todas as rotinas acima funcionem, m não deve exceder 63 bits.
Contenido relacionado
Teoria do jogo
Problema de decisão
Teoria da complexidade computacional
Pré-processando
Olimpíada Internacional de Informática