Calcular aproximação de raiz quadrada
Publicado por Israel Silvino Melo Batista (última atualização em 28/05/2015)
[ Hits: 11.018 ]
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
Algoritmo de Dijkstra em Python com visualização em PyGraphviz
Compressão de série numérica em Python
Árvore binária de busca do tipo splay
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Minecraft Launcher para Arch Linux
Instalar o Apache, MySQL e PHP no Oracle Linux 8
Resolvendo o erro "libQt6Widgets.so.6: cannot open shared object file" no Linux
aplicativos criados com webapp-manager não aparecem no menu do xfce (0)
Como bloquear e desbloquear papel de parede no Ubuntu 24.04 (1)