Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
vsevolod200594
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 4
1

Бинарное возведение в степень числа типа BigInteger в степень Biginteger

17.05.2016, 14:56. Просмотров 424. Ответов 3
Метки нет (Все метки)

Здравствуйте. Не могу реализовать алгоритм бинарного возведения в степень.

Есть 2 экземпляра BigInteger p,q.

По методу Pow не катит, потому что степень принимает тип int. Нужно BigInteger ^ BigInteger. Перерыл много информации, не нашел достойного решения. Помогите реализовать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2016, 14:56
Ответы с готовыми решениями:

Возведение в степень
Помогите пожалуйста, программа шифрования RSA алгоритмом, нужно возводить в степень (достаточно...

возведение в степень матрицы
Помогите, пожалуйста, написала программу в си# возведение в степень матрицы, выводит ответ, но...

реализовать функции класса BigInteger.
Используя перегрузку операторов, реализовать вычитание чиселфункции класса BigInteger. (считаем,...

Перевод BigInteger в двоичную строку
САБЖ. Собственно первое, что пришло в голову, это сделать ToByteArray, а его ToString, однако...

Перенос строки кода с JAVA (biginteger.add(ONE).shiftRight(1) на C#
BigInteger divisor; BigInteger d = divisor.add(ONE).shiftRight(1) Можете подсказать, в каком...

3
kolorotur
Эксперт .NET
11614 / 9367 / 2387
Регистрация: 17.09.2011
Сообщений: 16,034
Завершенные тесты: 1
17.05.2016, 15:28 2
vsevolod200594, здравствуйте.

Цитата Сообщение от vsevolod200594 Посмотреть сообщение
По методу Pow не катит, потому что степень принимает тип int. Нужно BigInteger ^ BigInteger.
Как вы считаете, почему такой метод не сделали?
0
vsevolod200594
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 4
17.05.2016, 15:47  [ТС] 3
Не получается из-за конфликта типов, int нельзя преобразовать в BigInteger, поэтому и прошу помощи.
0
kolorotur
Эксперт .NET
11614 / 9367 / 2387
Регистрация: 17.09.2011
Сообщений: 16,034
Завершенные тесты: 1
17.05.2016, 18:51 4
Цитата Сообщение от vsevolod200594 Посмотреть сообщение
Не получается из-за конфликта типов, int нельзя преобразовать в BigInteger
Проблема не в этом, а в том, что даже если взять двойку и возвести ее в степень 2147483647 (максимальное значение для int), то получившееся значение будет иметь что-то около 650 миллионов цифр. Вам потребуется порядка 200Мб только для того, чтобы это число влезло в память.
Если в ту же степень возвести не двойку, а хотя бы тройку, то это уже более миллиарда цифр. Потребности в памяти можете сами подсчитать.
Суть тут в том, что если у вас и число и степень имеют такие значения, что для их представления требуется BigInteger, то вам не хватит всей памяти на Земле для того, чтобы этот результат сохранить.
Потому метод с такими параметрами и отсутствует в структуре BigInteger — он не имеет смысла.
0
17.05.2016, 18:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2016, 18:51

Третья степень числа
Описать процедуру PowerA3(A, B), вычисляющую третью степень числа A и возвращающую ее в переменной...

Как делить одно число BigInteger на другое BigInteger, при чем не теряя остаток
Помогите пожалуйста. Надо поделить одно число BigInteger на другое, при чем в результате сохранить...

Возведение числа в степень по модулю в C#
пример: 2^11(mod5)=3(mod5). Вот, что я написала, но еще как-то нужно сделать проверку, что степень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru