elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: [Ayuda novato] Raiz cuadrada en C sin sqrt en: 6 Diciembre 2013, 18:21 pm
bueno escribo este post sin haberme leido las respuestas en profundidad, antes que nada agradeceros el esfuerzo, voy a mirarme seriamente e ir planteando todo, a ver que tal se da la cosa....
2  Programación / Programación C/C++ / Re: [Ayuda novato] Raiz cuadrada en C sin sqrt en: 6 Diciembre 2013, 12:49 pm
Con todo el respeto del mundo, ese algoritmo es una auténtica caca. Primero porque es muy lento (ponle la raíz de 500 a ver que tal), segundo porque es muy poco preciso.

Lo que te están pidiendo esque hagas las series de taylor, la raíz de x puede expresarse como el limite de la siguiente sucesión:

Siendo x el número del que quieres obtener la raíz. El error con el que estás calculando la raíz puede expresarse como:

De modo que si quieres calcular de raíz de un numero con una precisión de 1e-15 (15 decimales de precisión). Tendrías que empezar en a(1) y ir aplicando la sucesión a(n). En cada calculo haces la resta con el valor anterior y paras cuando el error sea menor a 1e-15.

Ese es algoritmo que usa sqrt, debería darte el mismo resultado (puede variar en los decimales 16-17, pero es un error despreciable).

Pregunta si tienes alguna duda.

PD: No lo he dicho, pero para tener 15 decimales de precisión necesitaras usar double y no float

buena respuesta.. por ahora estoy empezando con C y no sé como meter ese tipo de límites en el compilador, pero suena bastante interesante y me pondré a investigarlo. desde luego, mi algoritmo era un poco "de andar por casa"... saludos y gracias
3  Programación / Programación C/C++ / Re: [Ayuda novato] Raiz cuadrada en C sin sqrt en: 6 Diciembre 2013, 12:46 pm
joder, que despiste... muchas gracias, a ver si voy corrigiendo estos errores tan tontos. un saludo!!
4  Programación / Programación C/C++ / [Ayuda novato] Raiz cuadrada en C sin sqrt en: 6 Diciembre 2013, 11:55 am
Hola! soy nuevo por aqui. Estoy estudiando ingeniería, y en una asignatura de informática han mandado hacer un programa para calcular la raíz cuadrada de un número real N sin usar la funcion sqrt sin la libreria math. Entonces, pensé en hacer una iteracíon desde i=0.1 a i=X hasta que i*i=>N... pero no me salen las cosas como quiero. os pongo el código;

Código:
#include<stdio.h>

void main(void)
{
float n,res;
float i=0;
printf ("Introduzca variable n\n");
scanf ("%f",&n);

do
{
i= i+0.1;
res= i*i;
}while (res>=n);

printf ("\nLa raíz cuadrada de %f es %f",n,i);

getch();
}

sabéis ayudarme de alguna manera? gracias!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines