Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Нахождение экспоненты акшон скриптом (http://www.flasher.ru/forum/showthread.php?t=24398)

Countach 11.12.2001 21:20

Нахождение экспоненты акшон скриптом
 
Всем кому интересно как в калькуляторе запрограмирована экспонента e^x даю свой вариант :)
Код:

// exponent implementation 1.0 beta
// VARIABLES
// app=approximation
// coef=coeffecient
// num=numerator
// den=denominator
// x=power of exponent
// sum=sum of the parts
// res=result of num/den
x = text1;
appx = text2;
sum = 1+x;
for (coef=2; coef<appx; coef++) {
    for (i=1; i<coef; i++) {
        x = x*x;
    }
    num = x;
    temp_coef = coef;
    den = temp_coef;
    for (i=1; i<coef; i++) {
        temp_coef--;
        den = den*temp_coef;
    }
    res = num/den;
    sum = sum+res;
}
text3 = sum;

;)

[subway]design 11.12.2001 22:28

ты крут!
мне понравилось.

Countach 12.12.2001 00:04

2[subway]design
пасибки ;)

Вот рабочая вещь
http://www.til-design.f2s.com/temp/exponent.swf

Vaicartana 12.12.2001 07:54

что то я торможу. А чем обычный ехр не нравится?

Big_J_ 12.12.2001 11:55

:D Ты бы Countach еще Дональда Кнут взял да его алгоритмы во флеше риализовал ты реально абъесни людям зачем писать:

Цитата:

// exponent implementation 1.0 beta
// VARIABLES
// app=approximation
// coef=coeffecient
// num=numerator
// den=denominator
// x=power of exponent
// sum=sum of the parts
// res=result of num/den
x = text1;
appx = text2;
sum = 1+x;
for (coef=2; coef<appx; coef++) {
for (i=1; i<coef; i++) {
x = x*x;
}
num = x;
temp_coef = coef;
den = temp_coef;
for (i=1; i<coef; i++) {
temp_coef--;
den = den*temp_coef;
}
res = num/den;
sum = sum+res;
}
text3 = sum;
Если во Флеше эта хрень одной строкой реализуется ???

Код:

X = Math.E//Передает значение 2.71828 переменной X
А если в степень експоненту поставить надобно то тогда так:

Код:

X = Math.pow(Math.E , Y);//Передает переменной X значение 2.71828 возведенную в степень Y.
И все. Ни читабельность ни страдает не функцыональность :)

[subway]design 12.12.2001 13:41

я думаю, что прикола ради...
ксати, у тебя кривое округление:
2.70333

Countach 12.12.2001 14:50

Ну вот, ничего вы не понимаете :( этож просто прикол, ну просто хотелось самому попробовать, и ж написал если кому интересно знать как в калькуляторе это запрограмировано ;)

Сразу наезд, злые вы какие-то

Countach 12.12.2001 14:55

ЗЫ почему криво :(
вот мое вычисление при Х=1, appx=18
2.71828182845905

А вот windows calculator
2.71828182845904523536028747135266

Всё нормально, просто при малых appx неточно получается
задавай 18 и всё ок

[subway]design 12.12.2001 15:02

Слушай, а ты можешь написать ф-цию для получения корня дробной степени (степенная функция)?
С удовольствием буду пользоваться :)

[subway]design 12.12.2001 15:07

и еще...
 
когда один раз вычислил, второй раз не работет. Приходится релоад жать.
PS: меня прикололо то, что ты просто обвешал переделанный мной исходник текстом и все! Даже кнопка моя осталась...
:D

Countach 12.12.2001 15:16

1. :D зы кнопка мне не нравится переделаю, надо красива сделать :), насчет повторного вычисления сегодня поправлю :)

2. что там тебе запрограмировать, надо то?? а то блин мозгам хоца нагрузки дать, но завтра :)
А то сейчас PC Piano в ассемблее програмлю, красный от синего не отличу :p

Countach 12.12.2001 15:18

Зы я по русски то их не знаю :)

sqrt((var)^(x/y)) ????
такое типа

Неее явно не это
блин в дет сад не отправляйте, и не ругайтесь, а лучше объясните, пока у меня MOV AX,BX ;)

[subway]design 12.12.2001 15:28

неет, у тебя sqrt() - это ж квадратный корень, а надо x в степени 3/4, вот... Я сам пробовал, но дальше, чем на целый показатель степени не сдвинулся...

Countach 12.12.2001 16:20

Чё просто X^(y/z) ????
Я на выходных зашарашу, зы надеюсь ;)

[subway]design 12.12.2001 16:25

да, самое оно, жаль во Флеше нет оператора ^
Вот в КуБайсике - был!

Countach 12.12.2001 17:47

Все гениально просто...(С) [subway]design 2001 ;) ты ж сам знаешь. Сделаю на днях, ну по крайней мере попробую :p

Vaicartana 12.12.2001 20:32

[subway]design Блин, этж совсем просто. exp(b*ln(a))=a^b

