Страница: 1 |
Страница: 1 |
Вопрос: Простая умножалка. А числа не простые :-)
Добавлено: 19.04.05 22:27
Автор вопроса: Morpheus | Web-сайт:
День добрый!
Написал прогу или скорее алгоритм (какая там прога-консоль чистый :-) для нахождения произведения двух целых чисел (хоть положительных хоть отрицательных хоть нулевых :). Ограничение полученного результата: 9.(9)*10^255 по моему и то это из-за того, что строки короткие. Скорость выполнения позволит работать и с гораздо большими числами, просто кому надо больше вводить :) Я вот чё прошу: если у кого есть подобная прога (или так, на глаз), не могли бы вы протестить на
правильность вычисления (а за одно и на скорость) мою прогу? я конечно всё проверял, но вдруг баги полезут :)
У меня в планах есть ипользовать этот алгоритм для вычисления офигенно больших степеней. Буду рад любому отзыву (если конечно смогу исправить возможные баги :-)
Вот адресс (10.3 Кб) :
http://www.superyurka.narod.ru/upload/xederix_multiply.zip
Заранее благодарен.
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #1
Добавлено: 20.04.05 00:33
Странно
99999*99999 вычисляет, а 999999999999999999*9999999999999999999999 вылетает Хотя такие числа как 65965438654964396436974396*754932754357439543753
(от балды набрал) запросто считает, скорее всего маленький глючок где-то
Номер ответа: 2
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #2
Добавлено: 20.04.05 20:13
Ты это... Сделай лучше прогу, производящую операции с "неоднозначными числами", заданными набором интервалов. Крутая вещь будет.
Номер ответа: 3
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #3
Добавлено: 20.04.05 20:35
2Страшный Сон
А чё за набор интервалов? Мож попробую
А ошибку я нашёл, там в одном месте буфер маленький выделил. Теперь, когда я её с паскаля н делфи перекомпилировал (размер блин страшный! 330 кб) она может перемножать числа длиной от одного конца комнаты до другого и без тормоза вообще только не знаю как проверить
Номер ответа: 4
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #4
Добавлено: 21.04.05 16:18
Короче, такое число можно представить так, к примеру:
( -INF; -5 ] || [ 0 ] || ( 2.5 ; +INF )
Это значит, что число либо меньше или равно пяти, либо равно нулю, либо больше 2.5. А теперь объедидим его с этим числом:
[ -4 ; 4 ]
И получаем:
( -INF; -5 ] || [ -4 ; +INF )
Номер ответа: 5
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #5
Добавлено: 21.04.05 17:46
я может что то не так делаю на при 32 девятках умноженных на 32 9 он
выдает не такой ответ как в каклькуляторе микрософтовском. введи в
Calc.exe на все поле девяток и умнож их на столькоже он выдаст 9,9999999999999999999999999999998e+63
что не вполне совпадает с твоим результатом. Может я не прав но я
руковдствуюсь тем, что мне выдает твоя прога и сравниваю с
калькулятором.
Номер ответа: 6
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #6
Добавлено: 21.04.05 18:11
Vik, привет!
Да в такой роге просто невозможно огибиться. Скорее всего глюк мой.
А какую прогу ты использовал? ту, что я на емаил кинул на топике? Эта с глюком. Если всё же ты юзал прогу с есаила то вот результаты:
Calc: 9.9999999999999999999999999999998e+63
Моя: 9999999999999999999999999999999800000000000000000000000000000001
У тебя так? Если да, то подскажи где неточность?