Calcular aproximação de raiz quadrada
Publicado por Israel Silvino Melo Batista (última atualização em 28/05/2015)
[ Hits: 11.314 ]
Fiz um programa para aproximar o cálculo da raiz quadrada usando o mesmo algoritmo que eu uso na vida real.
Esse algoritmo mostrou-se surpreendentemente rápido, ele tende rapidamente para a raiz quadrada do número e aparentemente não gasta muito em termo de custos computacionais. Consegui calcular com precisão a raiz quadrada de um número gigante usando 1 como chute e 100 iterações e mesmo que eu colocasse 10000 iterações ainda assim a resposta seria quase instantânea.
Lembrando que esse programa é apenas para fins didáticos, para usar a raiz quadrada em programas Python use o método/função sqrt do módulo math.
#coding: utf8
# Programa para fins didáticos, para usar a raiz quadrada
# em seus programas use o método sqrt do módulo math
from __future__ import division
def raizq(x, chute = 1, i =20):
# Calcula uma aproximação da raiz quadrada x após i iterações
if i < 1:
raise ValueError("É necessário pelo menos uma iteração")
if chute < 1:
chute = 1 # O chute precisa ser maior ou igual a 1, senão o resultado será incorreto
if x < 0:
return complex(0, raizq(-x, chute, i)) # A raíz quadrada de um número negativo é um número complexo
else:
for k in range(i):
chute = 1/2*(chute+x/chute)
return chute
Gerador de PIS/PASEP em Python
Validador de cartão de crédito
Cálculo de pontuação em Tranca
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Tentando fazer um "linux ricing" mas falhando miseravelmente... (2)
Elilo e Sofrimento no Slackware (3)
Não consigo instalar as bibliotecas em Python pelo terminal. (1)









