Большой Воронежский Форум
Страница 2 из 3
< 12 3 >
» Программирование>VBA как возвести в степень
МанЬя4ка 13:06 24.03.2009
MadFish, а насколько долго он будет его считать?

Сообщение от :
Сделаю за пиво (предпочитаю гротверг)

и в каком количестве? только что бы считал [Ответ]
MadFish 16:23 24.03.2009
Целочисленную арифметику(ну и возведение в степень) сделаю так, бо ума большого не надо, а вот если придется парится с тейлором и дробями тогда возникает 3 вопроса
№1 какова должна быть точность вычисления (сколько знаков после запятой)
№2 Числа представлять с фиксированной или плавающей точкой?
№3 Если с плавающей сколько отводить под мантиссу и экспоненту?

За дроби пара кружек гротверга как минимум!!!

ЗЫ считать это добро будет ну ОООООООООЧЕНЬ ДОЛГО!!!!!! Я напишу, тесты на дважды два прогоню, но смотреть как она будет решать реальную задачу даже не упрашивайте. У меня столько нервов нет [Ответ]
Yandex 18:16 24.03.2009
MadFish, настоящий путь самурая
И охота писать то, что уже по несколько десятков раз реализовано?
Хотя пиво, наверно, вкусное
[Ответ]
MadFish 11:11 25.03.2009

Сообщение от Yandex:
MadFish, настоящий путь самурая
И охота писать то, что уже по несколько десятков раз реализовано?

Ну так о чем тогда шел спор? Если реализовано выложи реализацию, а то флуд один... [Ответ]
Yandex 11:41 25.03.2009
В топике я уже упоминал готовые решения для C/C++. Другое дело, что разобраться в них и прикрутить к Excel не очень то и тривиально. Однако, если получится, - скорость и надежность будет.
Реализовывать на VBA большие числа, лично мне кажется сомнительной затеей. Хотя, если ограничится одним mod (с ним только проблемы), возможно как то и получится исхитриться, напр. через теорему Эйлера. [Ответ]
MadFish 13:47 25.03.2009
Яндекс ты чудо!!!

Сообщение от Yandex:
готовые решения для C/C++. Другое дело, что разобраться в них и прикрутить к Excell не очень то и тривиально.

Ты предлагаешь человеку знающему только VBA, скачать гнутые севые исходники, и мало того что пересобрать под винду, так еще написать обертку в виде ActiveX или в виде расширения Excell.
Я, как программер со стажем, за такое взялся бы только если ооочень много плотют, либо в приказном порядке далать так а не иначе. Реализовать столбик на ПОРЯДКИ ПРОЩЕ!!!!!!! [Ответ]
МанЬя4ка 15:28 25.03.2009
а сделать ее в делфи можно? говорят, что проще... и без библиотек и прочих страшных слов, что Вы говорите
В VBA у меня проблема такая, что число большое то получается, только с плавающей точкой. Как его перевести в String или просто ее от туда убрать не могу понять, отсюда и проблема с mod.
[Ответ]
dn2k4 16:05 25.03.2009

Сообщение от MadFish:
так еще написать обертку в виде ActiveX или в виде расширения Excell

Хехе... я вот тут обертку к kernel32.dll написал:

Код:
Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (strDrive As String) As Long
К кому теперь обращаться, чтобы ооочень много плотили? =)
(и что, кста, проще - релизить велосипед-столбик или просто скомпилировать?)

В общем - нормальное решение [Ответ]
MadFish 17:07 25.03.2009
dn2k4, Дааа.... Век живи век учись. Почитал спасибо. Интересно. Я же всегда думал что в скриптовых языках внешние компоненты вызываются только через IDispatch. Пошел покурю доки по VBA.

Яндекс тогда может ты и прав. Завернуть все в длл может получится быстрее. Сори
[Ответ]
dn2k4 17:08 25.03.2009
MadFish, stdcall вполне достаточно =)
Но это фишка vba онли... [Ответ]
shuri 18:04 25.03.2009
А нормально объявлять переменные Пушкин должен? Банально все решается НОРМАЛЬНЫМ описанием переменных, которого в предлагаемых вариантах, как и в оригинале - НЕТ [Ответ]
Yandex 18:27 25.03.2009
shuri, ух ты. А можно сразу реализацию с правильными названиями, а то все i да j...

gmplib собирать автору ни в коем разе не советовал - я и сам то их трогать боюсь Это просто как вариант: если совсем прижмет, то можно человека нанять, который все сделает. Библиотеку можно поискать и попроще.

Так же еще на Delphi думаю есть библиотеки для работы с большими числами, но про такие я что то не слышал (на Delphi давно уже писал). В небезысвестном сборнике сырцов с drkb.ru есть только целые.
[Ответ]
Yandex 18:33 25.03.2009
МанЬя4ка, можешь указать порядок a, b и с для твоей задачи?
a ^ b mod c

Кто из них больше и во сколько раз? [Ответ]
dn2k4 21:12 25.03.2009

Сообщение от Yandex:
то можно человека нанять, который все сделает.

Без паники. Беглый поиск приводит к уже готовым вариантам того же
http://www.sahuconsulting.com/projects/gmp-win32-bin

Там где-то и lib есть который, afaik, дельфя понимает. [Ответ]
shuri 18:31 26.03.2009

Сообщение от Yandex:
shuri, ух ты. А можно сразу реализацию с правильными названиями, а то все i да j...
gmplib собирать автору ни в коем разе не советовал - я и сам то их трогать боюсь Это просто как вариант: если совсем прижмет, то можно человека нанять, который все сделает. Библиотеку можно поискать и попроще.
Так же еще на Delphi думаю есть библиотеки для работы с большими числами, но про такие я что то не слышал (на Delphi давно уже писал). В небезысвестном сборнике сырцов с drkb.ru есть только целые.

Угу, щас разбежался. Хочешь ответ - пиши в личку (не волнуйся, денег не возьму, помогу просто так), для остальных - при всем моем уважении ко всем - это ЭЛЕМЕНТАРНАЯ задача. Все варианты - в свалку, это решается элементарно :-) [Ответ]
Yandex 18:55 26.03.2009
shuri, мне ответ нафиг не нужен, хотя бы одним глазком взглянуть стоит - чего это все не увидели.
А вот автору темы МанЬя4ка - вышли. Она там небось локти сидит кусает. [Ответ]
shuri 20:43 26.03.2009

Сообщение от Yandex:
shuri, мне ответ нафиг не нужен, хотя бы одним глазком взглянуть стоит - чего это все не увидели.
А вот автору темы МанЬя4ка - вышли. Она там небось локти сидит кусает.

Извини, сейчас водку пьянствую :-( Рад помочь, но мне нужен полный текст задания, мдя, я этого никогда не делал, но ... черт вас побери 304-437-906 (угрюмо, это аська) [Ответ]
shuri 20:55 26.03.2009

Сообщение от Yandex:
shuri, мне ответ нафиг не нужен, хотя бы одним глазком взглянуть стоит - чего это все не увидели.
А вот автору темы МанЬя4ка - вышли. Она там небось локти сидит кусает.

Пиши в личку, ваши связи меня мало интересует %-) [Ответ]
shuri 21:12 26.03.2009
Такс, умные, бля00,дамы --- тип переменной double !!!!!!!!!!!! [Ответ]
][irurg 21:20 26.03.2009
shuri, если бы в VBA был double билл гейтса на руках носили бы.. или есть?..

апд. ты гляди и правда есть

Сообщение от :
Справочник по языку Visual Basic
Тип данных Double (Visual Basic)
Обновлен: Июль 2008
Переменные типа Double хранятся как 64-разрядные (8-байтные) IEEE-числа двойной точности с плавающей запятой и знаком, которые изменяются в диапазоне от -1,79769313486231570E+308 до -4,94065645841246544E-324 для отрицательных значений и от 4,94065645841246544E-324 до 1,79769313486231570E+308 для положительных. Числа двойной точности сохраняют приближенные значения действительных чисел.
' Visual Basic expands the 4 in the statement Dim dub As Double = 4R to 4.0:
Dim dub As Double = 4.0R

хотя тогда не понятно к чему такие извраты

Сообщение от :
The example below shows how CDbl can be used in Excel VBA to convert to a Double data type. -1.79769313486231E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
Sub ConvertToDouble()
Dim vCurr, dDouble
cCurr = CCur(234.456784)
dDouble = CDbl(cCurr * 100.1)
MsgBox dDouble
End Sub

[Ответ]
shuri 21:30 26.03.2009
должен удивить - он там есть, мне пример привести? или отослать к "верблюду" ?И не надо приводит примеры "с валютой" %-) [Ответ]
Part!zan 22:13 26.03.2009

Сообщение от shuri:
тип переменной double

Ни в какой double не влезут такие большие числа с требуемой точностью. [Ответ]
shuri 22:19 26.03.2009

Сообщение от Part!zan:
Ни в какой double не влезут такие большие числа с требуемой точностью.

Влезут :-) [Ответ]
Part!zan 22:21 26.03.2009
shuri, докажи [Ответ]
shuri 22:31 26.03.2009

Сообщение от Part!zan:
Ни в какой double не влезут такие большие числа с требуемой точностью.

Мне скрин приложить или так поверишь? Банально, запусти любой "excel", в строчке набери 25^99 (можно и другое, честно говоря, без разницы, главное степень), точнее =25^99. И ? После формата ячейки? Может хватит? Без обид, но я кучу дерьма на этом писал :-) Даже за деньги %-) [Ответ]
Part!zan 22:39 26.03.2009
shuri, объясни мне связь типа double и ячейки екселя. Ты серьезно думаешь, что он через даблы считает? Приведи пример на VBA, а не формулы в ячейках. [Ответ]
shuri 22:40 26.03.2009

Сообщение от Part!zan:
Ни в какой double не влезут такие большие числа с требуемой точностью.

???? Влезут- ("правильный "вариант" я тоже знаю :-)) И я прекрасно знаю, как это "влазит" в остальных системах, у "них" - наиболее правильный :-), в случае vb :-) [Ответ]
Part!zan 22:47 26.03.2009
shuri, ваще не понял, чего ты имеешь в виду... То что тип double не обеспечивает нужной точности - это факт. Глупо с ним спорить. Кстати, в ячейке екселя получается та же самая округленная фигня. [Ответ]
shuri 22:56 26.03.2009

Сообщение от Part!zan:
shuri, ваще не понял, чего ты имеешь в виду... То что тип double не обеспечивает нужной точности - это факт. Глупо с ним спорить. Кстати, в ячейке екселя получается та же самая округленная фигня.

врешь %-) [Ответ]
MadFish 23:04 26.03.2009
Ну вы еще подеритесь горячие финские парни

Сообщение от MSDN:
Visual Basic Language Reference
Double Data Type (Visual Basic)

Holds signed IEEE 64-bit (8-byte) double-precision floating-point numbers ranging in value from -1

те максимальное значение без потери точности 19 полных разрядов. 18446744073709551615 (2^64 < 22^99)


МАЛАВАТА БУДЕТ!!!!(с) Падал прошлогодний снег
[Ответ]
Страница 2 из 3
< 12 3 >
Вверх