Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Бооольшие Числа В Vb

2.0K
22 января 2003 года
Invisible
26 / / 22.01.2003
Я начал писать прогу на VB и мне понадобилось работать с БОЛЬШИМИ числами. Я начал работать с числами как со строками, но вот проблема: операции деления, умножения, сложения, вычитания работают очень медленно, а когда выполняешь несколько действий ещё хуже. Может можно как-то ускорить процесс? Может лучше использовать какой другой язык(Visual C++)? Или же воспользоваться многопоточностью в VB?
Люди помогите!!!

Заранее спасибо! :D
267
23 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Invisible
Я начал писать прогу на VB и мне понадобилось работать с БОЛЬШИМИ числами. Я начал работать с числами как со строками, но вот проблема: операции деления, умножения, сложения, вычитания работают очень медленно, а когда выполняешь несколько действий ещё хуже. Может можно как-то ускорить процесс? Может лучше использовать какой другой язык(Visual C++)? Или же воспользоваться многопоточностью в VB?
Люди помогите!!!



Ты сам реализовывал сложение и умножение столбиком? Возможно, можно соптимизировать эти алгоритмы.

2.0K
23 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by Cutty Sark


Ты сам реализовывал сложение и умножение столбиком? Возможно, можно соптимизировать эти алгоритмы.



Сделал как смог, а нет у тебя исходника?:???:

267
23 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Invisible


Сделал как смог, а нет у тебя исходника?:???:



Нет у меня исходника, мне же этого не надо было.
Моя зарплата помещается в тип данных Long. :)

В принципе, могу помочь написать какой-нибудь код.
Только опиши подробнее, какая у тебя задача (с точки зрения объема вычислений), чтобы выделка соответствовала овчинке.

267
23 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Хотя вот какие-то зачатки нашел в своих архивах.

Все равно, опиши-ка задачу поподробней.
2.0K
23 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by Cutty Sark


Нет у меня исходника, мне же этого не надо было.
Моя зарплата помещается в тип данных Long. :)

В принципе, могу помочь написать какой-нибудь код.
Только опиши подробнее, какая у тебя задача (с точки зрения объема вычислений), чтобы выделка соответствовала овчинке.


Мне необходимо работать числа, точность которых как минимум 1000 знаков

2.0K
23 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by Cutty Sark
Хотя вот какие-то зачатки нашел в своих архивах.

Все равно, опиши-ка задачу поподробней.


Не знаю чего-то архив не распаковывается

267
23 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Ладно, забей на архив. Там все равно не то, что тебе нужно.

А какие действия тебе с ними надо делать?
Все четыре арифметических? Или какие-то не надо?
2.0K
23 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by Cutty Sark
Ладно, забей на архив. Там все равно не то, что тебе нужно.

А какие действия тебе с ними надо делать?
Все четыре арифметических? Или какие-то не надо?


Все четыре

267
23 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Invisible

Все четыре



Ох-ох-ох. Ладно. Я вечерочком поразмыслю над этим. Утром чего-нибудь состряпаем.

267
24 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Примерно понятно, что делать.
Сейчас сижу пишу. (Так что если уже не надо, предупреди!)
267
24 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Блин, шеф работы подкинул.
Тебе это срочно?
Но я все равно это сделаю, мне самому интересно.
Глядишь, в жизни пригодится.
А тебе какого быстродействия надо достичь?
2.0K
24 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by Cutty Sark
Блин, шеф работы подкинул.
Тебе это срочно?
Но я все равно это сделаю, мне самому интересно.
Глядишь, в жизни пригодится.
А тебе какого быстродействия надо достичь?


Надо что бы допустим для числа с кол-вои знаков 600 находил MOD 256 хотя бы за 4-6 секунды. Чем быстрее тем лучше!! Может все-таки использовать многопоточность. Или нет ли таких прог что бы из VB переводила на VC++, чтобы потом там и многопоточность использовать и вообще проги на VС++ быстрее работают. Только вот проблеиа времени у меня мало, а в VC++ я плохо разбираюсь. :o

267
24 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Invisible

Надо что бы допустим для числа с кол-вои знаков 600 находил MOD 256 хотя бы за 4-6 секунды. Чем быстрее тем лучше!! Может все-таки использовать многопоточность. Или нет ли таких прог что бы из VB переводила на VC++, чтобы потом там и многопоточность использовать и вообще проги на VС++ быстрее работают. Только вот проблеиа времени у меня мало, а в VC++ я плохо разбираюсь. :o



Ёшкин кот! Так конкретно для этой задачи не надо никаких больших чисел. 256=2^8.
100 000 000 = 10^8 - всегда делится на 256.
Поэтому для остатка при делении на 256 достаточно взять последние 8 цифр числа (а это прекрасно влезает в Long), и найти у них остаток. Он совпадет с остатком бооольшого числа.

Но задача все равно мне интересна, так что я ее не брошу. 8)

2.0K
24 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by Cutty Sark


Ёшкин кот! Так конкретно для этой задачи не надо никаких больших чисел. 256=2^8.
100 000 000 = 10^8 - всегда делится на 256.
Поэтому для остатка при делении на 256 достаточно взять последние 8 цифр числа (а это прекрасно влезает в Long), и найти у них остаток. Он совпадет с остатком бооольшого числа.

Но задача все равно мне интересна, так что я ее не брошу. 8)


Но чего я не совсем понимаю. Если у нас число 600 произвольных цифр, то как же таким способом это сделать. Объясни еще раз если не трудно

2.0K
24 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by Cutty Sark


Ёшкин кот! Так конкретно для этой задачи не надо никаких больших чисел. 256=2^8.
100 000 000 = 10^8 - всегда делится на 256.
Поэтому для остатка при делении на 256 достаточно взять последние 8 цифр числа (а это прекрасно влезает в Long), и найти у них остаток. Он совпадет с остатком бооольшого числа.

Но задача все равно мне интересна, так что я ее не брошу. 8)


Огромное спасибо. Всё понял(извините за глупые вопросы). Если нужна помощь в строковых операциях могу помочь. Спасибо за помощь.

267
24 января 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Invisible

Огромное спасибо. Всё понял(извините за глупые вопросы). Если нужна помощь в строковых операциях могу помочь. Спасибо за помощь.



Бывай. Но я уже увлекся процессом, так что операции над большими числами я таки доделаю.
Результат выложу потом в эту тему.
Интересно, насколько быстродействие пострадает.

Я пару лет назад сталкивался на Кларионе с подобной проблемой. Только там нужно было не 1000-значные числа перемножать, а формулы с 1000-ми слагаемыми разбирать. И в результате написанный алгоритм отставал от встроенных Кларионовских функций (в задаче их нельзя было применять из-за некоторых ограничений) всего в 1.5 раза, что я считаю очень неплохим показателем.

2.1K
31 января 2003 года
alexsid
18 / / 31.01.2003
http://algolist.manual.ru/maths/longnum.php

Готовое решение...
2.0K
31 января 2003 года
Invisible
26 / / 22.01.2003
Цитата:
Originally posted by alexsid
http://algolist.manual.ru/maths/longnum.php

Готовое решение...



Огромнейшее спасибо!!:)

2.1K
31 января 2003 года
alexsid
18 / / 31.01.2003
:) Не за что... Приходите еще!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог