Большие двойники / числа с плавающей запятой / числа - PullRequest
2 голосов
/ 24 апреля 2011

Скажите, что у меня огромное число с плавающей запятой, скажем, триллион десятичных знаков.Очевидно, длинный дубль не может удержать это.Давайте также предположим, что у меня есть компьютер с более чем достаточным объемом памяти для его хранения.Как ты делаешь что-то подобное?

Ответы [ 4 ]

7 голосов
/ 24 апреля 2011
7 голосов
/ 24 апреля 2011
3 голосов
/ 24 апреля 2011

Легко сказать "арифметика произвольной точности" (или что-то подобное), но я думаю, что стоит добавить, что трудно придумать способы размещения чисел где-нибудь близко к этому размеру для использования.

Только для примера: текущие оценки размеров Вселенной находятся где-то в районе 150-200 миллиардов световых лет. На противоположном конце спектра диаметр одного электрона оценивается чуть менее 1 атометра. 1 световой год составляет примерно 9,46x10 15 метров (для простоты мы будем рассматривать его как 10 16 метров).

Итак, давайте возьмем 1 атометр в качестве нашей единицы и выясним размер числа для диаметра Вселенной в этой единице. 10 18 единиц / метр * 10 16 метров / световой год * 10 11 световых лет / диаметр вселенной = примерно 45-значное число, чтобы выразить диаметр Вселенная в единицах примерно диаметра электрона.

Даже если бы мы пошли на следующий шаг и выразили его в терминах теоретического размера суперструны и добавили несколько дополнительных цифр на случай, если текущие оценки отклонятся на пару порядков, мы все равно закончим с числом около 65 цифр или около того.

Это означает, например, что если бы мы знали диаметр вселенной до размера одной суперструны и хотели бы вычислить что-то вроде объема вселенной в терминах диаметров суперструны, наш самый большой промежуточный результат был бы чем-то как 600-700 цифр или около того.

Рассмотрим еще один важный момент: если бы вы запрограммировали 64-разрядный компьютер, работающий, скажем, на 10 ГГц, чтобы ничего не делать, кроме как считать - увеличивать регистр один раз за тактовый цикл - это заняло бы примерно 1400 лет для просто циклически перебирайте 64-битные числа, чтобы они снова обернулись до 0.

Суть в том, что невероятно трудно придумать оправдания (гораздо менее реальные причины) для выполнения вычислений с точностью до миллионов, миллиардов / миллиардов или триллионов / миллиардов цифр. Вселенная не такая большая, не содержит столько атомов и т. Д.

0 голосов
/ 24 апреля 2011

Похоже на то, для чего были изобретены логарифмы .

Не зная, что вы собираетесь делать с числом, невозможно точно сказать, как его представить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...