Foros del Web » Programando para Internet » Javascript »

Problema/Desafio al querer 1000 decimales

Estas en el tema de Problema/Desafio al querer 1000 decimales en el foro de Javascript en Foros del Web. Tengo el siguiente problema: Necesito generar raíces cuadradas de cualquier número (facil con Math.sqrt()), el problema es que necesito los primeros 1000 decimales El siguiente ...
  #1 (permalink)  
Antiguo 11/04/2016, 07:13
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Problema/Desafio al querer 1000 decimales

Tengo el siguiente problema:


Necesito generar raíces cuadradas de cualquier número (facil con Math.sqrt()), el problema es que necesito los primeros 1000 decimales


El siguiente código imprime 1.4142135623730951 utilizando Math.sqrt() y resolviendo la notación que utiliza JS pero aun así no alcanza

Código Javascript:
Ver original
  1. var x = Math.sqrt(2).toString()
  2. x = x.replace(/^([\d\.]+)e(\d+)$/, function(todo, num, exp) {
  3.     num = parseFloat(num);
  4.     exp = parseInt(exp);
  5.     multiplic = Math.pow(10,exp);
  6.     return (num*multiplic).toString();
  7. } );
  8. alert(x);


En wikipedia salen unos 30 números más
  #2 (permalink)  
Antiguo 11/04/2016, 07:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema/Desafio al querer 1000 decimales

No existen los 1.000 decimales en ningún tipo de cálculo disponible en este tipo de sistemas de uso general.
Para poder representar algo semejante debería poder contarse con un sistema de representación de punto flotante extraordinariamente amplio, que no esta disponible para sistemas normales, y requieren una amplia red de computadoras para obtener semejantes extensiones de datos (Ver: El estudiante que calculó el dígito 5 billones de Pi).
Por su lado, los números de punto flotante en JavaScript tienen limitaciones como en cualquier lenguaje. JS no te representará números más allá de lo que puede manipular, y no va ir más allá de la norma IEEE aplicable.
Tampoco se almacenará más de lo que el estandar indique por razones de significación
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/04/2016, 07:44
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Problema/Desafio al querer 1000 decimales

Pero sí existe una forma de mostrarlos, intenté ver los códigos del desafió Numero 1000 Fibonacci pero no los encontré. Pero creo que si es posible
  #4 (permalink)  
Antiguo 11/04/2016, 08:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema/Desafio al querer 1000 decimales

No puedes mostrar algo que no puedes calcular.
Lo que puedes tener es un algoritmo que permita realizar cálculos en forma segmentada, y luego concatenar los resultados en un texto que puedas mostrar.
Pero NUNCA usar variables numéricas para obtener el conjunto de decimales que el sistema de representación no maneja. Simplemente desbordarías el decimal...

¿Eso queda claro?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 11/04/2016, 09:14
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Problema/Desafio al querer 1000 decimales

Claramente no es posible con variables numéricas, pero si es posible con algoritmos que simulen el calculo. Quizás deba hacer el calculo de la raiz de forma manual (como en el colegio) e ir concatenando los resultados
  #6 (permalink)  
Antiguo 13/04/2016, 06:14
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Problema/Desafio al querer 1000 decimales

Puedes probar a utilizar Bignumbers de math.js
  #7 (permalink)  
Antiguo 13/04/2016, 16:04
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Problema/Desafio al querer 1000 decimales

Cómo ya te dijeron, cualquier lenguaje que use el IEEE 754 te va a dar problemas con los tipos numéricos nativos, con mathjs si se puede aunque no verifiqué el resultado:

Cita:
1.414213562373095048801688724209698078569671875376 94807317667973799073247846210703885038753432764157 27350138462309122970249248360558507372126441214970 99935831413222665927505592755799950501152782060571 47010955997160597027453459686201472851741864088919 86095523292304843087143214508397626036279952514079 89687253396546331808829640620615258352395054745750 28775996172983557522033753185701135437460340849884 71603868999706990048150305440277903164542478230684 92936918621580578463111596668713013015618568987237 23528850926486124949771542183342042856860601468247 20771435854874155657069677653720226485447015858801 62075847492265722600208558446652145839889394437092 65918003113882464681570826301005948587040031864803 42194897278290641045072636881313739855256117322040 24509122770022694112757362728049573810896750401836 98683684507257993647290607629969413804756548237289 97180326802474420629269124859052181004459842150591 12024944134172853147810580360337107730918286931471 01711116839165817268894197587165821521282295184884 72
Saludos!
__________________
Grupo Telegram Docker en Español
  #8 (permalink)  
Antiguo 14/04/2016, 06:15
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Problema/Desafio al querer 1000 decimales

Cita:
Iniciado por Carlangueitor Ver Mensaje
Cómo ya te dijeron, cualquier lenguaje que use el IEEE 754 te va a dar problemas con los tipos numéricos nativos, con mathjs si se puede aunque no verifiqué el resultado:



Saludos!

Utilizaste Bignumbers??? el que ha puesto dashtrash?
  #9 (permalink)  
Antiguo 14/04/2016, 09:52
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Problema/Desafio al querer 1000 decimales

Así es.

Saludos
__________________
Grupo Telegram Docker en Español

Etiquetas: 1000, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:03.