Тема: Rnd...
Показать сообщение отдельно
Старый 12.10.2005, 00:26   #4
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
ну, я бы увеличил бы границы допустим в 10 раз (чем больше, тем мы больше растянем график, и сделаем его плавней), и пустил бы цикл, пока результат бы не попадал в нужные пределы... типа:

Dim Value(4)
For q=0 To 10000
 X=aRnd(1,4)
 Value(X)=Value(X)+1
Next
For q=0 To 4
 Print q+" возвращалось приблизительно в "+ Value(q)/100+"% случаев..."
Next
WaitKey()
End


function arnd%(b%,e%)

b1%=-b%*10
e1%=e%*10

repeat

 r%=rnd(b1%,e1%)

until r%>=b% and r%<=e%

return r%

end function
вот, накидал в броузере... хз пойдет или нет... но алгоритм думаю ясен...

в алгоритме есть охренительный недостаток... будет очень медленно работать...

можно еще разорвать этот график и сложить его... порвать посередине и первый после среднего элемента прибавить к первому сначала и т.п... но это только графически, а как это кодом замутить - хз...
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием