Показать сообщение отдельно
Старый 11.10.2006, 16:05
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 34  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
Цитата:
Сообщение от andr64
маленькое замечание:
num = Math.floor(Math.random()*totalFrames)+1
наверное правильние будет так
num = Math.round(Math.random()*(totalFrames-1))+1
Вы не правы, в вашем варианте вероятность генерации первого и последнего фрейма ниже, чем остальных. Проверьте сами:
Код:
var _totalFrames:int = 10;
var hash:Array = new Array();
var i:int, num:int;
// Первый вариант
// Обнуляем массив
for (i=1; i<=_totalFrames; i++) hash[i]=0;
// Собираем статистику
for (i=0; i<1000000; i++) {
	num = Math.floor(Math.random()*_totalFrames)+1;
	hash[num]++;
}
// Результат
trace("Result 1:");
for (i=1; i<=_totalFrames; i++) {
	trace(i+" = "+Math.round(hash[i]/1000000*100)+"%");
}

// Второй вариант
// Обнуляем массив
for (i=1; i<=_totalFrames; i++) hash[i]=0;
// Собираем статистику
for (i=0; i<1000000; i++) {
	num = Math.round(Math.random()*(_totalFrames-1))+1;
	hash[num]++;
}
// Результат
trace("Result 2:");
for (i=1; i<=_totalFrames; i++) {
	trace(i+" = "+Math.round(hash[i]/1000000*100)+"%");
}
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.