|
|
|
Длинная арифметика на Си12.07.2010, 19:01. Показов 102819. Ответов 81
Здравствуйте, форумчане!
Хотелось бы мне начать топик, сообщения в котором я планирую пополнять постоянно (по возможности и уровню занятости, разумеется). Тема топика, как видно из заголовка, длинная арифметика. Я не хочу подробно описывать, что такое длинная арифметика и зачем она нужна. Об этом любой может прочитать на той же википедии. Но небольшое вступление сделать все таки надо. В длинной арифметике вычисления производятся над очень большими числами. С точки зрения программирования на языке Си такими числами можно считать любые, которые "не помещаются" в стандартные типы данных, то есть те, которые больше 32-х (64-х) бит. Наиболее популярно применение длинной арифметики, пожалуй, в криптографии. Я знаю, что очень многим студентам в университетах дают задания на длинную арифметику и надеюсь, что кто-то наткнется на эти сообщения и они ему помогут (сам в свое время мучился). Под конечной целью буду предполагать создание библиотеки или пакета (набора функций) для работы с длинными числами, возможно реализация каких-либо криптографических алгоритмов для примера. Начальный план действий будет таков:
PS. Я нисколько не претендую на специалиста в данной области. В первую очередь создаю топик для самого себя, чтобы изучить данную тему и как следует в ней разобраться. Но я надеюсь, что это заитересует многих. Я знаю, что только начинаю осваивать языки программирования, поэтому очень надеюсь на поддержку наших гуру во всех аспектах задачи. PPS. За "Библию" в этой теме беру второй том из серии "Искусство программирования" Д. Кнута.
16
|
|
| 12.07.2010, 19:01 | |
|
Ответы с готовыми решениями:
81
Длинная арифметика Умножение (длинная арифметика) |
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| 28.07.2010, 02:48 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||
Сообщение было отмечено как решение
Решение
Немного освободился сейчас. Продолжаю тему
![]() Обещанная "модная" реализация сложения (далее весь код пойдет в таком же стиле) Сложение
Сложение длинного числа с простым
Умножение
Умножение длинного числа и простого
Тестирование
Здесь результаты выполнения функций.
Не по теме: Как всегда жду критики и комментариев. Добавлено через 1 час 15 минут А вот про вычитание забыл совсем ![]() Вычитание
Вычитание обычного числа из длинного
И еще. Все эти функции не обрабатывают исключительных ситуаций. Например, для умножение это случай, когда один из множителей равен 0 или 1, для вычитания, если вычитаемое число больше уменьшаемого, ну и проверку на вместимость числа я здесь тоже не выполняю.
7
|
||||||||||||||||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 8
|
|
| 12.09.2010, 10:21 | |
|
Просмотрел бегло тему, довольно увлекательно. А никто не делал арифметические операции с большими вещественными числами? А то везде только целочисленные
0
|
|
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 8
|
|
| 12.09.2010, 11:10 | |
|
В этом то и вся проблема
![]() И еще один вопросик каким образом лучше считывать большие числа с клавиатуры?
0
|
|
|
|
||||
| 12.09.2010, 11:19 [ТС] | ||||
0
|
||||
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 8
|
|
| 12.09.2010, 18:01 | |
|
В строку то у нас влезает 256 символов? А если более?
Где-то видел что предлагают посимвольно getch'ем считывать
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 12.09.2010, 18:12 | |
|
abcdeiko, В строку влезает любое кол-во символов. В зависимости от размера строки
0
|
|
|
SvetofoRik
|
|||||||||||
| 24.09.2010, 21:29 | |||||||||||
|
Здравствуйте. Вот вы тут ведете разговор про длинную арифметику. А у меня как раз не получается реализовать алгоритм модулярного умножения. У меня есть его псевдокод,но я не во всем разбираюсь...мне сложнова-то... Может вы сможете разобраться.
Вот собственно сам псевдокод:
|
|||||||||||
|
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36
|
|
| 11.03.2011, 17:15 | |
|
я вот думал, над реализацией вещественных чисел, ведь числа то могут быть реально большими. и я мечусь в выборе :то ли представлять число как список, то ли представлять через динамический массив.
0
|
|
|
31 / 31 / 16
Регистрация: 30.11.2010
Сообщений: 81
|
|
| 11.03.2011, 18:37 | |
Сообщение было отмечено как решение
Решение
Если интересует, могу подбросить пару идей и функций по поводу модульной арифметики, которая так же очень популярна в криптографии. А так же реализацию некоторых популярных алгоритмов шифрования(Эль-Гамаля, RSA), основанных как раз на модульной арифметике и арифметики длинных чисел. Просто очень интересуюсь всякими шифрами и их взламыванием и готов помочь любому в данной теме))
3
|
|
|
yakobian
|
|
| 07.04.2011, 02:26 | |
|
Здравствуйте.
очень интересная тема - как раз с ней разбираюсь сейчас.... Есть вопрос - не могу найти где вы определили такие макросы как BI_BITPERREG и BI_SETLEN.... - которые используются в операциях умножения, деления и вычитания..... - для целостной картины их не хватает - не могли бы вы их выложить? |
|
|
|
|||||||||||||
| 07.04.2011, 10:23 [ТС] | |||||||||||||
0
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 1
|
||
| 09.05.2011, 00:10 | ||
|
0
|
||
|
yakobian
|
|
| 23.05.2011, 21:16 | |
|
Да, кстати, еще непонятно по поводу BI_BASE, и BI_DELLDZ ?
В данный момент занимаюсь реализацией на базе этой схемы деления, степени, модуля и алгоритма Карацубы-Оффмана - надеюсь тема еще попудярна - есть ли смысл выкладывать? Добавлено через 2 минуты Vergil111, Вы писали про реализацию криптоалгоритмов.... - интересно посмотреть Ваш вариант - как раз сейчас делаю эти два. А какой вы использовали алгоритм для генерации случайных чисел в них? |
|
|
|
|||||
| 24.05.2011, 03:23 [ТС] | |||||
Может кому пригодится.
0
|
|||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||
| 24.05.2011, 05:46 | |||||
|
Добавлено через 5 минут Добавлено через 3 минуты Добавлено через 5 минут
0
|
|||||
|
|
|||||||
| 24.05.2011, 05:50 [ТС] | |||||||
|
taras atavin,
Не по теме: Толсто. Ничего не скажешь...
0
|
|||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||
| 24.05.2011, 05:58 | |||||
|
Добавлено через 41 секунду Добавлено через 3 минуты 1. Подкласс - игра. 2. Мир - галактика, представлен единой локацией. 3. Можно двигаться под углом к координатным осям. 4. Требуется имимтировать непрерывность такого движения. Добавлено через 1 минуту
0
|
|||||
|
|
||||
| 24.05.2011, 06:01 [ТС] | ||||
|
В связи с добавлением еще одного сообщения предлагаю Вам еще раз перечитать топик, о каких именно задачах шла речь, а также обратить внимание на дату создания топика в частности. В связи с добавлением еще одной части сообщения:
0
|
||||
| 24.05.2011, 06:01 | |
|
Помогаю со студенческими работами здесь
40
Простая Длинная арифметика
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так?
Да, всё верно. Я — искусственный интеллект.
Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
|
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает.
В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше.
Перед запуском проверяем. . .
|