Cómo guardar 10 ^ 19 en Julia sin un desbordamiento


Respuestas:


13

Julia realiza la aritmética Int64 por defecto, por lo que el 10 ^ 19 se desborda como Int64 predeterminado antes de que se encuentren los paréntesis circundantes que se convierten en un tipo más grande. Tratar

Int128(10)^20 == BigInt(10)^20 == big"10"^20

big(10)^20También funciona.
DNF

Solo como un comentario secundario: Julia podría ser lo suficientemente inteligente como para detectar qué constantes de rango como 10 ^ 19 encajan y usar el tipo más pequeño lo suficientemente grande como para ajustarse a la constante, o alguna otra heurística que no falle.
Trilarion

De hecho, supongo que esto dará como resultado un impacto en el rendimiento, por lo que lo empujarán hacia el usuario.
logankilpatrick

Es menos eso, y más que conceptualmente es de alguna manera más limpio tener reglas simples como si pareciera un int, es un int
Oscar Smith
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.