Yoko

All sides of Injection
It is currently 2025-10-12 08:18:55

All times are UTC+02:00




Post new topic  Reply to topic  [ 48 posts ]  Go to page 1 2 3 Next
Author Message
PostPosted: 2006-04-16 16:00:12 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Может кому-то нужно :)
Последнее обновление: [28.04.06]

Факториал:
Code:
sub factorial(x)
var i,result=2

if x<=0 then
return 1
end if

if x<3 then
return x
end if

for i = 3 to x
result=result*i
next

uo.print(str(x)+"! = "+str(result))
return result
end sub


Возведение в степень: (натуральную, у>0)
Code:
sub XtoPowerY(x,y)

if not IsWholeNum(y) or y<0 or (x==0 and y==0) then
return 0
end if

var i,result=1

if y>0 then
 for i = 1 to y
 result=result*x
 next
else
return 1   
end if

uo.print(str(x)+"^"+str(y)+" = "+str(result))
return result
end sub


Модуль:
Code:
sub abs(x) 
    if (x < 0) then
        x = -x
    end if
    return x
end sub


Корень квадратный:
Code:
sub SQRT(x)
if x<0 then
return 0
end if

var tmp=int(2*len(str(x)))
var result=XtoPowerY(2,tmp)

repeat
tmp=result
result=0.5*(result+x/result)
until abs(tmp-result)<0.00001
uo.print("sqrt("+str(x)+") = "+str(result))
return result
end sub


Логарифм натуральный (жутко тормозной, зато работает :) ):
Code:
sub ln(x)
var i=0,y,tmp,result=0

if x>1 then

 y=(x-1)/(x+1)

 repeat
 tmp=result
 result=result+(XtoPowerY(y,i))/(i+1)
 i=i+2
 until (result-tmp)<0.0001 and i>3

 result=result*2*y
 uo.print("ln("+str(x)+") = "+str(result,3))
 return result

else
 if x<=0 then
    return 0
 else
    x=x-1
    repeat
    tmp=result
    result=result+((XtoPowerY(-1,i))*(XtoPowerY(x,i+1)))/(i+1)
    i=i+1
    until (tmp-result)<0.0001 and i>5
    uo.print("ln("+str(x)+") = "+str(result,3))
    return result
 end if
end if
end sub


Логарифм:
Code:
sub lg(base,x)
var result,tmp
tmp=ln(base)
result=(ln(x)/tmp)
uo.print("lg("+str(base)+","+str(x)+") = "+str(result,2))
return result
end sub


Проверка на целочисленность:
Code:
sub IsWholeNum(num)
if (num-int(num)) == 0 then
uo.print("Is Whole Num")
return true
else
uo.print("Is Not Whole Num")
return false
end sub


Last edited by DerMeister =) on 2006-04-27 23:24:36, edited 6 times in total.

Top
   
 Post subject:
PostPosted: 2006-04-16 16:19:14 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
может быть интегральчик с логорифмами?;)


Top
   
 Post subject:
PostPosted: 2006-04-16 21:17:27 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Grin wrote:
может быть интегральчик с логорифмами?;)


Скоро будет :) пока что времени нету :) + надо искать алгоритмы в математическам виде просто готовый код на с++ я не понимаю...


Top
   
 Post subject:
PostPosted: 2006-04-16 23:56:28 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Grin wrote:
может быть интегральчик с логорифмами?;)


Логарифм сделал... :) :) :)

Может когданить и интегральчик сделю :)

ЗЫ: Сам не знаю зачем это может понадобится но для интереса можно попробовать :)


Top
   
 Post subject:
PostPosted: 2006-04-17 08:37:24 
Offline

Joined: 2004-06-04 21:04:14
Posts: 97
супер :)


Top
   
 Post subject:
PostPosted: 2006-04-26 16:59:13 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Ну нифига ж себе фичи люди делают..

Я даже незнаю зачем оно надо, так вот, что сказать хотел, автор знает, что писать, но незнает как.

Грамотный скриптер, всегда пишет скрипт так, чтобы он занимал поменьше строк, а вот натуральный логарифм например, делает два одинаковых return в условии, когда достаточно сделать один после..

Если приглядеться, можно еще что-нибудь отыскать.

PS: Респект автору.

PPS: А можно писать так:
Code:
Sub Math.Factorial()
Sub Math....


Top
   
 Post subject:
PostPosted: 2006-04-26 19:26:07 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Грин, так чего там скилы растут =) по какой синусоидной? =)


Top
   
 Post subject:
PostPosted: 2006-06-15 22:38:14 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Последовательность фибонначи )
Code:
Sub Fibonacci(num)
   if num == 0 then
      return 0
   endif
   if num == 1 then
      return 1
   endif
   return Fibonacci(num-1)+Fibonacci(num-2)
endsub


Кажись так..


Top
   
 Post subject:
PostPosted: 2006-06-16 13:14:27 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Тебя "Код Да Винчи" вдохновил? :wink:

