Показать сообщение отдельно
  #3 (permalink)  
Старый 16.04.2013, 18:19
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Вот вам алгоритм:
var min = 1, max = 16, r, i, tmp, mas = Array(max-min+1);

for( i = 0; i < mas.length; ++i ) // заполняем массив номерами команд
  mas[i] = i+min;

for( i = 0; i < mas.length; ++i ) { // тасуем
  r = Math.floor( Math.random() * (max-min+1) );
  tmp = mas[i];
  mas[i] = mas[r];
  mas[r] = tmp;
}
// Внимание, нет никакой защиты на случай, если количество команд нечетное.

for( i = mas.length - 2; i >= 0; i -= 2 ) // группируем попарно
  mas.splice( i, 2, [ mas[i], mas[i+1] ] );

alert( mas.join( "\n" ) );

Последний раз редактировалось rgl, 16.04.2013 в 18:23.
Ответить с цитированием