Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Как реализовать возведение числа в произвольную степень?   Найти похожие ветки 

 
A JI E LLI A   (2003-11-29 21:29) [0]

Подскажите, как можно реализовать возведение числа в произвольную степень, например 2.2, 5.69 и т.д., плиз!


 
Anatoly Podgoretsky ©   (2003-11-29 21:43) [1]

По английски это Power


 
Александр из Минска ©   (2003-11-29 21:58) [2]

Да, да... Power в модуле Math


 
Mr.Nobody   (2003-11-29 22:32) [3]

А еще можно выпендриться и реализовать самому...

a=b^k => ln(a)=ln(b^k) => ln(a)=k*ln(b) => exp(ln(a))=exp(k*ln(a)) => a=exp(k*ln(a))

т.е. в Delphi exp(k*ln(a)) даст Вам a в степени k


 
Александр из Минска ©   (2003-12-01 16:08) [4]

Mr.Nobody
Наверное Вы имели ввиду exp(k*ln(b)) (b - число; k - степень)
А знаете ли Вы, что эта штука не пройдет, когда у Вас число b < 0!!!


 
Floppy   (2003-12-01 16:19) [5]

>Александр из Минска © (01.12.03 16:08) [4]
А каким образом ВЫ это реализуете "вручную", без Дельфи (или это ГЛЮК Дельфи)?
Если знаете, выложите решение для отрицательного "b" и дробного (НЕ ЧЁТНОГО) "k".
Спасибо


 
Думкин ©   (2003-12-01 17:40) [6]


> [5] Floppy (01.12.03 16:19)

А в чем проблема? Одно условие и все, а поделить всегда можно.


 
Александр из Минска ©   (2003-12-01 17:48) [7]

Я же уже писал, что в модуле Math (unit ..., Math;) есть Функция для возведения любого числа в любую степень!


 
nikkie ©   (2003-12-01 18:09) [8]

>Александр из Минска
чушь не порите

function Power(const Base, Exponent: Extended): Extended;

Description
Power raises Base to any power. For fractional exponents or exponents greater than MaxInt, Base must be greater than 0.


 
Александр из Минска ©   (2003-12-02 20:17) [9]

to nikkie:
Не знаю, кто тут чушь порет, но у меня все прекрасно работает!
ShowMessage(FloatToStr(Power(-5, 3))); //выводит -125
ShowMessage(FloatToStr(Power(-5, 2))); //выводит 25
ShowMessage(FloatToStr(Power(-5, -2))); //выводит 0.04
ShowMessage(FloatToStr(Power(-5, -3))); //выводит -0.008
Все РАБОТАЕТ НОРМАЛЬНО!!!


 
Nikolay M. ©   (2003-12-02 20:25) [10]


> Александр из Минска © (02.12.03 20:17) [9]

For fractional exponents or exponents greater than MaxInt, Base must be greater than 0.
Математику давно проходили? И, похоже, все больше мимо?


 
Александр из Минска ©   (2003-12-02 22:44) [11]

to Nikolay M.
Можете по-русски написать? Все же работает... Что Вам не нравится?
А математику я до сих пор изучаю (10-ый класс)!


 
Александр из Минска ©   (2003-12-02 23:00) [12]

Все понятно... Но к сожалению, я этого не знаю!


 
Nikolay M. ©   (2003-12-03 09:14) [13]


> Александр из Минска ©

Объясняю доступно, на пальцах и легкоусвояемо.
Всем, даже школьникам, известно, что при возведении отрицательного числа в четную степень получится положительное число ( (-2)^2 = (-2)*(-2) = 4), при возведении в нечетную - получится отрицательное число ( (-2)^3 = (-2)*(-2)*(-2) = -8).
В частном случае отрицательное число можно иногда (зависит от четности n и m) возвести в степень вида n/m: a^(n/m) = корень m-й степени из (a^n). В общем случае для произвольного дробного числа этого сделать нельзя.


 
Думкин ©   (2003-12-03 10:42) [14]

> [13] Nikolay M. © (03.12.03 09:14)

Можно, только надо в комплексные числа окунаться.

> [9] Александр из Минска © (02.12.03 20:17)

Попробуй
ShowMessage(FloatToStr(Power(-5.3, 3.2)));
ShowMessage(FloatToStr(Power(-5.3, -3.2)));


 
Nikolay M. ©   (2003-12-03 11:01) [15]


> Думкин © (03.12.03 10:42) [14]

Угу. А есть еще гиперкомплексные. А можно вообще не зацикливаться на вещественных числах, а работать с произвольными группами или полями. А еще я и не такие слова знаю :?)
Тока не уверен, что Math.Power меня поймет :?)


 
Amoeba   (2003-12-03 12:55) [16]

Посмотри ф-ию
function XtoY (const X, Y: Extended): Extended;
в библиотеке ESBMaths
http://www.esbconsult.com.au/downloads.html
http://www.esbconsult.com.au/esbmaths.zip



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
14-36814
ИдиотЪ
2003-11-19 13:43
2003.12.12
А кто модерирует модераторов ?


3-36555
Goida
2003-11-22 21:19
2003.12.12
Нормализация ширины столбцов в Гриде


1-36592
BaDeVlad
2003-12-03 09:14
2003.12.12
Восстановление удаленного файла


4-36887
zdn
2003-10-19 11:31
2003.12.12
Работа с файлами


1-36736
Анна
2003-12-01 17:42
2003.12.12
Открытие других программ из приложения