Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > 2^1000 по модулю 10^6+3


Автор: rurik 13.9.2011, 14:41
Здравствуйте) объясните мне пожалуйста следующее:
2^1000 это примерно 1.07150861 * 10^301 т.е. 301 цифра

это в какой нибудь тип уместится??  у меня такое ощущение что нет.

как посчитать 2^1000 по модулю 10^6+3 ? я вот про что: какая последовательность вычислений?1) 2^1000 2)обрезание до размерности типа 3) вычисление операции по модулю 10^6+3
??

Автор: LSD 13.9.2011, 15:05
Цитата(rurik @  13.9.2011,  15:41 Найти цитируемый пост)
это в какой нибудь тип уместится??

http://download.oracle.com/javase/1,5.0/docs/api/java/math/BigInteger.html



Цитата(rurik @  13.9.2011,  15:41 Найти цитируемый пост)
как посчитать 2^1000 по модулю 10^6+3 ?

Код

        BigInteger mod = BigInteger.TEN.pow(new BigInteger("6")).add(new BigInteger("3"));
        BigInteger i = new BigInteger("2");
        i = i.pow(1000).mod(mod);
        System.out.println(i);

Автор: AlexeyVorotnikov 14.9.2011, 12:48
Цитата(LSD @ 13.9.2011,  16:05)

Код

        BigInteger mod = BigInteger.TEN.mod(new BigInteger("6")).add(new BigInteger("3"));

Здесь не mod должно быть, а pow

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)