Бооольшие Числа В Vb
Люди помогите!!!
Заранее спасибо! :D
Я начал писать прогу на VB и мне понадобилось работать с БОЛЬШИМИ числами. Я начал работать с числами как со строками, но вот проблема: операции деления, умножения, сложения, вычитания работают очень медленно, а когда выполняешь несколько действий ещё хуже. Может можно как-то ускорить процесс? Может лучше использовать какой другой язык(Visual C++)? Или же воспользоваться многопоточностью в VB?
Люди помогите!!!
Ты сам реализовывал сложение и умножение столбиком? Возможно, можно соптимизировать эти алгоритмы.
Ты сам реализовывал сложение и умножение столбиком? Возможно, можно соптимизировать эти алгоритмы.
Сделал как смог, а нет у тебя исходника?:???:
Сделал как смог, а нет у тебя исходника?:???:
Нет у меня исходника, мне же этого не надо было.
Моя зарплата помещается в тип данных Long. :)
В принципе, могу помочь написать какой-нибудь код.
Только опиши подробнее, какая у тебя задача (с точки зрения объема вычислений), чтобы выделка соответствовала овчинке.
Все равно, опиши-ка задачу поподробней.
Нет у меня исходника, мне же этого не надо было.
Моя зарплата помещается в тип данных Long. :)
В принципе, могу помочь написать какой-нибудь код.
Только опиши подробнее, какая у тебя задача (с точки зрения объема вычислений), чтобы выделка соответствовала овчинке.
Мне необходимо работать числа, точность которых как минимум 1000 знаков
Хотя вот какие-то зачатки нашел в своих архивах.
Все равно, опиши-ка задачу поподробней.
Не знаю чего-то архив не распаковывается
А какие действия тебе с ними надо делать?
Все четыре арифметических? Или какие-то не надо?
Ладно, забей на архив. Там все равно не то, что тебе нужно.
А какие действия тебе с ними надо делать?
Все четыре арифметических? Или какие-то не надо?
Все четыре
Все четыре
Ох-ох-ох. Ладно. Я вечерочком поразмыслю над этим. Утром чего-нибудь состряпаем.
Сейчас сижу пишу. (Так что если уже не надо, предупреди!)
Тебе это срочно?
Но я все равно это сделаю, мне самому интересно.
Глядишь, в жизни пригодится.
А тебе какого быстродействия надо достичь?
Блин, шеф работы подкинул.
Тебе это срочно?
Но я все равно это сделаю, мне самому интересно.
Глядишь, в жизни пригодится.
А тебе какого быстродействия надо достичь?
Надо что бы допустим для числа с кол-вои знаков 600 находил MOD 256 хотя бы за 4-6 секунды. Чем быстрее тем лучше!! Может все-таки использовать многопоточность. Или нет ли таких прог что бы из VB переводила на VC++, чтобы потом там и многопоточность использовать и вообще проги на VС++ быстрее работают. Только вот проблеиа времени у меня мало, а в VC++ я плохо разбираюсь. :o
Надо что бы допустим для числа с кол-вои знаков 600 находил MOD 256 хотя бы за 4-6 секунды. Чем быстрее тем лучше!! Может все-таки использовать многопоточность. Или нет ли таких прог что бы из VB переводила на VC++, чтобы потом там и многопоточность использовать и вообще проги на VС++ быстрее работают. Только вот проблеиа времени у меня мало, а в VC++ я плохо разбираюсь. :o
Ёшкин кот! Так конкретно для этой задачи не надо никаких больших чисел. 256=2^8.
100 000 000 = 10^8 - всегда делится на 256.
Поэтому для остатка при делении на 256 достаточно взять последние 8 цифр числа (а это прекрасно влезает в Long), и найти у них остаток. Он совпадет с остатком бооольшого числа.
Но задача все равно мне интересна, так что я ее не брошу. 8)
Ёшкин кот! Так конкретно для этой задачи не надо никаких больших чисел. 256=2^8.
100 000 000 = 10^8 - всегда делится на 256.
Поэтому для остатка при делении на 256 достаточно взять последние 8 цифр числа (а это прекрасно влезает в Long), и найти у них остаток. Он совпадет с остатком бооольшого числа.
Но задача все равно мне интересна, так что я ее не брошу. 8)
Но чего я не совсем понимаю. Если у нас число 600 произвольных цифр, то как же таким способом это сделать. Объясни еще раз если не трудно
Ёшкин кот! Так конкретно для этой задачи не надо никаких больших чисел. 256=2^8.
100 000 000 = 10^8 - всегда делится на 256.
Поэтому для остатка при делении на 256 достаточно взять последние 8 цифр числа (а это прекрасно влезает в Long), и найти у них остаток. Он совпадет с остатком бооольшого числа.
Но задача все равно мне интересна, так что я ее не брошу. 8)
Огромное спасибо. Всё понял(извините за глупые вопросы). Если нужна помощь в строковых операциях могу помочь. Спасибо за помощь.
Огромное спасибо. Всё понял(извините за глупые вопросы). Если нужна помощь в строковых операциях могу помочь. Спасибо за помощь.
Бывай. Но я уже увлекся процессом, так что операции над большими числами я таки доделаю.
Результат выложу потом в эту тему.
Интересно, насколько быстродействие пострадает.
Я пару лет назад сталкивался на Кларионе с подобной проблемой. Только там нужно было не 1000-значные числа перемножать, а формулы с 1000-ми слагаемыми разбирать. И в результате написанный алгоритм отставал от встроенных Кларионовских функций (в задаче их нельзя было применять из-за некоторых ограничений) всего в 1.5 раза, что я считаю очень неплохим показателем.
Огромнейшее спасибо!!:)