Changes

Jump to navigation Jump to search
1 byte removed ,  13:30, 9 December 2015
/* 4. Nós queremos olhar para os coeficientes binomiais C(2n, n). Especificamente, para muitos exemplos, nós queremos determinar se C(2n, n) é divisível pelo quadrado de um primo, e se o maior expoente na fatorização do primo cresce sem limites e...
Ao leitor é deixado explorar os casos restantes, e conjecturar uma fórmula no caso geral.
=====4. Nós queremos olhar para os coeficientes binomiais <math>C(2n, n)</math>. Especificamente, para muitos exemplos, nós queremos determinar se <math>C(2n, n)</math> é divisível pelo quadrado de um primo, e se o maior expoente na fatorização do primo cresce sem limites enquanto “n” ''n'' cresce.===== '''Solução'''
Primeiro tentaremos um exemplo, para ver o que exatamente desejamos fazer, e então escrever um programa.
'''''c := binomial(6,3); '''''
Nós usamos a função “ifactors” ''ifactors'' (o “i” '''i''' significa “integer”'''integer''') para fatorar “c”'''c'''. Essa função é uma das várias do Maple que deve ser definida “readlib” '''readlib''' antes que possamos usá-la. Isso significa que pedimos para o Maple encontrar a função na sua biblioteca, e carregá-la na sessão atual.
'''''readlib(ifactors): '''''
'''''ifacts := ifactors(c); '''''
A página de ajuda para “ifactors” ''ifactors'' explica o que este resultado significa. Ela diz que <math>20 = 1.2^2.5^1</math>. Nós estamos interessados nos expoentes dos primos. Primeiro, pegamos o segundo elemento da lista, para obter a lista dos primos e expoentes.
'''''facts := ifacts[2]; '''''
Isso nos dá uma lista de listas, onde o primeiro elemento em cada lista é o fator primo, e o segundo é a multiplicidade (o número de vezes que o fator aparece) daquele primo. Então nós queremos percorrer a lista e obter o segundo elemento de cada sublista.
'''''powers := seq(x[2],x=facts); '''''
Então nós usamos a função “max” ''max'' para encontrar o maior expoente.
'''''max(powers); '''''
Se o maior exemplo é maior que 1, então <math>C(2n, n)</math> é divisível pelo quadrado de um primo. Nesse caso, o maior exemplo 2 é, de fato, maior que 1, e <math>C(6, 3)</math> sem dúvida é divisível por <math>5^2</math>.
Combinando esses passos, agora nós escrevemos um programa que dado “n”'''n''', retorna o maior expoente na fatorização de <math>C(2n, n)</math>.
'''''LargestExpon := proc(n) '''''
'''''local c, ifacts, x; '''''
'''''end: '''''
'''''LargestExpon(6); '''''
Agora nós vamos escrever outra rotina que vai calcular o maior expoente para muitos valores de “n”'''n''', e armazenar os resultados numa tabela.
'''''Manyn := proc(maxn) '''''
'''''local results, i; '''''
Rode o programa e veja o que acontece.
'''''Manyn(10): '''''
Parece que 1, 2 e 4 são valores de “n” '''n''' tais que <math>C(2n, n)</math> não é divisível pelo quadrado de um primo.
'''''binomial(8,4); '''''
'''''ifactors(%); '''''
'''''plot([ seq([i,vals[i]],i=1..200)],style=POINT, '''''
'''''title=`Growth of Largest Exponents`); '''''
Para comparar, tente novamente com ainda mais valores de “n”'''n'''.
'''''vals := Manyn(300): '''''
Dessa vez, plote com os pontos que participaram, para ver que diferença isso faz.
90

edits

Navigation menu