Показать сообщение отдельно
Старый 08.03.2010, 13:28
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от AzagThoth Посмотреть сообщение
А чем Вам round не нравится?
Вероятность неверно распределится.


upd: обнаружил такую вещь:

Код AS1/AS2:
var a:Array = [ 0, 0, 0, 0, 0 ];
var b:Array = [ 0, 0, 0, 0, 0 ];
 
for (var i:Number = 0; i < 100; i++)
{
	var k:Number = Math.round(Math.random() * 4);
	b[k]++;
	a[Math.round(Math.random() * 4)]++;
}
 
var sumA:Number = 0;
var sumB:Number = 0;
 
for (i = 0; i < 5; i++)
{
	sumA += a[i];
	sumB += b[i];
}
trace("sumA " + sumA + " sumB " + sumB);
При настройках публикации AS2 FP9 trace() выдает:
sumA 128 sumB 100
sumA 116 sumB 100
sumA 117 sumB 100
Т.е. выражение a[Math.round(Math.random() * 4)]++; работает непонятным мне образом.

При настройках публикации AS3 и там и там 100, как и предполагалось.

Это какой-то баг о котором я не знал? В курсе кто-нибудь?


Последний раз редактировалось udaaff; 08.03.2010 в 13:51.