Показать сообщение отдельно
  #1 (permalink)  
Старый 04.01.2017, 00:24
Интересующийся
Отправить личное сообщение для Маленький программист :"3 Посмотреть профиль Найти все сообщения от Маленький программист :"3
 
Регистрация: 26.12.2016
Сообщений: 20

Имитация лотерейных ставок.
После розыгрыша 1 миллиарда на новый год стало интересно посчитать, сколько надо примерно раз сделать ставку на одни и те же числа, чтобы она сыграла. В связи с этим решил немножко поколдовать на JavaScript.
Скрипт ниже вычисляет, сколько раз нужно поставить определенный набор чисел, чтобы выиграть.
Хочу спросить, может я все сделал криво и можно намного лучше, если есть советы по оптимизации, обязательно подсказывайте)
var myComb = [1, 3, 11, 13]; // Ваша комбинация
function winner(myComb){
	var counter = 0;
	var matchArray = [];
	function generWinComb(){
			var winComb = [];
			var min = 1, max = 20;
			for(var i = 0; i < 4; i++){
				winComb[i] = min + Math.floor(Math.random() * (max + 1 - min));
			}
			return winComb;
		}
	while(true){
		for(var i = 0; i < myComb.length; i++){
			if(myComb[i] == generWinComb()[i]){
				matchArray[i] = true;
			}
			else{
				matchArray[i] = false;
			}
		}
		// Когда уже получен массив с true и false
		for(var i = 0; i < myComb.length; i++){
			if(matchArray[i] == true){
				continue;
			}
			else{
				counter++;
				break;
			}
		}
		if(i == myComb.length && matchArray[i-1] == true){
				return counter;
			}
	}
}
document.write(winner(myComb));
Ответить с цитированием