Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/114: Рейтинг темы: голосов - 114, средняя оценка - 4.72
 Аватар для Ksusharik
4 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 24

Библиотеки для работы с большими числами (длинная арифметика)

21.10.2012, 12:46. Показов 21184. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток)) Сейчас идет курс по криптографии, для которой,как оказалось, нужно подключать дополнительные библиотеки в C++ Builder (т.к. в отличие от Java их там нет )
Может быть кто-то уже пользовался и знает,где качать и как подключать правильно? (желательно библиотеки с генерированием больших простых чисел и теоремой Рабина)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2012, 12:46
Ответы с готовыми решениями:

Длинная арифметика: есть ли в C++ библиотека для работы с длинными числами?
Всем привет! Хотелось бы узнать -- есть ли в С++ библиотека, где реализованы операции над длинными числами?

Библиотеки для работы с большими числами
Доброй ночи! Какие вы могли бы порекомендовать библиотеки для работы с большими числами в языке Python?

Подключение библиотеки для работы с большими числами
Мне дали задание, написать калькулятор для работы с большими числами подключив дополнительные библиотеки. Я вообще без понятия что и как...

37
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.10.2012, 20:37
Да есть такое... https://www.cyberforum.ru/blog... og488.html

gmp- библиотека на Си, к сожалению mpir не удалось прикрутить к Builder-у.

А тут исходник с где с помощью нее реализовывал RSA для шифрования пароля Получить cookies из браузера

Есть еще Arageli, но я им не пользовался.
2
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
21.10.2012, 23:25
Цитата Сообщение от Ksusharik Посмотреть сообщение
нужно подключать дополнительные библиотеки в C++ Builder
а просто int64 не подойдет?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.10.2012, 23:29
а просто int64 не подойдет?
Для чего ? Для вычисления числа с тысячью знаков после запятой? Или для реализации RSA алгоритма ?
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
21.10.2012, 23:41
Цитата Сообщение от Avazart Посмотреть сообщение
Для вычисления числа с тысячью знаков после запятой?
Новерно вопрос не понял... про тысячу знаков вроде нет речи... влюбом случае АЭМСОРИ!
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.10.2012, 23:45
Цитата Сообщение от Samrisbe Посмотреть сообщение
про тысячу знаков вроде нет речи
Может меньше но нужно для -
Цитата Сообщение от Ksusharik Посмотреть сообщение
Сейчас идет курс по криптографии, для которой,как оказалось, нужно подключать дополнительные библиотеки
1
 Аватар для Ksusharik
4 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 24
22.10.2012, 12:36  [ТС]
Цитата Сообщение от Samrisbe Посмотреть сообщение
а просто int64 не подойдет?
К сожалению,нет)

Спасибо,попробую) Видимо,с NTL никто не сталкивался Оо
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.10.2012, 12:46
Ну как бы слыхали...
Но вроде как gmp быстрее, более того gmp можно вроде подключать к NTL.

Не видел что NTL представляет из себя, но думаю что это dll+h+lib-файлы под VC++ поэтому для прикрутки к Builder возможно пригодится https://www.cyberforum.ru/blog... og478.html
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.10.2012, 21:09
Вообще библиотеку с dll не нашел ...

Нашел исходники http://www.shoup.net/ntl/download.html


Исходники библиотеки скомпилил в статический либ- файл

Провел простой тест вроде работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream>
 
#include <NTL/ZZ.h>
#pragma comment (lib,"ntl.lib") // Подключаем статическую библиотеку
 
NTL_CLIENT  // не знаю что это такое надо читать документацию
 
#pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
 
#pragma argsused
 
int _tmain(int argc, _TCHAR* argv[])
{
     ZZ a, b, c;
 
     cin >> a;
     cin >> b;
     c = (a+1)*(b+1);
     cout << c << "\n";
 
    system("pause");
    return 0;
}
//---------------------------------------------------------------------------
Выкладываю все потроха исходники,проект с либ, тест проект.
Для работы программы достаточно ntl.lib( добавить в проект) и папки include( прописать пути в опциях проекта или tools)
Вложения
Тип файла: rar Test WinNTL-5_5_2.rar (4.02 Мб, 367 просмотров)
1
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.10.2012, 21:14
Проект собран на Builder2009
0
 Аватар для Ksusharik
