Как посчитать число 2 в 1 000 000 000 000 000 степени?

Здравствуйте, для научной деятельности нужно посчитать число 2 в 1 000 000 000 000 000 степени (2 в квадриллионной степени). Как это можно посчитать?
Это лучше считать в Python или в других программах?
Какие библиотеки?
Какой использовать код?...
Пробовал в Python, но напрямую такое число не посчитаешь.

Подскажите пожалуйста.
  • Вопрос задан
  • 1162 просмотра
Пригласить эксперта
Ответы на вопрос 7
@galaxy
Вам точно или примерно? Если как в физике обычно, то:
21 000 000 000 000 000 = 10lg(2)*1 000 000 000 000 000 = 10301029995663981,1952137... = 100,1952137... * 10301029995663981 = 1,567522 * 10301029995663981
Ответ написан
BorLaze
@BorLaze
Java developer
Напрямую, конечно, не посчитаешь.

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

Примерно - можно подумать. Типа, дошли до миллиона, имеем значение 123й степени = 1234567, отбрасываем тысячи, и запоминаем - 124я степень равна 2467 тысяч.
Дальше - точно так же считаем 567я степерь равна 9876 миллионов, ну и прочая-прочая-прочая.

Конечно, получится плюс-минус лапоть, но какое-то примерное значение выйдет.
Ответ написан
Комментировать
Aetae
@Aetae
Тлен
Вычислять по сути нечего. 2 в N - это единичка и N ноликов в двоичной системе. Используя эту информацию оптимизируйте свои вычисления связанные с этим "числом".
Ответ написан
Комментировать
wataru
@wataru Куратор тега Математика
Разработчик на С++, экс-олимпиадник.
2^10 ~ 10^3. 2^1 000 000 000 000 000 ~ 10^300 000 000 000 000.

Это число, у которого очень много знаков. Его запись в файле займет 272 терабайта. Соответственно, для его вычисления понадобится или подобное количество памяти, или какие-то очень хитрые алгоритмы с записью в промежуточные файлы и в несколько раз больше места на диске.

Вряд ли у вас цель - получить эти 300 миллиардов цифр. Наверно, вам нужно что-то с этим числом делать. Возможно, это можно сделать без вычисления всех цифр числа. Например, если вам нужны последние 100 цифр - то можно на том же питоне производить вычисления по модулю 10^100. Правда, придется писать экспоненциальное возведение в степень самостоятельно.
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Начать с правильной формулировки задачи. Вряд ли вам нужно это число, скорее всего, вы пытаетесь решить какую-то другую задачу, но выбрали для решения неправильный метод.
Ответ написан
Комментировать
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
Пробовал в Python, но напрямую такое число не посчитаешь.

Напрямую ты нигде такое не посчитаешь.

гугли про длинную арифметику https://ru.wikipedia.org/wiki/%D0%94%D0%BB%D0%B8%D... и различные алгоритмы.
к примеру возведение в степень можно переделать на умножение и готовым алгоритмом умножать. а как ты это будешь делать - понятия не имею. тебе понадобится очень много свободного места для записи всех этих чисел и промежуточных вычислений.
Ответ написан
Комментировать
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
Так это элементарно считается. 2^10 = 1024, 2^20 = 1048576 и т.д. Смысл понятен
Переводи в двоичную систему и вперёд.
Вычисляется меньше секунды
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы