Цитата:
Сообщение от Lyso
Для программы необходимо число от 0 до 3. Сделал такого вида рандом -
 Код AS3:
var t:uint = Math.floor(Math.random() * 4);
Сделал больше 20 проверок по 10 000 раз, абсолютно всегда ноль выпадает в несколько раз реже остального. Как уравновесить шансы?
|
Странно, только что проверил:

Код AS3:
package {
import flash.display.Sprite;
import flash.events.Event;
public class Randomizer extends Sprite {
private var _zeros: int = 0;
private var _ones: int = 0;
private var _twos: int = 0;
private var _threes: int = 0;
public function Randomizer() {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
for (var i:int = 0; i < 10000; i++) {
var rand:int = int(Math.random() * 4);
if (rand == 0) _zeros++;
else if (rand == 1) _ones++;
else if (rand == 2) _twos++;
else if (rand == 3) _threes++;
}
trace("zeros: " + _zeros, "ones: " + _ones, "twos: " + _twos, "threes: " + _threes);
}
}
}
трейс выводит:
Цитата:
zeros: 2473 ones: 2503 twos: 2492 threes: 2532
zeros: 2520 ones: 2591 twos: 2433 threes: 2456
zeros: 2573 ones: 2475 twos: 2482 threes: 2470
...
|
Это можно назвать примерно равными результатами