PROGRAMACION

T

Buenas....
A ver si me podéis ayudar, tengo q hacer un algoritmos de un programa q haga una raiz cuadrada...
Se q casi , por no decir todos, los lenguajes de programación actuales tienen unas librerías donde estos sub-programas ya están incluidos. Por ejemplo si no recuerdo mal ..en C ....al poner sqrt(variable) ..ya t hace su raíz....pues yo necesito saber como está realizado el agoritmo de esa función la cual se q se encuentra en esa libreria. creo q era mat no se q...
LA PREGUNTA ES:
¿Dónde puedo encotrar esas librerias( de matemáticas) para bajármelas....y como puedo entrar en ellas y ver como está realizado el subprograma?

MUCHAS GRACIAS

Moderador:

Postea en el foro adecuado. Movido a Desarrollo y Diseño Web

cabron

Hombre no creo que necesites ver el código fuente de una de estas librerias para ver el algoritmo de la raiz cuadrada.

El cálculo de la raiz cuadrada es algo muy básico, en cualquier libro de matemáticas encontrarás como se hace.

T

pero hacer un programa ...q t haga una raiz cuadrada sin usas las funciones de las librerias....creo q no es tan facil como parece,....
Ya se hacer una raiz cuadrada...:P...

Asecas

eso en C hay que incluir las librerias con include igual ke en php, eso si tienes el programa instalado tiene que venir por algun lado, yo tenia el de borland y mire la principal, lo unico ke no me enteraba de nada

LiuM

pero weno en vez de usar el atgoritmo de la libreria coges y lo haces casero.

T

Pues bueno a currar se ha dixo......
BUff...q palo..

Decirle al ordena como se hace la raíz cuadrada ..paso a paso......puede ser muy largo.....excepciones...etc...bufff..
Trabajo de xinos.....

(esto lo estoy haciendo para un proyecto de telecos...) de sistemas digitales....voy hacer un circuito electrónico q pasa de polar a binómico...XD...

LiuM

http://www.azillionmonkeys.com/qed/sqroot.html

kizas esta web te puede servir de ayuda, bajando un poco encuentras algoritmos en C. Suerte

javithelong

Sabes que una raiz, es un exponente fraccionario? igual te es util...

Abreu

Raiz N de X = X elevado a 1/N

Si te dan 12 puedes sacar su raiz cuadrada elevandolo a 1/2 por sucesion de sumas o directamente con el operador .

MdeMoUcH

Por si sirve de algo: la librería donde se encuentra al función sqrt es math.h, así que si quieres buscar el algoritmo, basta con buscar en el disco duro math.h, o en el directorio del borland(o el programa que sea) dicha librería, y ya dentro de ella buscar sqrt y ya mirar...

Saludos.
MdeMoUcH

Carcass

Si eres teleco deberías usar el método de Newton por aproximaciones, que no tiene excepciones ni nada raro. Además, copiando no aprendes nada :P

javithelong

Seas lo que seas, a la hora de programar, hazlo de la manera mas sencilla, porque será la mas optima en tiempo de ejecucion y en memoria (por lo menos en este caso si)

Ah, y el tema de errores, creo que el error (para numeros periodicos) sera de 0.00000001, que son los maximos decimales que te da, asi que no se, igual el tal Newton te lo da más exacto en menos tiempo... :P

LOc0

Hala, ponte a programar...

Ejemplo: Cálculo de la raíz de  V¯86.492¯ :
· En primer lugar separamos los números de 2 en 2 comenzando por el final: V¯8'64'92¯
· Empezamos por el primer grupo de cifras obtenido, en este caso el 8

· Ahora tenemos que buscar un número que al elevarlo al cuadrado (o multiplicarlo por sí mismo) sea 8 o se acerque sin pasarse: 2² = 4 y 3² = 9, por tanto, es el 2 y lo restamos.
· Bajamos las dos cifras siguientes: 64

V¯8'64'92¯|_2

  • 4 |

    4 64

    · Ahora tenemos que doblar el resultado (provisional) y añadir un número por el que también tenemos que multiplicar y hallar el 464 o acercarnos sin que nos pasemos, es decir:
    El doble de 2 = 4 => 4_ x _ = 464 ? => 49 x 9 = 441
    · Lo restamos y bajamos las dos últimas cifras.
    · Volvemos a repetir este proceso de doblar el resultado y añadir un número, etc.:

    V¯8'64'92¯|_294

  • 4 |
    4 64 49 x 9 = 441

    • 441

      23 92 584 x 4 = 2336
  • 2336
    56 (Resto)

    Una vez hecho este recordatorio, quisiera comentar el origen o demostración de este procedimiento.
    Supongamos que tenemos un número de dos cifras ab.
    Lo podemos expresar como un binomio (a + b) y su cuadrado será:
    (a + b)² = a² + 2·a·b + b²
    Cuando calculamos el raíz cuadrada en el primer paso lo que hacemos es restar a², por tanto nos queda:
    a² + 2·a·b + b² - a² = 2·a·b + b²
    Sacamos factor común b y obtenemos:
    2·a·b + b² = (2·a + b) · b
    Por tanto, el siguiente paso es doblar el resultado provisional 2·a y añadir un número b por el que también tenemos que multiplicar: (2·a + b) · b
    Lo cual es exactamente el procedimiento que hemos visto anteriormente de como calcular una raíz cuadrada.

Salu2 ;) y de nada.

T

Sólo una plabra:

Olé!!!!!!!!!!!!!!

MUCHISIMAS GRACIAS

Como os lo habeis currado!:D:D:D:D:D:D:

Carcass

Haces eso en teleco y te desnucan XD

Asecas

#15 ¿Por qué dices eso?

S

#16 Porque es cierto.

Asecas

¿Lo de plagiar el algoritmo o lo que ha explicado #13?

P.D: Perdonad mi empanamiento... xD

Carcass

Porque es una chapuza y en teleco no se puede hacer algo tan... tan... así. O_o

LOc0

Qué finolis son algunos (cuantos) xD...

Salu2 y suerte!

PD: Usa el método de Newton(crack entre los cracks ya de paso :D ), quedará como más formal...

PD2: Si no te acuerdas de ese algortimo, no problemo, lo encontrarás sin problemas donde yo encontré el que te pegué arriba :) (Pistilla--> Puedes usar Bolzano pa sacar el valor inicial más óptimol de la sucesión...)

Deathtime

Has probado usar (sqrt 9), en C# la cosa seria mas o menos asi

return Math.Sqrt(9);

esto seria para sacar la raiz cuadrada de 9.

Supongo que en C o C++ la operacion debe ser algo parecida.

Carcass

Hombre... si le dicen que tiene que hacer el algoritmo... no creo que les valga llamar a una función ya hecha XD

Usuarios habituales