Título: Problemas con raíces. Publicado por: KaizerPlazz en 11 Octubre 2016, 00:50 am Hola soy nuevo tanto en el foro como programando y estoy siguiendo unos videos tutoriales (c/c++) en este video te explica como sacar la raíz cuadrada de un numero sin la librería math , pero no logro entenderlo , si entendí como sacarla con sqrt pero de este modo no . Alguien me podría orientar como funciona este código ? Gracias!
Código
Mod: Los códigos deben ir en etiquetas GeSHi Título: Re: Problemas con raíces. Publicado por: engel lex en 11 Octubre 2016, 02:00 am te recomiendo que coloques un printf a raíz dentro del ciclo...
ese es el metodo más simple, aunque menos eficientes más eficiente son con series de tailor... (aqui algo sobre eso) (https://foro.elhacker.net/programacion_cc/calculando_funciones_trigonometricas_sin_librerias_series_de_taylor_aporte-t443463.0.html;msg2044800#msg2044800) Título: Re: Problemas con raíces. Publicado por: KaizerPlazz en 11 Octubre 2016, 02:16 am Gracias pero mi duda es que no entiendo el código que puse , si alguien me puede dar una explicación sobre este codigo , o sea quiero saber como funciona lo que puse.
Código: #include <stdio.h> Le agregue printf al ciclo n-n Título: Re: Problemas con raíces. Publicado por: oldaccount en 11 Octubre 2016, 02:20 am Hola KaizerPlazz.
Te dejo el código fuente limpio y explicado: Código
Salida del programa: Código: 2 Código: 9 Código: 163.281 Saludos. Título: Re: Problemas con raíces. Publicado por: KaizerPlazz en 11 Octubre 2016, 02:57 am Hola KaizerPlazz. Te dejo el código fuente limpio y explicado: Código
Salida del programa: Código: 2 Código: 9 Código: 163.281 Saludos. Muchas gracias , pero el 0.00001 porque se pone? y de donde se saca el valor de la raiz o squareroot , yo se que tiene que ser menor que el numero , es que soy nuevo en esto. Título: Re: Problemas con raíces. Publicado por: engel lex en 11 Octubre 2016, 03:05 am pon un printf en el click y verás como funciona, verás como el valor cambia hasta dar el resultado, ese 0.0001 es un valor que se le llama "epsilon" que en general es un "nivel de precisión"
Título: Re: Problemas con raíces. Publicado por: oldaccount en 11 Octubre 2016, 07:38 am Muchas gracias , pero el 0.00001 porque se pone? y de donde se saca el valor de la raiz o squareroot , yo se que tiene que ser menor que el numero , es que soy nuevo en esto. Se prueba continuamente hasta llegar al resultado: Primero se prueba si 0.00001 es la raíz cuadrada de input, luego se prueba si 0.00002 es la raíz cuadrada de input, luego se prueba si 0.00003 es la raíz cuadrada de input, etc. Cada vez que se comprueba que squareRoot no es la raiz cuadrada de input, ((squareRoot * squareRoot) < input), se incrementa en 0.00001 y se vuelve a probar. Simplemente se prueban todos los valores a partir del 0.00001 sucesivamente hasta detectar que se ha encontrado el que queremos. Un ejemplo muy sencillo sería encontrar la raíz cuadrada del 9. Para ello podríamos comprobar si 1*1 es menor que 9 (sí lo es), si 2*2 es menor que 9 (sí lo es), si 3*3 es menor que 9 (no lo es). Como 3 es el primer número que hemos encontrado que al multiplicarlo por sí mismo no es menor que 9, ese es el resultado. Saludos. Título: Re: Problemas con raíces. Publicado por: KaizerPlazz en 14 Octubre 2016, 01:11 am Claro entonces como siempre se cumple que squareroot es menor que input se sigue sumando y sumando pero como sabe el programa cuando tiene que parar?
Por ejemplo la raiz cuadrada de 5 es.. 2 o 2,23 (en el programa 2,2361) Como sabe el programa que tiene que parar en el numero 2 ? Gracias Título: Re: Problemas con raíces. Publicado por: engel lex en 14 Octubre 2016, 01:19 am 2*2 < 5? +=0.0001
2.0001*2.0001 < 5? +=0.0001 ... 2.2361*2.2361 < 5? fin Título: Re: Problemas con raíces. Publicado por: KaizerPlazz en 14 Octubre 2016, 01:32 am Pero si 2*2 es 4 es menor que el input , pero aun asi el programa se detiene en 2 . Disculpe es que soy nuevo y es un quilombo esto xD o yo soy muy duro :P
Título: Re: Problemas con raíces. Publicado por: engel lex en 14 Octubre 2016, 01:38 am no entiendo el programa se detiene en 2,000000? yo lo corro y me da correctamente 2,236075
Título: Re: Problemas con raíces. Publicado por: hsk75rv en 14 Octubre 2016, 02:31 am no entiendo el programa se detiene en 2,000000? yo lo corro y me da correctamente 2,236075 Hummm, Veo que el problema está en esta línea Código pues con esa, imprime los 2.236075, mientras que si tenemos el modificador Código pues da el resultado de 2,000000 :D . |