Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
gGrn-7DA
мну довольно <(-__-)l
212 / 201 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
Завершенные тесты: 1
1

Длинная арифметика

19.10.2010, 17:48. Просмотров 2963. Ответов 12
Метки нет (Все метки)

Прошу выложить детерминированный алгоритм умножения двух длинных чисел.

В отместку выложу придуманный мной алгоритм нахождения остатка от деления(легко обратимый в алгоритм нахождения целой части от деления, и даже умеющий одновременно вернуть оба значения за тот де промежуток времени что и выполнение одного из действий...)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2010, 17:48
Ответы с готовыми решениями:

Длинная арифметика
Народ, есть у кого-нить прога такая? Просто пишу свою и нужно сравнить по производительности, а...

Модулярная длинная арифметика
Здравствуйте. Есть алгоритм Баррета(псевдокод): Вход: многоразрядные числа x, n Выход: r=...

Компьютераня арифметика
Здравствуйте. Пока разбирался с &quot;компьютерной&quot; арифметикой родился следующий вопрос. Праильно ли я...

Целечисленная арифметика
Всем привет. Есть интересная задачка(как по мне): дано 2 числа(целых) вывести большее из них,...

Как сделать так, чтобы длинная ссылка <a href></a> не вытягивалась в одну строку?
Друзья, подскажите, как сделать так, чтобы длинная ссылка &lt;a href&gt;&lt;/a&gt; не вытягивалась в одну...

12
silent_1991
Эксперт С++
5025 / 3085 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
Завершенные тесты: 1
19.10.2010, 18:00 2
А почему бы не умножать столбиком? Алгоритм умножения столбиком известен, умножение там происходит по разрядам (как раз то, что нужно, если хранить длинные числа в массиве).
0
gGrn-7DA
мну довольно <(-__-)l
212 / 201 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
Завершенные тесты: 1
19.10.2010, 18:25  [ТС] 3
тут проблема в многих сложениях длинных чисел, мне же требуется по возможности обойтись без них, хоть я уже и написал сложение/ВЫЧИТАНИЕ...
0
KuKu
1560 / 1038 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
19.10.2010, 20:30 4
посмотрите тут.
0
19.10.2010, 20:30
gGrn-7DA
мну довольно <(-__-)l
212 / 201 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
Завершенные тесты: 1
19.10.2010, 20:35  [ТС] 5
не то...мне нужен алгоритм умножения 2 длинных чисел, без разложения на множители и БЕЗ СЛОЖЕНИЯ ДЛИННЫХ ЧИСЕЛ!!!!
0
KuKu
1560 / 1038 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
19.10.2010, 20:40 6
Цитата Сообщение от gGrn-7DA Посмотреть сообщение
не то...мне нужен алгоритм умножения 2 длинных чисел, без разложения на множители и БЕЗ СЛОЖЕНИЯ ДЛИННЫХ ЧИСЕЛ!!!!
Если вы найдете способ умножения без сложения, вы станете моим кумиром.
0
gGrn-7DA
мну довольно <(-__-)l
212 / 201 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
Завершенные тесты: 1
19.10.2010, 20:51  [ТС] 7
Цитата Сообщение от KuKu Посмотреть сообщение
Если вы найдете способ умножения без сложения, вы станете моим кумиром.
что ж вы такие непонятливые! без сложения именно ДЛИННЫХ ЧИСЕЛ встроенные типы хоть раком в степень возводи...
0
Day
1164 / 969 / 83
Регистрация: 29.10.2009
Сообщений: 1,386
20.10.2010, 12:13 8
gGrn-7DA, вот есть такая библиотечка (сам себе скострумил)
Посмотри на функцию MultL
0
Вложения
Тип файла: zip LONG.ZIP (1.7 Кб, 89 просмотров)
taras atavin
4199 / 1776 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
20.10.2010, 12:38 9
Цитата Сообщение от gGrn-7DA Посмотреть сообщение
что ж вы такие непонятливые! без сложения именно ДЛИННЫХ ЧИСЕЛ встроенные типы хоть раком в степень возводи...
Нельзя умножать числа без сложения в полной разрядности промежуточных результатов, а полная разрядность - длинная. Но можно сложение длинных чисел заменить сложением их разрядов с переносом в любой, в том числе, смешанной системе. Если у тебя длинное число валяется в массиве, то каждый его элемент - цифра, сама записанная как число в другой системе и таким образом можно слепить хоть систему с основаниями 2 и 2 147 483 647 (если long int - базовый тип массива). То есть воткни свою процедуру длинного сложения инлайном.
0
gGrn-7DA
мну довольно <(-__-)l
212 / 201 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
Завершенные тесты: 1
20.10.2010, 18:22  [ТС] 10
Цитата Сообщение от taras atavin Посмотреть сообщение
То есть воткни свою процедуру длинного сложения инлайном.
Спасибо, уже реализовал, и без единого ДЛИННОГО СЛОЖЕНИЯ!!! разъяснять как я это понимаю не собираюсь. и не флудите. заглядывать сюда больше не буду...
0
silent_1991
Эксперт С++
5025 / 3085 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
Завершенные тесты: 1
20.10.2010, 18:28 11
Видимо неправильно понимаете, в алгоритме умножения столбиком, если так судить, тоже нет сложения длинных чисел, там есть сложение/перенос разрядов, которые являются стандартными типами.
0
gGrn-7DA
мну довольно <(-__-)l
212 / 201 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
Завершенные тесты: 1
21.10.2010, 18:53  [ТС] 12
Мой код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            for (int i = 0; i < _FLength; ++i)
 
                for (int j = 0; j < _SLength; ++j)
 
                {
 
                    k = 0;
 
                    _Number[i + j] = (byte)((temp = _Number[i + j] + fln._digits[i] * sln._digits[j]) % 0x100);
 
                    while ((temp /= 0x100) != 0) { ++k; _Number[i + j + k] = (byte)((temp += _Number[i + j + k]) % 0x100); }
 
                }
не вижу тут стандартного умножения столбиком, модифицировал под себя, обойдетесь без коментариев.
1
Inadequate
Retired
7714 / 2546 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
24.10.2010, 03:00 13
gGrn-7DA, тебе могу лишь посоветовать подлечить нервы. За превращение темы в помойку и неоднократное хамство получаешь заслуженную карточку. По поводу снятия репутации, то я не знаю, что решат по этому поводу админы, но лично я считаю, что понизили её тебе абсолютно по делу. Будь спокойнее и не хами, авось люди к тебе и потянутся.

Day, я конечно понимаю, что ТС хамоват, но это еще не повод нарушать существующие правила, поэтому также получаешь вполне заслуженную карточку.

Тема закрыта.
0
24.10.2010, 03:00
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 03:00

Определить номер строки в которой находится самая длинная серия одинаковых элементов в матрице.
dana celo4islenna9 pr9mougol'na9 matrica. Opredelit': nomer stroki v kotoroi naxodits9 sama9...

Длинная арифметика
Подскажите, пожалуйста, где ошибки в программе. Еще хотелось бы узнать, правильно ли реализована...

Длинная арифметика (A+B)
Вот написал программу A+B для чисел &quot;космических&quot; величин всё работает на ура, но вот проблемка...


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

Или воспользуйтесь поиском по форуму:
13
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.