Raiz quadrada babilônica em Python

Uma forma de encontrar a raiz quadrada de um número é com um método conhecido desde os babilônios.

Digamos que eu queira encontrar a raiz de N = 81.

Escolho um número qualquer, digamos a = 5.

Fazemos a conta (a + N/a)/2

Dá (5 + 81/5) / 2 = 10,6

E continuamos a fazer esse mesma conta:

(10,6 + 81/10,6) /2 = 9,12

Os próximos números já dá 9, raiz de 81.

Outro exemplo, quero a raiz de N = 121 e começo com a = 80:

80,00
40,76
21,86
13,70
11,27
11,00
11,00
11,00
11,00

Em poucos passos, converge para 11, raiz de 121.

Um código simples em Python para implementar a raiz babilônica:

N = 81
a = 5
precisao = 0.01 # Precisão desejada

dif = 10000

while dif > 0.01:
prov = (a + N/a)/2
dif = abs(prov – a)
a = prov
print(prov)

Código para download: https://drive.google.com/file/d/1q1Kz1McdIpEl_xT_4HafxtW1-ILeNor2/view?usp=sharing

Permutações

O Python tem um pacote muito útil para gerar permutações.

import itertools

permutacoes = list(itertools.permutations([0,1,2]))
print(permutacoes)

O resultado é uma lista. Cada tuplas é uma permutação.

[(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]

Note que são 3! permutações.

Em Python, math.factorial(3) = 6.

Ou seja, a cautela aqui é que o número pode crescer exponencialmente.

Por exemplo, 10! = 3.628.800

Veja também:

As linguagens do Analytics

No último fórum da Informs (a mais importante associação americana de Operations Research), em Chicago, citaram Pythons umas 6 vezes, Excel também umas 6 vezes, Java uma vez (de um fornecedor que disse que estava mudando para Python), R nenhuma mênção.

Isto mostra a força do Python como a língua franca do Analytics da atualidade.

O pessoal que citou Excel o fez metade das vezes para falar mal, outra metade para dizer que o usuário final utiliza. Isto mostra a resiliência do Excel, que apesar de todas as críticas, continua firme e forte nas grandes corporações – por seu poder e facilidade de uso. Há até uma piada que diz: “Todo o sistema financeiro mundial é baseado em Excel”.

Um último comentário: no final das contas, não interessa muito a linguagem, e sim ter uma base teórica forte e capacidade de execução. Linguagens e ferramentas vêm e vão. Até hoje tem gente utilizando Fortran muito bem, por exemplo.

https://ideiasesquecidas.com/