4 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 24
28.10.2012, 16:55  [ТС]
Оооу,не ожидала,честно говоря)КОгда сама компилила исходники - ошибки выдавало..Щас проверю, спасибо большое ^^

Добавлено через 7 минут
Эх,нету( не работает..предполагаю,что уже дело в билдере 6(
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.10.2012, 17:04
Эх,нету( не работает..предполагаю,что уже дело в билдере 6(
Ну у меня проект на Builder2009 так что понятно что сам проект не будет работать в Builder6

Возьмите с моего проекта файл ntl.lib и папку "NTL" (которая внутри папки "include") и добавьте их в свой проект на Builder6
0
 Аватар для Ksusharik
4 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 24
28.10.2012, 21:49  [ТС]
Я взяла,только вот теперь он пишет,что не может найти файл xlocale..что это вообще Оо
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.10.2012, 22:36
Без понятия ... не должно быть такого...

Добавлено через 35 минут
Цитата Сообщение от Ksusharik Посмотреть сообщение
Эх,нету( не работает..предполагаю,что уже дело в билдере 6(
Возможно и в этом.

Тогда надо попробывать собрать статическую либу на Builder6, для этого

1. File->New->Othen-> Static Liborary. Сохраняете Save All в отдельную папку
2. Копируете исходники библиотеки в эту же папку.
3. Добавляете все файлы из папок include/NTL и src в проект библиотеки через Project ->Add To Project, прописываете путь в опциях проекта к папке include.
4. Выбираете в Project Manager(Ctrl+Alt+F11) команду Build, в итоге либа собирается и должен появится lib- файл в папке с проектом.- он то и нужен.

Если выбьет ошибки выкладывайте на форум.
0
 Аватар для Ksusharik
4 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 24
29.10.2012, 11:46  [ТС]
Сделала,как сказали - в итоге ошибка - "lidrary too large,please restart with library page size 32".
Честно говоря, при создании не было указано, как задавать размер библиотеки Оо
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.10.2012, 13:44
Честно говоря, при создании не было указано, как задавать размер библиотеки Оо
Да и не должно быть... вроде...

Библиотека как мне кажется не такая уж и большая...

Попробуйте открыть Project->Option и там поискать размер библиотеки

Добавлено через 14 минут
To compile the library under C++Builder, create e.g. a Static Library project, add source files to it and compile. If you receive an error during linking saying that [TLib Error] library too large, please restart with library page size 32., increase the Page Size value in the Project Options on the "TLib" page. A value of 128 should be sufficient.
Как я понимаю на закладке TLib.

Там по идее может стоять Page Size= 16 его нужно увеличить.
0
 Аватар для Ksusharik
4 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 24
31.10.2012, 17:15  [ТС]
К сожалению,такой закладки в моей версии билдера нет((
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.10.2012, 17:17
Ну так поищите среди других.. я наугад сказал ...
(Buiuder6 давно уже не пользуюсь)
0
 Аватар для Ksusharik
4 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 24
31.10.2012, 19:02  [ТС]
да я понимаю)спасибо)
все перерыла,но видимо не судьба оО
придумаю что-нибудь Оо
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.10.2012, 19:39
Проверьте еще раз, должна быть закладка TLib

Project | Option ( Shift+Ctrl+F11 ) | TLib | Set Library page size = ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2012, 19:39
Помогаю со студенческими работами здесь

Есть ли библиотеки для работы с большими числами
Доброй ночи! Какие вы могли бы порекомендовать библиотеки для работы с большими числами в языке C/C++?

Длинная арифметика: посоветуйте библиотеку для работы со знаковыми числами произвольной длины
Поодскажите какую-нибудь библиотеку, где реализована работа со знаковыми целыми числами произвольной длины.

Библиотеки для работы с очень большими дробными числами
Добрый день, появилась необходимость оперировать дробными (равномерно распределенными) числами. К примеру 125 знаков после запятой. ...

Длинная арифметика. Класс работы с длинными числами.
// модул_умнож.cpp : main project file. #include &quot;stdafx.h&quot; #include &quot;vector&quot; #include &lt;algorithm&gt; #include &quot;stdio.h&quot; #include...

Класс для работы с большими числами
Здравствуйте, кто-нибудь уже писал класс для работы с очень большими числами, с поддержкой операторов +-/*, если да то дайте, пожалуйста,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru