Calcular aproximação de raiz quadrada
Publicado por Israel Silvino Melo Batista (última atualização em 28/05/2015)
[ Hits: 11.346 ]
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
Calcula a idade da pessoa em dias
Organizador de Arquivos em Python + tkinter
m2psp - conversor de vídeo para o formato de psp
Calcula quantos dias uma pessoa viveu
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
NixOS + NVIDIA antiga: como sobreviver ao driver 595 (GTX 750 Ti / Maxwell)
Conhecendo o tmux: Multiplexador de Terminal
Acessando página do Syncthing fora da máquina local
[Resolvido] Meu monitor suporta 100fps. Por que o máximo é 60fps nos jogos?
OpenClaude - toda IA joga mais que neymar (0)
Novos requisitos de sistema para a versão 26.04 (4)









