Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[C++]Длиная арифметика

8.9K
01 июля 2007 года
Prince Firdavs
34 / / 22.11.2006
Помогите с длиной Арифметикой
Даны числа 0<n<m<2^100000
Вывести умножение и n*m и остаток m%n
если есть у кого нибудь решени коди плиз !!!
14K
01 июля 2007 года
Krazist
60 / / 13.03.2007
Существует удобная библиотека для работы с большими числами - Freelip (http://www-teaching.physics.ox.ac.uk/computing/src/freelip-1.1.1.tar.gz)
Очень много функций реализовано, просто в обращении, только одна проблема - ни VC++6, ни BCB6 не откомпилировали :( ее, может кто имел опыт работы с ней, а то мне очень нужно для реализации RSA... вообще она предназначена для UNIX, но может кто-то видел работающие переделки для win32, я знаю, точно они существуют :)
14K
01 июля 2007 года
Krazist
60 / / 13.03.2007
Выкладываю исходники класса BigUnsigned для работы с длинными целыми

Код:
#include <stdio.h>
#include "BigUnsigned.h"

const unsigned int corrector = 4;
const unsigned int divider = 6;

// рабочий тип - 1000-битное целое
typedef BigNumbers::BigUnsigned<1000> TWorkType;

// value должно быть меньше 1000
const int MaxArgument = 1000;

TWorkType Task006Calculator(int value) {
   TWorkType result = 0;
   if( value > 4 ) {
      unsigned i;
      TWorkType intermediate;
      TWorkType correction(corrector);
      for( i=(value-5)/2; i > 0 ; i-- ) {
         correction.MulPrimitive(3); // можно и correction *= 3; но это медленнее
         ++correction;
      }
      if( (value&1) == 0 ) correction <<= 1;
      result = intermediate.PowerOfTwo(value)/divider-correction;
   }
   return result;
}
//---------------------------------------------------------------------------
int main(int argc, char* argv[]) {
   int i;
   TWorkType value;
   char buff[(MaxArgument*4)/10];
   for( i=0 ; i < MaxArgument ; i++ ) {
      value = Task006Calculator(i);
      printf("for %d result is: %s\n",i,BigNumbers::itoa(value,buff,10));
   }
}
//---------------------------------------------------------------------------
19K
04 июля 2007 года
H!RURG
23 / / 02.07.2007
Это код с Algolist-a
242
04 июля 2007 года
Оlga
2.2K / / 04.02.2006
Цитата: H!RURG
Это код с Algolist-a


а не проще было просто ссылку дать, чем код переписывать.

19K
04 июля 2007 года
H!RURG
23 / / 02.07.2007
Цитата: OlgaKr
а не проще было просто ссылку дать, чем код переписывать.


http://algolist.manual.ru

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог