Целочисленную арифметику(ну и возведение в степень) сделаю так, бо ума большого не надо, а вот если придется парится с тейлором и дробями тогда возникает 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
К кому теперь обращаться, чтобы ооочень много плотили? =)
(и что, кста, проще - релизить велосипед-столбик или просто скомпилировать?)
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
Там где-то и 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
Сообщение от 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 не обеспечивает нужной точности - это факт. Глупо с ним спорить. Кстати, в ячейке екселя получается та же самая округленная фигня.