Страница: 1 | 2 |
Вопрос: Большие числа
Добавлено: 25.05.05 08:12
Автор вопроса: hak
Кто знает как работать с большими числами? Допустим:
a=99999999999999999999999999
b=88888888888888888888888888
c=77777777777777777777777777
x=a*b*c
Замучился если это возможно то как? Long-а нехватает.
Ответы
Всего ответов: 20
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 25.05.05 09:45
Попробуй Double, хотя врят ли поможет
Номер ответа: 2
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #2
Добавлено: 25.05.05 09:53
Double поможет, если сами числа или результат не превышают +/- 1.7 Е+308
Номер ответа: 3
Автор ответа:
ANDREY Z5Z
Вопросов: 38
Ответов: 125
Web-сайт:
Профиль | | #3
Добавлено: 25.05.05 10:08
А в Decimal не входят такие значения?
CDec(x) - преобразовать в Decimal
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 25.05.05 10:29
В Decimal больше мантисса. Для очень больших чисел нужен Double или свой тип. Либо .NET, там числа внушительнее.
Номер ответа: 5
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #5
Добавлено: 25.05.05 11:34
Внушительнее - это как? Толще что ли
Какое самое большое число в .NET помещается? Гугол?
Номер ответа: 6
Автор ответа:
ANDREY Z5Z
Вопросов: 38
Ответов: 125
Web-сайт:
Профиль | | #6
Добавлено: 25.05.05 12:32
По-моему больше не только мантисса
Expression:
Любое числовое значение или строка, представляющая целое число в диапазоне +/-79 228 162 514 264 337 593 543 950 335 или смешанное с не более чем 28 цифрами в дробной части в диапазоне +/-7.9228162514264337593543950335. Минимально возможное ненулевое число 0.0000000000000000000000000001
Номер ответа: 7
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #7
Добавлено: 25.05.05 16:03
Где же морфеус он недавно сделал такую прогу чтобы умножала такие числа. Даже исходниками не жмотничал.
Номер ответа: 8
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #8
Добавлено: 25.05.05 16:04
если ты позволишь запихать числа в String, то я знаю как перемножать числа длинной (!) до .... не знаю, у у меня любые перемножала, вот только проверить тяжеловато.
Номер ответа: 9
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #9
Добавлено: 25.05.05 16:51
Умножение можно эмулировать поразрядно. Только это будет в тыщу раз медленнее.
Номер ответа: 10
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #10
Добавлено: 25.05.05 17:09
Умножение - это многократное сложение
Номер ответа: 11
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #11
Добавлено: 25.05.05 22:37
Это называется длинная арифметика. Если эмулировать в десятичной системе и хранить в строках, то да, это будет в 1000 раз медленнее, а вот если в 256-ричной и хранить в байтовых массивах, то нормально.
Номер ответа: 12
Автор ответа:
hak
Вопросов: 5
Ответов: 12
Профиль | | #12
Добавлено: 26.05.05 08:44
Morpheus скажи пожалуйсто как, пусть в String-е, и если не сложно черкни плиз какая максимальная длина?!
Номер ответа: 13
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #13
Добавлено: 26.05.05 08:46
Максимальная длина - сколько в оперативку влезет.
Номер ответа: 14
Автор ответа:
hak
Вопросов: 5
Ответов: 12
Профиль | | #14
Добавлено: 26.05.05 08:50
Sharp а можешь по подробней? Желательно в программном коде.
Номер ответа: 15
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #15
Добавлено: 26.05.05 11:17
Ну это типа 32-байтное слово. Можно ещё представить в виде 8 Long'ов или 16 Integer'ов. Вот только запрограммировать работу с таким числом будет морокой.