Sinto-me atraĂdo por tarefas como o problema de Collatz. Eles sĂŁo fĂĄceis de formular e treinar perfeitamente, especialmente o pensamento algorĂtmico, o que Ă© muito Ăștil para o programador.
A tarefa Ă© formulada de maneira bastante simples:
Tome qualquer nĂșmero natural n. Se for par, divida-o por 2 e, se for Ămpar, multiplique por 3 e adicione 1 (obtemos 3n + 1). Realizamos as mesmas açÔes no nĂșmero resultante, e assim por diante.
A hipĂłtese de Collatz Ă© de que, independentemente do nĂșmero inicial n que tomarmos, mais cedo ou mais tarde obteremos um.
Algoritmicamente, fica assim:
while (number > 1) { if (number % 2 === 0) number = number / 2; else number = 3 * number +1; }
Por exemplo, considere n = 5. Ă Ămpar, o que significa que realizamos a ação no Ămpar, ou seja, 3n + 1 => 16. 16 Ă© par, significa que realizamos a ação no par, ou seja, n / 2 => 8 => 4 => 2 => 1.
A sequĂȘncia formada em n = 5: 16, 8, 4, 2, 1.
Peço que vocĂȘ me perdoe pela minha matemĂĄtica, deixe-me saber se eu cometer algum erro em algum lugar.Vamos destacar o nĂșmero total de informaçÔes na unidade e o nĂșmero real de informaçÔes na unidade. Indique estas etapas.
Considere a sequĂȘncia para n = 7:
22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
Existem 16 etapas no total, e as
verdadeiras etapas que sĂŁo realmente lançadas em outro conjunto de nĂșmeros sĂŁo 5:
7, 11, 17, 13, 5.
O verdadeiro passo Sa (n) Ă© o nĂșmero de operaçÔes
3n + 1 no nĂșmero necessĂĄrio para alcançar a unidade.
A ideia Ă© claramente demonstrada pelo exemplo de uma tabela:
Sn (0) | Sn (1) | Sn (2) | Sn (3) | Sn (4) | Sn (5) | Sn (6) | Sn (7) | Sn (8) | Sn (9) | Sn (10) | Sn (11) | Sn (12) |
---|
2 | 5 | 3 | 17 | 11 | 7 | 9 | 25 | 33 | 43 | 57 | 39. | 105 |
4 | 10 | 6 | 34 | 22 | 14 | 18 | 49. | 65 | 86 | 59. | 78 | 203 |
8 | 20 | 12 | 35 | 23 | 15 | 19 | 50. | 66. | 87 | 114 | 79 | 209 |
16 | 21 | 13 | 68 | 44 | 28. | 36. | 51 | 67 | 89 | 115 | 153 | 210. |
32. | 40. | 24 | 69 | 45 | 29 | 37. | 98 | 130 | 182 | 118 | 156 | 211 |
64 | 42. | 26 | 70 | 46. | 30 | 38. | 99 | 131 | 173 | 119 | 157 | 406 |
128 | 80 | 48. | 75 | 88 | 56. | 72 | 100 | 132 | 174 | 228 | 158 | 407 |
256 | 84 | 52 | 136 | 90 | 58. | 74 | 101 | 133 | 177 | 229 | 305 | 409 |
512 | 85 | 53 | 138 | 92 | 60 | 77 | 102 | 134 | 178 | 230 | 306 | 418 |
Nessa tabela, a ordem, seu prĂłprio padrĂŁo, jĂĄ estĂĄ visĂvel.
Como vocĂȘ pode ver, o poder de dois nunca se tornarĂĄ estranho, entĂŁo tudo se resume a uma divisĂŁo simples.
Uma sequĂȘncia de Sa (0) Ă© formada por apenas 1 fĂłrmula.
NĂŁo Ă© preciso dar passos verdadeiros: pela simples divisĂŁo tudo serĂĄ reduzido Ă unidade.
Sabendo disso, vocĂȘ pode soltar da tabela todos os nĂșmeros que sĂŁo mĂșltiplos de dois.
Sn (0) | Sn (1) | Sn (2) | Sn (3) | Sn (4) | Sn (5) | Sn (6) | Sn (7) | Sn (8) | Sn (9) | Sn (10) | Sn (11) | Sn (12) |
---|
| 5 | 3 | 17 | 11 | 7 | 9 | 25 | 33 | 43 | 57 | 39. | 105 |
| 21 | 13 | 35 | 23 | 15 | 19 | 49. | 65 | 87 | 59. | 79 | 203 |
| 85 | 53 | 69 | 45 | 29 | 37. | 51 | 67 | 89 | 115 | 153 | 209 |
| 341 | 113 | 75 | 93 | 61 | 77 | 99 | 131 | 173 | 119 | 157 | 211 |
| 1365 | 213 | 141 | 181 | 117 | 81 | 101 | 133 | 177 | 229 | 305 | 407 |
Agora Ă© mais difĂcil entender o padrĂŁo, mas existe um. O mais interessante agora Ă© a formação de sequĂȘncias. NĂŁo apenas assim, o prĂłximo dĂgito apĂłs 5 Ă© 21 e depois Ă© 85.
Na verdade,
Sa (1) Ă© a sequĂȘncia
A002450 (0, 1, 5, 21, 85, 341, 1365, 5461, 21845, 87381 ...). Ă formado pela fĂłrmula:
A mesma sequĂȘncia pode ser descrita por uma fĂłrmula recursiva:
E assim por diante ...
Uma sĂ©rie do primeiro passo Ă© construĂda, embora possa continuar indefinidamente. Vamos para o passo dois. A fĂłrmula de transição para a etapa 2 pode ser expressa a partir de uma fĂłrmula Ămpar.
Sabendo que vamos compartilhar o resultado
vĂĄrias vezes, pode ser escrito como
onde
- nĂșmero de divisĂ”es.
A fĂłrmula final assume a forma:
Também introduzimos um ajuste para
como
para que a opção de dividir o nĂșmero nĂŁo um mĂșltiplo de 3 por 3 aconteça.
Vamos verificar a fĂłrmula, jĂĄ que o alfa Ă© desconhecido, verifique 5 alfa consecutivos:
Assim, a sequĂȘncia do segundo passo começa a se formar. No entanto, pode-se notar que 113 nĂŁo estĂĄ em sequĂȘncia, Ă© importante lembrar que a fĂłrmula foi calculada a
partir de 5 .
n = 113 de fato:
Para resumir:
Lote de gerado por função de cada elemento do conjunto de .
EntĂŁo, sabendo disso, vocĂȘ ainda pode reduzir a tabela removendo todos os mĂșltiplos de alfa.
Sn (0) | Sn (1) | Sn (2) | Sn (3) | Sn (4) | Sn (5) | Sn (6) | Sn (7) ... |
---|
| 5 | 3 | 17 | 11 | 7 | 9 | ... |
| | 113 | 75 | 201 | 267 | 715 | ... |
| | 227 | 151 | 401 | 1073 | 1425 | ... |
Para deixar claro, aqui estĂĄ um exemplo de como os elementos de um conjunto de
gerar elementos do conjunto de
para alfa de 0 a 4.
P (k) = 3 | P (k) = 113 | P (k) = 227 |
---|
3 de α = 0 gera: Nada
13 de α = 1 gera: 17 69 277 1109 4437
53 de α = 2 gera: 35 141 565 2261 9045
213 de α = 3 gera: Nada
853 de α = 4 gera: 1137 4549 18197 72789 291157
| 113 de α = 0 gera: 75 301 1205 4821 19285
453 de α = 1 gera: Nada
1813 de α = 2 gera: 2417 9669 38677 154709 618837
7253 de α = 3 gera: 4835 19341 77365 309461 1237845
29013 de α = 4 gera: Nada
| 227 de α = 0 gera: 151 605 2421 9685 38741
909 de α = 1 gera: Nada
3637 de α = 2 gera: 4849 19397 77589 310357 1241429
14549 de α = 3 gera: 9699 38797 155189 620757 2483029
58197 de α = 4 gera: Nada
|
Combinando esses conjuntos, obtemos o conjunto de Sa (3):
17, 35, 69, 75, 141, 151, 277, 301, 565, 605, 1109, 1137, 1205, 2261, 2275, 2475, 2417, 2421, 4437, 4549, 4821, 4835, 4849, 9045, 9101, 9669, 9685, 9699, 17749, 18197, 19285, 19341, 19397, 19417 ...
Além disso, remover o grau
nĂłs obtemos:
17, 75, 151 ...
Ou seja, tudo se resume a:
Por que em algum lugar e em algum lugar ?Voltar Ă sequĂȘncia A002450. Existe uma dependĂȘncia interessante:
- nĂŁo produz seqĂŒĂȘncias filho.
- produz seqĂŒĂȘncias filho quando
.
- produz seqĂŒĂȘncias filho quando
.
Existem apenas trĂȘs matrizes filho em potencial para um nĂșmero.
Se aplicado a uma fĂłrmula recursiva, entĂŁo:
Função onde - qualquer nĂșmero mĂșltiplo de 3 forma um conjunto vazio âš.
Função onde - qualquer nĂșmero gerado Ă s forma o conjunto de nĂșmeros K pertencentes ao conjunto de nĂșmeros naturais N.
Função Ă s forma o conjunto de nĂșmeros L pertencentes ao conjunto de nĂșmeros naturais N.
Obviamente, isso pode ser reduzido de alguma forma a uma formulação mais rigorosa e baseada em evidĂȘncias.
Na verdade, Ă© assim que as seqĂŒĂȘncias sĂŁo formadas na hipĂłtese de Collatz.
Ainda hĂĄ um detalhe. Ă necessĂĄrio restaurar conjuntos completos de etapas absolutas dos conjuntos que obtivemos.
FĂłrmula para Ămpar:
AlĂ©m dos estranhos, vocĂȘ precisa restaurar muitos pares. Para fazer isso, lembre-se da fĂłrmula:
Resta apenas correlacionar todos juntos:
A versĂŁo final:
Assim, qualquer k pode gerar uma sequĂȘncia.
Ă o inverso verdade que qualquer um dos nĂșmeros naturais definitivamente pertence a qualquer sequĂȘncia de ?
Nesse caso, Ă© perfeitamente possĂvel que Collatz estivesse certo.
Para o exemplo final da implementação da função javascript:
function collatsSequence( number, sequenceLength, alpha, epsilon ) {