Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Определить особые элементы матрицы

Сообщения:  [1-7] 

 
 автор: kasmanaft   (23.10.2007 в 06:55)   письмо автору
 
   для: hammet   (22.10.2007 в 22:56)
 

Хотя Drago уже "помог", всё же: что тут сложного? Напишите функцию, определяющую особый элемент или нет. (передать в нее одномерный массив и номер проверяемого элемента. Если он - "особый" вернуть true, иначе false). Затем применить эту функцию к каждому элементу матрицы. Если функция вернет true - увеличить счетчик.

   
 
 автор: Drago   (23.10.2007 в 01:02)   письмо автору
 
   для: hammet   (22.10.2007 в 22:56)
 

Наверное, что-то вроде этого. Потестируйте.

<?php
//генерируем случайную матрицу и выводим ее на экран
$matrix = array();
$n rand(39);
$m rand(39);

for(
$i=0$i <= $m$i++)
    for(
$j=0$j <= $n$j++)
        echo 
"<b>".($matrix[$i][$j] = rand(19))."</b><sub>[$i,$j]</sub>".(($j and $j $n == 0) ? "<br>" " ");
echo 
"<br><br>";

//считаем кол-во "особых" элементов
$count 0;
$result "";
for(
$i=0$i count($matrix); $i++)
    {
    for(
$j=1$j count($matrix[$i])-1$j++)
        {
        
$l false;
        
$r false;
        for(
$k=$j-1$k >= 0$k--)
            if (
$matrix[$i][$k] >= $matrix[$i][$j])
                {
                
$l true;
                break;
                }
        for(
$k=$j+1$k <= count($matrix[$i])-1$k++)
            if (
$matrix[$i][$k] <= $matrix[$i][$j])
                {
                
$r true;
                break;
                }
        if (!
$l and !$r)
            {
            
$result .= "<b>{$matrix[$i][$j]}</b><sub>[$i,$j]</sub> ";
            
$count++;
            }
        }
    }

//выводим результат
echo "k = $count, ($result)";
?>

   
 
 автор: hammet   (22.10.2007 в 22:56)   письмо автору
 
   для: fxsektor   (22.10.2007 в 22:55)
 

да, имеется ввиду двумерный массив.

   
 
 автор: hammet   (22.10.2007 в 22:56)   письмо автору
 
   для: bronenos   (22.10.2007 в 22:51)
 

конечно же ВСЕ элементы в строке.

Например строка матрицы:

1 2 3 4 5 - тут элементы 2, 3, 4 являются особыми

или еще

1 2 3 3 4 - тут только элемент 2 является особым.

   
 
 автор: fxsektor   (22.10.2007 в 22:55)   письмо автору
 
   для: bronenos   (22.10.2007 в 22:51)
 

интересно, приведенная матрица это двумерный массив?

   
 
 автор: bronenos   (22.10.2007 в 22:51)   письмо автору
 
   для: hammet   (22.10.2007 в 22:34)
 

все должны быть больше этого элемента или только самый соседний?

   
 
 автор: hammet   (22.10.2007 в 22:34)   письмо автору
 
 

Столкнулся с тем что не помню протых основ работы с матрицами, передо мной тоит задача приблизительно такого плана: дана целочисленная матрица размером NxM. Определить k–количество “особых” элементов матрицы, считая элемент “особым”, если в его строке слева от него находятся элементы, меньшие его, а справа – большие.
Вобщем если кто-то натолкнет на мысль - буду очень принателен....

PS во всем виноват вечер понедельника :)

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования