Нужны алгоритмы для работы с большими целыми числами (произвольной длины)
Подскажите, где их можно найти. Поиск google по ключевым словам ""большие целые числа" алгоритм" полезных результатов не дал. Задание: написать библиотеку для работы с большими целыми числами (сложение, вычитание, умножение, деление, остаток от деления) на C#. Требуется именно написать с нуля, а не найти готовую.
здесь, 3-я лекция.
Я так понимаю имеется в виду арифметика многократной точности? Тогда например
В её стандартный SDK входит библиотека для работы с большими целыми числами (java.math.BigInteger) с подробным описанием в справке.
Простой и надёжный компилятор можно скачать на java.sun.com. Подойдёт любая версия...
Цитата: Krazist
Для исследовательско-демонстрационных целей - лучше всего Java.
Это почему ещё ? И вообще - разговор был, по-моему, не об этом.
Цитата: Alexey03
Подскажите, где их можно найти. Поиск google по ключевым словам ""большие целые числа" алгоритм" полезных результатов не дал. Задание: написать библиотеку для работы с большими целыми числами (сложение, вычитание, умножение, деление, остаток от деления) на C#. Требуется именно написать с нуля, а не найти готовую.
Если надо написать с нуля, тогда зачем их искать?:D
Что то похожее видел недавно, книга называется "Дискретная математика и фундаментальные алгоритмы для программистов." автора к сожалению не помню.:(:(:(
Цитата: Alexey03
Подскажите, где их можно найти. Поиск google по ключевым словам ""большие целые числа" алгоритм" полезных результатов не дал. Задание: написать библиотеку для работы с большими целыми числами (сложение, вычитание, умножение, деление, остаток от деления) на C#. Требуется именно написать с нуля, а не найти готовую.
Вспоминаем начальную школу: сложение/вычитание в столбик, умножение иже с ними и деление уголком - это и есть абсолютно корректные алгоритмы, другое дело, что можно эффективнее, но это уже совсем иная история.
Конечно, могу ошибаться, но что мешает, допустим 64 битные разбить на два 32 битных. Первый отвечает за младшие 32 бита (int), второй за старшие 32. И всё. А там уже операции с битами. Код привести не смогу, так как на С не пишу. Была подобная тема, только в разделе пхп. Там поищите, человек писал класс для работы с большими числами. Ну и там по примеру переписывать.
Цитата: UAS
Конечно, могу ошибаться, но что мешает, допустим 64 битные разбить на два 32 битных
Вот-вот, а получив некие "атомарные" для компьютера/компилятора значения - по методу hardcase - столбиком, уголком..