Показать сообщение отдельно
Старый 06.01.2007, 21:03
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 15  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
var _arr:Array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
function orderRND():Number{
return Math.floor(Math.random()*2.5-1);
}
_arr.sort(orderRND);
В код вкралась досадная очепятка, не 2. а 2.5 %)

ЗЫ. У этого метода есть определенные недостатки - первый член массива практически всегда остается на первой позиции. Но с другой стороны - операцию нужно делать всего 1 раз, а не каждый раз, когда нужно получить случайный элемент массива.

ЗЫ. 2.9999999 будет еще лучше, чем 2.5

ЗЫЫ. ДА, и еще недостаток... такой рандом получается хуже родного флешевского рандома (даже если операцию повторить несколько раз, то значения распространяются недостаточно равномерно.... но если "качество" не принципиально (просто прокрутить серию клипов, например) то и так сойдет, а если нужно "настоящее" рандомальное число, ну или по крайней мере "более" рандомальное (например имитация подбрасывания костей) то лучше так не делать =)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 06.01.2007 в 21:23.