Показать сообщение отдельно
Старый 06.11.2011, 20:26
Ookami вне форума Посмотреть профиль Отправить личное сообщение для Ookami Найти все сообщения от Ookami
  № 20  
Ответить с цитированием
Ookami
 
Аватар для Ookami

Регистрация: Aug 2011
Адрес: 56° 51' с.ш. 53° 13' в.д.
Сообщений: 172
Записей в блоге: 1
Код с вашей функцией:
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite 
	{
 
		private var _zeros:		int = 0;
		private var _ones:		int = 0;
		private var _twos:		int = 0;
		private var _threes:	int = 0;
 
		public function Main():void 
		{
			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 j:int = 0; j < 10; j++ ) {
				_zeros = 0;
				_ones = 0;
				_twos = 0;
				_threes = 0;
				for (var i:int = 0; i < 10000; i++) {
					var rand:int = randExp();
					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);
			}
		}
 
		private function randExp(c:int = -1,c1:int = -1):int {
			var t:int = Math.floor(Math.random() * 4);
			return (t == c || t == c1)?randExp(c, c1):t;
		}
	}
 
}
Трейс:
zeros: 2481 ones: 2619 twos: 2444 threes: 2456
zeros: 2518 ones: 2515 twos: 2515 threes: 2452
zeros: 2513 ones: 2517 twos: 2503 threes: 2467
zeros: 2506 ones: 2462 twos: 2560 threes: 2472
zeros: 2535 ones: 2474 twos: 2477 threes: 2514
zeros: 2470 ones: 2533 twos: 2541 threes: 2456
zeros: 2503 ones: 2448 twos: 2539 threes: 2510
zeros: 2532 ones: 2478 twos: 2445 threes: 2545
zeros: 2611 ones: 2406 twos: 2418 threes: 2565
zeros: 2583 ones: 2475 twos: 2432 threes: 2510

Не вижу проблемы с распределением нулей - все значения примерно поровну.