Никто не пытался написать нормальный рандом?

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
GMX
Posts: 75
Joined: 2010-10-01 16:47:41
Contact:

Никто не пытался написать нормальный рандом?

Post by GMX »

Собсно, сабж. Встроенный uo.random() имеет явные недостатки.

Code: Select all

                   k=uo.random(50)-25
                   j=uo.random(50)-25

В девяти случаях из десяти k будет равно j.
Возникла мысль, можно ли реализовать рандом силами скриптинга. Никто раньше об этом не задумывался?
Все мы славные ребята, простые русские парни, железные люди с деревянными головами...
Sirocco
Posts: 90
Joined: 2007-07-07 13:14:01

Re: Никто не пытался написать нормальный рандом?

Post by Sirocco »

:idea: бери число с этого сайта: http://www.random.org/
GMX
Posts: 75
Joined: 2010-10-01 16:47:41
Contact:

Re: Никто не пытался написать нормальный рандом?

Post by GMX »

Sirocco, добрый ты!
Все мы славные ребята, простые русские парни, железные люди с деревянными головами...
GMX
Posts: 75
Joined: 2010-10-01 16:47:41
Contact:

Re: Никто не пытался написать нормальный рандом?

Post by GMX »

Code: Select all

SCRFUN(Random)
{
Table->SetType(Result,T_Number);
Table->SetNumber(Result,0);
if(ParamCount<2||Table->GetType(Params[0])!=T_Number) return 0;
int n=Table->GetNumber(Params[0]);
if(n<0) return 0;
srand(GetTickCount());           <============ вот она засада!!!
Table->SetNumber(Result,rand()%n);
return 0;}

В связи с этим получается необходимо между двумя последовательными запусками функции Uo.random() делать wait(), причем довольно большой. Пойду попробую. :)
Все мы славные ребята, простые русские парни, железные люди с деревянными головами...
Post Reply