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

Форум PHP

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

 

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

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

тема: Посоветуйте, как обработать двумерный массив.

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

 
 автор: cheops   (16.10.2009 в 18:44)   письмо автору
 
   для: Владимир55   (16.10.2009 в 13:56)
 

Боюсь, что без знания модели тут сложно что-то предложить. По разному поступают в таких случаях - сглаживают, назначают штрафные функции... но в любом случае это нужно от задачи плясать, иначе сложно что-то более конкретное предложить.

  Ответить  
 
 автор: Владимир55   (16.10.2009 в 13:56)   письмо автору
 
   для: cheops   (16.10.2009 в 13:27)
 

С checkrow ясно, это упрощает дело.

"Т.е. нужно выкидывать параметры? Или матрица всегда статична?"
Тут так получается (я не ожидал такого результата моделирования, когда затевал всю эту работу), что ВСЕ строки оказываются бракованными, то есть каждая строка содержит числа, большие допустимых. Просто эти числа разбросаны хаотичным образом и это сразу не бросается в глаза. Но если посмотреть повнимательнее на картинку, то так оно и есть. Может, при дальнейших исследованиях процесса, ради которого создается программа, ситуация будет получше, но пока что так.

Поэтому в данный момент сделать выборку из матрицы, не изменяя ее, невозможно - нечего выбирать. В связи с этим возникает необходимость (и возможность) выкидывать параметры. Только желательно делать этот по такому алгоритму, что бы осталось как можно больше.

Тут ведь не безразлично, в каком порядке (с какого элемента) начать усечение матрицы!

  Ответить  
 
 автор: cheops   (16.10.2009 в 13:27)   письмо автору
 
   для: Владимир55   (14.10.2009 в 17:31)
 

>Из этой таблицы нужно выбрать все параметры (горизонтальные строки), для которых
>максимальное значение меньше заданного (например, меньше 60).
Ммм... ну чтобы упростить задачу, лучше ввести функцию checkrow(), которая бы принимала строку и органичитель checkrow($n_rez[$i], 60), а возвращала бы true или false в зависимости от того, удобвлетворяет строка условию или нет. Задача сразу упростится и сведется к поиску значений в одномерном массиве.

>Что бы такая выборка получилась, можно удалять из рассмотрения любые параметры.
>Например, если удалить параметры с именами 4, 7, 10, 13 и 16, то строка 1 подойдет под
>критерий выборки. Если удалить параметры с именами 5, 8, 111, 14 и 17, то под этот
>критерий подойдет и строка 2.
Т.е. нужно выкидывать параметры? Или матрица всегда статична?

  Ответить  
 
 автор: Владимир55   (14.10.2009 в 17:31)   письмо автору
577.7 Кб
 
 

Имеется "квадратный" двумерный массив
$n_rez[$i][$ii];

где:
$i - имена неких параметов, каждое из которых задано в виде целого числа.
$ii - имена этих же параметров, заданные аналогичным образом.

При этом в элементе $n_rez[$i][$ii] записано числовое соотношение между свойствами параметра с именем $i и параметра с именем $ii. Естественно, что для $i = $ii значения отсутствуют, а $n_rez[$i][$ii] = $n_rez[$ii][$i].

Пример в Приложении.
Вертикально синим отмечено $i , горизонтально сиреневым отмечено $ii

Из этой таблицы нужно выбрать все параметры (горизонтальные строки), для которых максимальное значение меньше заданного (например, меньше 60).

Для приведенного примера таких параметров нет совсем, т.е выбирать нечего.

Что бы такая выборка получилась, можно удалять из рассмотрения любые параметры. Например, если удалить параметры с именами 4, 7, 10, 13 и 16, то строка 1 подойдет под критерий выборки. Если удалить параметры с именами 5, 8, 111, 14 и 17, то под этот критерий подойдет и строка 2.

Как осуществить такую выборку? И что бы количество оставшихся параметров было максимальным.

  Ответить  

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

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

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