Exercícios 6.6 Exercícios em Sage
Os seguintes exercícios são menos sobre subgrupos e mais sobre como usar Sage como uma ferramenta experimental. Eles são criados para ajudar você ser mais experiente e expressivo enquanto você escreve os comandos em Sage. Teremos várias oportunidades de trabalhar com classes laterais e subconjuntos nos próximos capítulos. Estes exercícios não contém muita orientação e ficam cada vez mais desafiantes a medida que continuamos. Eles são formulados para que você explore, ou confirme, resultados apresentados neste capítulo ou em capítulos anteriores.
Importante: Você deve responder cada um dos três problemas com uma única (complicada) linha de Sage que tenha como resultado True
. Uma “única linha” quer dizer que você terá vários comandos aglomerados de jeitos complexos. Não significa vários comando em Sage separados por semi-colunas e escritos em uma única linha. Não esqueça de incluir passos intermediários usados para construir sua solução, mas use intervalos de valores menores para que o sistema não fica sobrecarregado com várias outputs. Isso irá ajudar você e o corretor do seu trabalho, tenha confiança que a versão final está correta.
Quando você verificar a divisibilidade dos inteiros, lembre que range()
gera inteiros comuns, que são simples com relação sua funcionalidade. O comando srange()
produz inteiros Sage, que tem mais capacidades. (Vejo o último exercíci como um exemplo.) E recorde que uma lista é uma forma compacta de examinar muitoas possibilidades de uma vez.
1.
Use .subgroups()
para encontrar um exemplo de um grupo \(G\) e um inteiro \(m\text{,}\) tal que (a) \(m\) divide a ordem de \(G\text{,}\) e (b) \(G\) não tem subgrupo de ordem \(m\text{.}\) (Não use o grupo \(A_4\) como \(G\text{,}\) pois este está no texto.) Escreva somente uma linha de código Sage que contenha toda a lógica necessária para produzir \(m\) como resposta. (Pode dar um nome simples a seu grupo em uma linha anterior e então chamar ele por esse nome.) A seguir temos um exemplo mutio simples que pode ajudar a estrutura da sua resposta.
2.
Verifique a veracidade do Pequeno Teorema de Fermat (em qualquer uma de suas variantes) usando o número composto \(391=17\cdot 23\) como escolha de base (ou \(a\) ou \(b\)), e para \(p\) passando por todos os valores primos entre \(100\) e \(1000\text{.}\)
Construa a construção de forma devagar — faça uma lista de potências (começando com poucos primos), então faça uma lista de potências reduzidas pela aitmética modular e depois uma lista de comparações com o valor previsto, agora verifique todos estes valores lógicos resultantes da comparação. Esta é uma estratégia útil em muitos problemas similares. Finalmente você poderá escrever uma só linha que realize a verificação completa e devolva True
. A seguir temos algumas dicas que podem ser úteis.
3.
Verifique que o grupo de unidades mod \(n\) tem ordem \(n-1\) quando \(n\) é primo, novamente para todos os primos entre \(100\) e \(1000\text{.}\) Assim como antes, seu resultado deve ser simplesmente True
, uma única vez, indicando que a proposição sobre a ordem é verdadeira para todos os primos examinados. Como antes, construa sua solução passo a passo e com conjuntos menores de primos no começo. Expresse sua resposta como uma só linha de código Sage.
4.
Verifique o Teorema de Euler para todos os valores \(0\lt n\lt 100\) y para \(1\leq a \leq n\text{.}\) Isso requerirá proposições for
aninhadas com um condicional. Novamente, a seguir temos um pequeno exemplo que pode ser útil para construir sua linha única de código Sage. Note o uso de srange()
neste ejemplo.
5.
O grupo simétrico em \(7\) símbolos, \(S_7\text{,}\) tem \(7! = 5040\) elementos. Considere as seguintes perguntas sem utilizar Sage, baseado no que sabemos sobre as ordens dos elementos em grupos de permutações (Exercício 5.3.13).
Qual é a maior ordem possível?
Quantos elementos existem de ordem \(10\text{?}\)
Quantos elementos existem de ordem \(1\text{?}\)
Quantos elementos existem de ordem \(2\text{?}\)
Qual é o menor inteiro positivo para que não haja elemento dessa ordem?
Estas perguntas serão mais fáceis se você for mais familiar com uso de coeficientes binomiais para contar em situações similarmente complexas. Em qualquer caso, pense um pouco em cada questão (e talvez em alguma outra que lhe venha na cabeça) antes de começar a escrever em Sage.
Agora, calcule quantos elementos existem de cada ordem usando o método .order()
, e inclua isto em uma lista exaustiva que contenha o número de elemntos de cada ordem. Você pode verificar seu trabalho (ou checar Sage) usando o comando sum()
para somar esta lista e esperando econtrar \(5040\text{.}\)
Comente o processo de primeiro estudar estas perguntas sem ajuda computacional e depois novamente com Sage. Para que valores de \(n\) você acha que Sage seria um tanto quanto lento e sua mente mais rápida?