
Код AS1/AS2:
var r:Number = Math.random();
if (r >= .6)
trace("40%");
else if (r >= .3)
trace("30%");
else if (r >= .1)
trace("20%");
else
trace("10%");
// или так
var array:Array = [ 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 ];
var n:Number = array[Math.floor(10 * Math.random())];
trace(n + "0%");
// еще идея
var array:Array = [ .1, .3, .6, 1 ];
var length:Number = array.length;
var r:Number = Math.random();
for (var i:Number = 0; i < length; i++)
{
if (r < array[i])
{
var n:Number = i + 1;
break;
}
}
trace(n + "0%");
Последний вариант для решения задачи в общем случае больше подходит чем другие, наверное. Какие еще варианты есть для решения в общем случае?? Т.е. есть N событий, и за раз может наступить одно из них с определенной вероятностью.