Destruction: Не флуди! :!:

_________________
DerMeister сейчас на нейрале!


Top
   
 Post subject:
PostPosted: 2006-06-16 13:32:51 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
мля
рекурсии ё

Факториал:

Code:
sub factorial(x)
if x<=1 then
return 1
else
return x*factorial(x-1)
end if
end sub


Целая степень. Сюда мона прикрутить возведение в дробную степень с использованием логарифма.

Code:
sub XtoPowerY(x,y)
if y<=1 then
return x
else
return x*XtoPowerY(x,y-1)
end if
end sub

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2006-06-16 18:31:35 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
C рекурсией аккуратнее. После 100 вложений может рухнуть. Вместе с инжектом.

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2006-06-16 19:18:09 
Offline
Expert!
User avatar

Joined: 2006-02-25 21:48:38
Posts: 1032
Askaneli wrote:
мля
рекурсии ё

Факториал:

Code:
sub factorial(x)
if x<=1 then
return 1
else
return x*factorial(x-1)
end if
end sub


Целая степень. Сюда мона прикрутить возведение в дробную степень с использованием логарифма.

Code:
sub XtoPowerY(x,y)
if y<=1 then
return x
else
return x*XtoPowerY(x,y-1)
end if
end sub


Ну рекурсия ет опасно и Едред про это уже сказал.
Насчёт логарифма, то он сам жутко тормозной, и сам по себе использует возведение в степень, поэтому замкнутый круг + краш из-за рекурсии...

_________________
DerMeister сейчас на нейрале!


Top
   
 Post subject:
PostPosted: 2006-06-16 23:30:50 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
DerMeister =) wrote:
Ну рекурсия ет опасно и Едред про это уже сказал.


Я не сказал, что рекурсия опасна, я сказал, что неконтролируемая рекурсия опасна. Лично я сам люблю применять рекурсию, так как считаю, что она придает программам добавочную стройность и, скажем так, некую изящность. Но когда применяешь рекурсию, надо всегда очень четко понимать для чего и как ты ее применяешь. Так как любая рекурсия жрет память и при большом количестве вложений опасна неустойчивостью работы. Автор скриптового модуля в своей доке писал, что для инжекта порог безопасных вложений рекурсии = 100. Примерно.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2006-06-19 05:34:21 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
Если есть возможность использовать простой цикл - то лучше его использовать, а не рекурсии. Но блин зато как красиво рекурсии то )))

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2006-11-23 14:38:25 
Offline
User avatar

Joined: 2005-01-14 13:41:05
Posts: 73
Location: Одесса - мама
Прощу прощения заранее за оффтоп.. если чтото совсем не так или я не правильно понял суть этого топика, то удалите мой меседж...
но кому все эти функции нафик нужны? специально ввёл в поиск названия sub'ов, не одного топика кроме этого не вывело!!!
или вы не для ультимы это все писали? :roll:


Top
   
 Post subject:
PostPosted: 2006-11-23 14:43:26 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Плохо искали.

sub abs используется во многих (если не во всех) ходилках !!!


Top
   
 Post subject:
PostPosted: 2006-11-23 15:39:48 
Offline
User avatar

Joined: 2005-01-14 13:41:05
Posts: 73
Location: Одесса - мама
Destruction wrote:
Плохо искали.

sub abs используется во многих (если не во всех) ходилках !!!

а рекурсии? :)


Top
   
 Post subject:
PostPosted: 2006-11-23 16:01:15 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
GrandMaster Ranger wrote:
Destruction wrote:
Плохо искали.

sub abs используется во многих (если не во всех) ходилках !!!

а рекурсии? :)

А что с ними не так ?

Писалось для Injection, использовать просто надо аккуратно.


Top
   
 Post subject:
PostPosted: 2006-11-23 16:04:18 
Offline
User avatar

Joined: 2005-01-14 13:41:05
Posts: 73
Location: Одесса - мама
Destruction wrote:
GrandMaster Ranger wrote:
Destruction wrote:
Плохо искали.

sub abs используется во многих (если не во всех) ходилках !!!

а рекурсии? :)

А что с ними не так ?

Писалось для Injection, использовать просто надо аккуратно.

1) а зачем в инжекте находить факториал? :shock: :lol:
2) в поиске не одного топика с юзом факториала кроме этого
3) эти функции- тоже самое что придумать водонепроницаемое полотенце :wink:


Top
   
 Post subject:
PostPosted: 2006-11-23 16:11:09 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
1. Факториал - очень нужная штука, главное - уметь применить.

Я в некоторых своих скриптах им задержки расставляю, для большей плавности так сказать :roll:

Пример не покажу, скрипты приватные -)

2. Ну дык, факториал требуется только в сложных скриптах, а где его используют - на паблки не кладут.

Учите мат. часть, такой вопрос отпадёт.

3. Отсутствие смекалки не даёт право делать такие выводы.

PS: А ты сам-то знаешь, что такое факториал ?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 48 posts ]  Go to page 1 2 3 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited