Показать сообщение отдельно
  #1 (permalink)  
Старый 16.04.2013, 01:14
Новичок на форуме
Отправить личное сообщение для DJZT Посмотреть профиль Найти все сообщения от DJZT
 
Регистрация: 16.04.2013
Сообщений: 1

Алгоритм жеребьёвки
Задача написать генератор жеребьёвки для турниров. То есть надо сопоставить первые пары.
Алгоритм таков, что генерируем число от 1 до 16 и проверяем его в массиве arr. Если не найдено - запишем в исключающий массив arr и в массив первых команд в паре mas1.
Аналогично и для вторых команд пары. и так прохожу 16 раз, пока не заполнятся все массивы mas1 mas2.

В исключающий массив arr пишет всё подряд без разбора, хоть оно даже там и есть уже.

Код:
<div class = "zad">
	<h1>Задача 7</h1>
	<p>Реализовать программу "Генератор жеребьёвки"</p>
	<form name = "inf">
		<input type = "text" value = "16" name = "k_kom">
		<input type = "button" value = "Сгенерировать" 
onClick = "generation()">
	</form>
	<script type="text/javascript">
	
function generation(){
		//debugger;
		var arr = [100, 101];
		var mas1 = [];
		var mas2 = [];
		var ch1 = 0;
		var ch2 = 0;
		var min = 1;
		var max = inf.k_kom.value;
		for(var k = 0;k<=16;k++){
		M1:{
			ch1 = Math.round((Math.random() * (max - min) + min));
			for(var i in arr){
				if(arr[i] == ch1){
					break M1;
				}else{
					arr.push(ch1);
					mas1.push(ch1);
				}
			}
		}
		M2:{
			ch2 = Math.round((Math.random() * (max - min) + min));
			for(var i in arr){
				if(arr[i] == ch2){
					break M2;
				}else{
					arr.push(ch2);
					mas2.push(ch2);
				}
			}

		}
	}
	print(mas1);
	print(mas2);
}
	generation();
</script> </div>
Ответить с цитированием