Юлия и большие цифры - PullRequest
0 голосов
/ 14 мая 2018

Как Джулия вычисляет большие числа?

Например, это работает как ожидалось:

julia> 10^18
1000000000000000000  

Но для больших чисел существует проблема с целыми числами:

julia> 10^19
    -8446744073709551616 

 julia> 10^20
     7766279631452241920 

Но это работает, если используется десятичное число:

julia> 10.0^20
1.0e20

Знаете ли вы, почему?

1 Ответ

0 голосов
/ 14 мая 2018

Проверьте эту страницу документации: https://docs.julialang.org/en/release-0.4/manual/integers-and-floating-point-numbers/

Как видите, максимальная длина Int64 составляет: 2 ^ 63 - 1 ~ 1,0 * 10 ^ 19 Итак, ваши 10 ^19 больше, чем это максимальное значение.Вот почему есть проблема.Вы можете попробовать конвертировать ваши 10 в другой тип.

10.0^20 работает, потому что 10.0 - это число с плавающей точкой, поэтому оно имеет максимальное максимальное значение.

Если вам нужна неограниченная точность для целых чисел, вы можете использовать BigInts:

julia> BigInt(10)^100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
...