Ну если вы опять все через одно место тыды ой.

Countach 13.12.2001 01:26

Неееееееее там через Series expansion надо делать. Ждите проги ;)

TLamer 13.12.2001 03:46

^
 
да самое интересное что во флеше есть оператор ^

вот так - то ))

Countach 13.12.2001 17:24

2Vaicartana
каюсь, сори будет работать и так. Просто я через Ж. хотел сделать, но мне даже учитель посоветовал забыть про мои планы, если я не хочу мозги в трубочку завернуть :D

Barmaglot 13.12.2001 17:52

Вложений: 1
И все бы хорошо, да только правильно возводит только в первую степень. :D

Countach 13.12.2001 18:09

Блин внатуре неправильно :( :confused:

Мужики во флеше что нет встроенной math.ln(x) функции???
тока какое-то Г. типа
Math.LOG10E
Math.LOG2E
или как сказать что база будет Е (2.71) тут Math.log ( number )


Или как высчитать ln(x) умея считать экспоненту. У них вроде обратная зависимость
e^ln(x)=x
итд

блин не бросайте же плизз

Barmaglot 13.12.2001 18:22

Вложений: 1
Math.log(x); //- натуратильный логарифм х;

Правда у меня во флэшэ он почемуто обозван - Журнал :D

Countach 13.12.2001 18:39

каааааааак???? log its log, but ln is natural logarithm :(
Ну да ладно попробуем


А вот вроде нашел проблему в проге
теперь инфинити не выдает, но вот при Х=2 appx=18
результат такой 6.52444467698817e+50
это как понимать???

как сделать нормальный результат????

Countach 13.12.2001 18:44

УРА
все баги исправлены!!! Выпущена версия 2.0 гамма :D
приносим многочисленным пользователям нашей программы свои извинения за баги :D счас через 10 мин вывешу

KEEP CHECKING :p

[subway]design 13.12.2001 18:46

да-аа! Все гениальное просто.
 
Нафига изобретать велосипед, если умные люди уже постарались, а потом этот велосипед до ума доводить?

мозги в трубочку...

Barmaglot 13.12.2001 18:49

Это просту у нас и на западе у математиков написания этих функций различаются.

Вот еще примеры:
У нас У них
ln log
lg log10
tg tan
arctg atan
и т.д.

Countach 13.12.2001 18:52

Блин!!! :mad: ну что за Г. уже при Х=10 видны небольшие отклонения от показаний Виндоус калькулятор, а при 100 там ВАЩЕ фигня получается :(

Люди будте снисходительны, не вводите значения Х больше 10 ;)

Countach 13.12.2001 18:56

Пасибы мужики
Вот еще квесчон :) можно ли ln(x) высчитать с помощью e^x они ж обратные функции. Ну как же

2сабвэй
да запрограмлю сэдня завтра, не боись, может без супер наворотов. Мне не что-то для понта, просто интересно самому такое сделать

[subway]design 13.12.2001 18:59

Countach! Мы в тебя верим!
 
:D

Countach 13.12.2001 19:06

:D Ага, счас на социологию пилить, как муд%;" сидеть буду, как озверею нафик, как запрограмлю :)

Barmaglot 13.12.2001 19:11

function e(a) {
n = 1 << a;
s=1/n;
s++;
for (i=1; i<=a; i++) s=s*s;
return s;
};

function exp(x,a) {
res = e(a);
e2 = res;
for (i=1; i<x; i++) res *= e2;
if (x<0) res = 1/res;
return res;
};

Задавать значения "а" больше 30 не стоит
из-за ошибок округления
Конечно возведение в степень можно
оптимизировать, но лень. ;)

Вот результат вычисления exp(50)
5.18470359486491e+21 //Мой - exp(50,30);
5.1847055285871e+21 //Флэша - Math.exp(50);

Barmaglot 13.12.2001 19:12

Вот немного ошибся в функции exp:
for (i=1; i<Math.abs(x); i++) res *= e2;

Countach 14.12.2001 00:10

Вот это типа степенная функция??? Навалял на быструю руку, без наворотов, что-то там жестоко выходит :(
Ну вообщем чекните плиз
http://www.til-design.f2s.com/temp/power_function.swf
:)

Vaicartana 14.12.2001 04:56

-10^1=NaN, да?

Нафига там function exponent (), если она не используется нигде?

[subway]design 14.12.2001 08:27

кул!

Countach 14.12.2001 10:45

Blin mugiki da ne sudite tak strogo :) eto ge DEMO VERSION :D
ps dlja X dejstvitel'no nel'zja zadavat' poka otricatel'nie znachenija. This feature is comming in my full version :) so far it is being disabled by the owners, because of copywrite reasons :D VO navorotil :)

PS I am sorry about ENG, but i have no RUS on this particular PC :(

2. Function exponent WILL be used in future, it is just there so far, I know it is not needed :)

[subway]design 14.12.2001 17:00

No problem, Countach! No problem!


Часовой пояс GMT +4, время: 09:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.