2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 возникла проблема с A^B mod C
Сообщение17.01.2009, 12:54 


17/01/09
2
Условии задачи:

Вам даны целые числа A, B, C. Выведите остаток от деления A^B mod  C.

Ограничения:

0 <= A, B <=10^18, 1 <= C <= 10^18

Ответом служит число, которое является остатком от деления.


з.ы. честно сказать озадачен, как это можно было бы реализовать.... :oops:

 Профиль  
                  
 
 
Сообщение17.01.2009, 13:48 
Заслуженный участник
Аватара пользователя


01/08/06
3131
Уфа
Здесь нужно воспользоваться тем замечательным фактом, что для любых целых $A$, $B$, $C$ ($C \ne 0$) верно равенство:
$(A\cdot B) \pmod C=\left(\left(A \pmod C\right)\cdot\left(B\pmod C\right)\right)\pmod C$.

Правда, нужно ещё уметь перемножать целые числа до порядка $10^{18}$ (и получать ответ также в виде целого числа), а такая возможность не в каждую систему программирования встроена. Вам на чём нужно сделать эту задачку?

 Профиль  
                  
 
 
Сообщение17.01.2009, 13:53 


17/01/09
2
worm2 писал(а):
Здесь нужно воспользоваться тем замечательным фактом, что для любых целых $A$, $B$, $C$ ($C \ne 0$) верно равенство:
$(A\cdot B) \pmod C=\left(A \pmod C\right)\cdot\left(B\pmod C\right)$.

Правда, нужно ещё уметь перемножать числа порядка $10^{18}$, а такая возможность не в каждую систему программирования встроена. Вам на чём нужно сделать эту задачку?



на pascal'e желательно :?

хотя можно и на C/C++

вот как такие огромные числа представлять... Длинная арифметика? Может есть идеи, как это сделать

 Профиль  
                  
 
 
Сообщение17.01.2009, 14:52 
Заслуженный участник
Аватара пользователя


01/08/06
3131
Уфа
Да, здесь без длинной арифметики не обойтись. Причём нужно будет реализовать и умножение, и сложение 128-битных чисел, и деление с остатком 128-битного числа на 64-битное.

За основу можно взять знаковую 64-битную арифметику, которая встроена и в Pascal (Comp, Int64 в последних версиях Delphi) и в C (__int в Borland/MS, longlong int в GCC, про остальные не знаю).

 Профиль  
                  
 
 Re: возникла проблема с A^B mod C
Сообщение17.01.2009, 21:26 
Заслуженный участник


15/05/05
3445
USA
frost_uw писал(а):
честно сказать озадачен, как это можно было бы реализовать...
Начните отсюда: Arbitrary-precision arithmetic.

 Профиль  
                  
 
 Re: возникла проблема с A^B mod C
Сообщение17.01.2009, 23:11 
Заблокирован
Аватара пользователя


13/01/09

335
frost_uw писал(а):
честно сказать озадачен, как это можно было бы реализовать

см.: http://www.intel.com/software/products/ ... /index.htm

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group