Показать сообщение отдельно
  #7 (permalink)  
Старый 30.08.2013, 03:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

генератор правильных комбинаций для пятнашек

по формуле из википедии 1 пост
генератор правильных комбинаций для пятнашек
function gen() {
         function f(a) {
             for (var b = 4, c = 0; c < a.length - 1; c++) {
                 !a[c] && (b -= 4 - c / 4 | 0);
                 for (var d = c + 1; d < a.length; d++) a[c] && a[d] && a[d] < a[c] && b++
             }
             return !(b % 2)
         }
         for (var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 14, ""]; !f(a);)
             for (var b = a.length - 1; 0 < b; b--) {
                 var e = Math.floor(Math.random() * (b + 1)),
                     g = a[e];
                 a[e] = a[b];
                 a[b] = g
             }
         return a
     };

 alert(gen());

функцию f можно использовать для проверки правильности автономно - на входе массив 15 чисел и пусто на выходе true/false

Последний раз редактировалось рони, 30.08.2013 в 03:05.
Ответить с цитированием