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.