Сформировать массив уникальных значений из 4 цифр

Anatolyi

Новичок
Сформировать массив уникальных значений из 4 цифр

Добрый вечер.
Стоит такая задача:
Есть 4 числа: 1 2 3 4.
Из них нужно сформировать массив уникальных чисел, на максимум комбинация.

Грубый пример (проста написал уникальные комбинации):
1 2 3 4
2 1 3 4
3 2 1 4
4 2 3 1

2 4 3 1
3 2 4 1
1 2 4 3
2 3 1 4

...

Никак не пойму самого алгоритма, как это сделать. Мож чего посоветуете...
 

Gashish

Новичок
Не совсем понятно что ты хочешь, что в твоем случае "уникальность"?
 

WP

^_^
Алгоритм-то элементарный, какие проблемы?

-~{}~ 28.06.06 01:23:

Gashish
Иногда лучше жевать чем говорить =) Уникальность это так чтобы каждая совокупность индексов (последовательность) встречалась лишь раз.
 

Gashish

Новичок
WP
Совокупность индексов можно рассматривать в разных плоскостях. Учите мат.часть
 

Anatolyi

Новичок
Мне нужно получить 24 уникальных (идеальных, не повторяющихся) числа из 4 цифр.

1234
4321
4231
4312
и т.п.

> Алгоритм-то элементарный, какие проблемы?
Элементарный? Можно? Если не тяжело...
 

WP

^_^
Всегда улыбало когда человек который не может реализовать элементарный алгоритм учится в универе... а потом косячат на работе. Пару минут дай.
Added:
PHP:
function recur()
{
 global $n,$c,$k;
 if ($n[$c-$k] < $c-1) {$n[$c-$k]++;}
 else
 {
  $n[$c-$k] = 0;
  $k++;
  recur();
 }
}
//$chars = array('0','1','2','3','4','5','6','7','8','9');
$chars = array('1','2','3','4');
$n = array();
$c = count($chars);
for ($i = 0; $i < $c; $i++) {$n[] = 0;}
$result = array();
$f = str_repeat($c-1,$c);
while (TRUE)
{
 $s = '';
 for ($i = 0; $i < $c; $i++) {$s .= $chars[$n[$i]];}
 $result[] = $s;
 $k = 1;
 if (join('',$n) == $f) {break;}
 recur();
}
var_dump($result);
 

Wicked

Новичок
WP
Там сказано про 24 (= 4!) результата. Они получаются при составления чисел как различных перестановок цифр 1, 2, 3 и 4. Т.е. в результатах участвуют только числа, в которых все цифры разные.

У тебя же получается 256 (= 4^4) вариантов, путем генерации всех возможных чисел, используя цифры 1, 2, 3, 4.

-~{}~ 28.06.06 13:13:

http://algolist.manual.ru/maths/combinat/permutations.php
 
Сверху