Задача 40. Даны две целые квадратные матрицы А(N,N) и B(N,N) одного порядка N. Найти наиболее часто повторяющийся положительный элемент матрицы А(N,N) и наиболее часто повторяющийся отрицательный элемент матрицы B(N,N). Вывести значения этих элементов и количество их повторов.

<?php
/*
Задача 40. Даны две целые квадратные матрицы А(N,N) и B(N,N) одного порядка N. Найти наиболее часто повторяющийся положительный элемент матрицы А(N,N) и наиболее часто повторяющийся отрицательный элемент матрицы B(N,N). Вывести значения этих элементов и количество их повторов.
*/
//случайный выбор порядка квадратной матрицы A порядка N
$N=rand(3,7);
echo "N=$N<br>";
?>
<p><b>Матрица A:</b>
<table border="1">
<?php for($i=0; $i<$N; $i++) { ?>
<tr>
<?php for($j=0; $j<$N; $j++) { ?>
    <td>
    <?php
	//присвоение случайных значений элементам матрицы A
    echo "a<sub>$i$j</sub>=", $a[$i][$j]=rand(-1,6); 
    ?>
    </td>
<?php } ?>
</tr>
<?php } ?>
</table>
<p><b>Матрица B:</b>
<table border="1">
<?php for($i=0; $i<$N; $i++) { ?>
<tr>
<?php for($j=0; $j<$N; $j++) { ?>
    <td>
    <?php
	//присвоение случайных значений элементам матрицы B
    echo "b<sub>$i$j</sub>=", $b[$i][$j]=rand(-6,1); 
    ?>
    </td>
<?php } ?>
</tr>
<?php } ?>
</table>
<?php 

//// обработка матрицы A - начало

//создание массива a_unique уникальных положительных значений матрицы A
$flag=true;
for($i=0; $i<$N && $flag; $i++)
for($j=0; $j<$N && $flag; $j++)
	if($a[$i][$j]>0){
		$a_unique[0] = $a[$i][$j];
		$flag = false;
	}
$a_count[]=0;
$l = 1;
for($i=0; $i<$N; $i++)
for($j=0; $j<$N; $j++){
	$k = 0;
	while($k<$l && $a[$i][$j]>0 && $a_unique[$k]!=$a[$i][$j])
		$k++;
	if($k==$l && $a[$i][$j]>0){
		$a_count[]=0;
		$a_unique[$l++]=$a[$i][$j];
	}
}

//подсчет количества повторений элементов массива a_unique
for($k=0; $k<$l; $k++)
	for($i=0; $i<$N; $i++)
	for($j=0; $j<$N; $j++)
		if($a_unique[$k]==$a[$i][$j])
			$a_count[$k]++;
?>
<p>вывод массива a_unique уникальных положительных значений матрицы A
<br>и количества повторений этих значений:<br>
<?php
//вывод массива a_unique уникальных значений положительных матрицы A
//и массива a_count - количества повторений этих значений
for($i=0; $i<$l; $i++)
	echo $a_unique[$i]," -> ",$a_count[$i],"; ";

//нахождение максимума массива a_count
$max=$a_count[0];
for($i=1; $i<$l; $i++)
	if($max<$a_count[$i])
		$max=$a_count[$i];
?>
<p>Наиболее часто повторяющиеся положительные элементы матрицы A и количество их повторов:
<?php
//вывод наиболее часто повторяющихся положительных элементов матрицы А
//и количества их повторов
for($i=0; $i<$l; $i++)
	if($max==$a_count[$i])
		echo "<br>",$a_unique[$i]," <--> ",$a_count[$i],"; ";

//// обработка матрицы A - конец

?>
<?php 

//// обработка матрицы B - начало

//создание массива b_unique уникальных отрицательных значений матрицы B
$flag=true;
for($i=0; $i<$N && $flag; $i++)
for($j=0; $j<$N && $flag; $j++)
	if($b[$i][$j]<0){
		$b_unique[0] = $b[$i][$j];
		$flag = false;
	}

$b_count[]=0;
$l = 1;
for($i=0; $i<$N; $i++)
for($j=0; $j<$N; $j++){
	$k = 0;
	while($k<$l && $b[$i][$j]<0 && $b_unique[$k]!=$b[$i][$j])
		$k++;
	if($k==$l && $b[$i][$j]<0){
		$b_count[]=0;
		$b_unique[$l++]=$b[$i][$j];
	}
}

//подсчет количества повторений элементов массива b_unique
for($k=0; $k<$l; $k++)
	for($i=0; $i<$N; $i++)
	for($j=0; $j<$N; $j++)
		if($b_unique[$k]==$b[$i][$j])
			$b_count[$k]++;
?>
<p>вывод массива b_unique уникальных отрицательных значений матрицы B
<br>и количества повторений этих значений:<br>
<?php
//вывод массива b_unique уникальных отрицательных значений матрицы B
//и массива b_count - количества повторений этих значений
for($i=0; $i<$l; $i++)
	echo $b_unique[$i]," -> ",$b_count[$i],"; ";

//нахождение максимума массива b_count
$max=$b_count[0];
for($i=1; $i<$l; $i++)
	if($max<$b_count[$i])
		$max=$b_count[$i];
?>
<p>Наиболее часто повторяющиеся отрицательные элементы матрицы B и количество их повторов:
<?php
//вывод наиболее часто повторяющихся отрицательных элементов матрицы B
//и количества их повторов
for($i=0; $i<$l; $i++)
	if($max==$b_count[$i])
		echo "<br>",$b_unique[$i]," <--> ",$b_count[$i],"; ";

//// обработка матрицы B - конец

?>