Сравнить несколько массивов (1 из 3 верное)

silmarion

Полезный
Регистрация
21 Июн 2012
Сообщения
194
Реакции
19
Всем привет, в общем есть 5 массивов, по 3 значения в каждом.

По условию, в каждом из 5 массивов лишь одно из 3 значений верное.

$av=array('a' => 'e4','c5','d1');
$bv=array('b' => 'a2','d5','e1');
$cv=array('c' => 'd3','a5','b1');
$dv=array('d' => 'c2','b1','e4');
$ev=array('e' => 'b2','a4','c1');

Мне нужно вывести 5 значений, чтобы они не противоречили условию.
a=
b=
c=
d=
e=
 
Всем привет, в общем есть 5 массивов, по 3 значения в каждом.

По условию, в каждом из 5 массивов лишь одно из 3 значений верное.
...
Мне нужно вывести 5 значений, чтобы они не противоречили условию.
a=
...

Как-то не сильно понятно условие задачи. И даже более того скорее наблюдается полное отсутствие условия...
Покажите может пример того что надо на выходе получить из представленных массивов?
 
5 массивов, в каждом из массивов только 1 значение может быть верным.
Нужно вычислить какие значения верны
К примеру, если в первом массиве значение e4 (те е=4) примем за верное
то во втором массиве значение e1 (е=1) будет уже противоречием
Надо найти верные решения, в которых 1 значение в каждом массиве будет верным, и оно не будет противоречить верным значениям в остальных массивах
 
Последнее редактирование:
Сначала идем по первому массиву, и каждое его условие считаем верным. Потом, для каждого этого "верного" условия проходим по всем остальным и ищем противоречия. Если есть противоречие (b1 и b3) - помечаем условие как херовое, если совпадение (b1 и b1) - ничего не делаем, все и так хорошо, условие выполняется, если встретили новое условие (b1 и c1) - добавляем его в список наших условий и идем дальше, и так пока не дойдем до конца.

Для твоего примера:
$av=array('a' => 'e4','c5','d1');
$bv=array('b' => 'a2','d5','e1');
$cv=array('c' => 'd3','a5','b1');
$dv=array('d' => 'c2','b1','e4');
$ev=array('e' => 'b2','a4','c1');

Берем первый массив:
Код:
      a   b   c   d   e
av            5   1   4
(пока что все условия истинны, просто их дописываем)

Добавляем второй массив
Код:
    a     b   c   d   e
av            5   1   4
bv  2             5   1
(уже видно, что d5 и e1 с первым массивом не согласуются, a2 дописываем в список условий)

Добавляем аналогично остальные:
Код:
    a   b   c   d   e
av  *   *   5   1   4
bv  2   *   *   5   1
cv  5   1   *   *   3
dv  *   1   2   *   4
ev  4   2   1   *   *

Получаем, что нету ни одного условия, которое бы не противоречило остальным. Во всех без исключения столбцах (a,b,c,d,e) встречаются разные числа
 
Назад
Сверху