Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: выбрать наименьшее четное и нечетное из ряда

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: выбрать наименьшее четное и нечетное из ряда
3d_killer
Отправлено: 08 Апреля, 2014 - 19:58:16
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




например есть переменная:

508,441,510,442,512,441,513,442,516,442,516,444,517,445,518,447,520,449,522,451,521,
455,520,456,522,458,524,458,526,459,529,459,532,459,533,459,536,460,538,462,540,463,
542,464,544,465,546,466,547,467,548,470,548,472,550,474,556,474,562,474,565,473,568,
473,572,473,575,474,579,475,584,477,588,478,592,478,596,475,600,473,607,471,612,469,
616,466,619,462,620,459,617,458,616,455,617,452,619,451,621,452,624,453,626,453,629,
449,634,448,635,448,636,444,639,442,642,440,643,439,646,438,648,438,648,435,644,430,
642,428,639,429,638,430,637,432,637,432,636,432,635,432,632,431,631,432,630,432,628,
431,628,430,629,427,630,417,628,416,626,416,623,417,621,416,620,416,616,416,615,417,
613,418,613,420,612,421,611,421,609,422,605,423,604,423,603,424,600,425,596,425,592,
424,589,421,588,420,585,420,583,419,580,418,575,418,572,420,567,419,563,419,562,417,
560,414,560,413,557,412,554,411,551,410,549,410,545,408,544,411,542,413,541,415,542,
418,544,420,545,423,545,425,540,425,536,425,532,426,530,424,527,422,522,421,518,420,
515,421,513,423,512,424,510,426,508,429,505,431,503,432,502,434,503,436,505,439,508,
441

как выбрать наименьшее четное и нечетное число, а так же наибольшее, вобще не представляю как это сделать, помогите

(Отредактировано автором: 08 Апреля, 2014 - 19:58:48)

 
My status
 Top
Мелкий Супермодератор
Отправлено: 08 Апреля, 2014 - 20:37:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. $iMax = max(array_filter(array_map('trim', explode(',', $sInput)), function ($iValue) {
  2.         return $iValue %2 == 0; // делится нацело -> чётное
  3.         }));

?


-----
PostgreSQL DBA
 
 Top
3d_killer
Отправлено: 08 Апреля, 2014 - 20:55:56
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




а как проверить делится или нет? (оно то все делится)
 
My status
 Top
Мелкий Супермодератор
Отправлено: 08 Апреля, 2014 - 21:08:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Почему всё? Остаток от деления на 2 у чётных чисел будет 0, у нечётных - 1


-----
PostgreSQL DBA
 
 Top
3d_killer
Отправлено: 08 Апреля, 2014 - 21:11:58
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




да голова уже не работает, спасибо
 
My status
 Top
3d_killer
Отправлено: 09 Апреля, 2014 - 11:02:28
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Не правильно работает:
PHP:
скопировать код в буфер обмена
  1.   $coords="
  2.  479, 479,
  3.  479, 470,
  4.  475, 463,
  5.  482, 461,
  6.  486, 455,
  7.  485, 449,
  8.  498, 446,
  9.  497, 437,
  10.  504, 433,
  11.  511, 442,
  12.  519, 446,
  13.  522, 453,
  14.  528, 461,
  15.  540, 462,
  16.  548, 467,
  17.  551, 474,
  18.  567, 474,
  19.  584, 476,
  20.  607, 474,
  21.  619, 464,
  22.  617, 454,
  23.  624, 452,
  24.  634, 449,
  25.  644, 441,
  26.  649, 434,
  27.  640, 428,
  28.  633, 432,
  29.  629, 432,
  30.  629, 424,
  31.  630, 418,
  32.  638, 414,
  33.  639, 393,
  34.  646, 384,
  35.  656, 384,
  36.  665, 386,
  37.  670, 400,
  38.  677, 407,
  39.  684, 414,
  40.  694, 418,
  41.  700, 426,
  42.  709, 420,
  43.  715, 421,
  44.  715, 433,
  45.  706, 453,
  46.  708, 460,
  47.  702, 462,
  48.  696, 469,
  49.  692, 472,
  50.  685, 478,
  51.  680, 483,
  52.  673, 490,
  53.  672, 482,
  54.  670, 476,
  55.  665, 479,
  56.  661, 486,
  57.  657, 490,
  58.  657, 496,
  59.  659, 500,
  60.  664, 502,
  61.  669, 500,
  62.  675, 499,
  63.  680, 502,
  64.  670, 508,
  65.  668, 515,
  66.  670, 520,
  67.  679, 532,
  68.  684, 548,
  69.  679, 565,
  70.  668, 585,
  71.  656, 590,
  72.  638, 598,
  73.  623, 596,
  74.  617, 589,
  75.  601, 592,
  76.  594, 598,
  77.  586, 588,
  78.  578, 584,
  79.  576, 575,
  80.  579, 565,
  81.  571, 559,
  82.  564, 553,
  83.  559, 556,
  84.  552, 560,
  85.  540, 566,
  86.  532, 565,
  87.  501, 554,
  88.  482, 530,
  89.  477, 521,
  90.  467, 516,
  91.  459, 513,
  92.  452, 511,
  93.  449, 513,
  94.  446, 516,
  95.  442, 508,
  96.  433, 514,
  97.  426, 512,
  98.  428, 504,
  99.  426, 501,
  100.  438, 494,
  101.  440, 489,
  102.  440, 485,
  103.  437, 481,
  104.  448, 477,
  105.  463, 478,
  106.  474, 478";
  107.         $iMax = max(array_filter(array_map('trim', explode(',', $coords)), function ($iValue) {
  108.             return $iValue %2 == 0; // делится нацело -> чётное
  109.             }));
  110.                        
  111.                 var_dump($iMax);

выдает 708 а должен 715
 
My status
 Top
Мелкий Супермодератор
Отправлено: 09 Апреля, 2014 - 11:11:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Я начинаю волноваться о вашем здоровье!
715 - нечётное число.


-----
PostgreSQL DBA
 
 Top
3d_killer
Отправлено: 09 Апреля, 2014 - 11:35:33
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




блинн.... вопрос не правильно написал, простите

четный и нечетный ключ то есть в данном случае в массиве 0 элемент координата x, 1 элемент координата y ну и так далее x,y,x,y,x,y,x,y,x,y...
вот мне нужно найти наибольшие координаты.

(Отредактировано автором: 09 Апреля, 2014 - 11:36:44)

 
My status
 Top
IllusionMH
Отправлено: 09 Апреля, 2014 - 12:01:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




3d_killer, подозреваю, что делить на 2 массива и max
 
 Top
3d_killer
Отправлено: 09 Апреля, 2014 - 12:03:23
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




ну так вот как их попроще поделить то?
 
My status
 Top
IllusionMH
Отправлено: 09 Апреля, 2014 - 12:16:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




3d_killer, хотя скорее всего проще будет просто пробежать в цикле сравнивая по 2 координаты за раз.
 
 Top
3d_killer
Отправлено: 09 Апреля, 2014 - 12:33:37
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




кстати да, спасибо
(Добавление)
сделал так:
PHP:
скопировать код в буфер обмена
  1.  
  2.         $array_coords = explode(',', $coords);
  3.         foreach($array_coords as $key_coords => $value_coords)
  4.                 {
  5.                         if($key_coords %2 == 0)
  6.                                 {
  7.                                         if($temp_x < $value_coords)
  8.                                                 {
  9.                                                         $temp_x=$value_coords; 
  10.                                                 }
  11.                                 }
  12.                         else
  13.                                 {
  14.                                         if($temp_y < $value_coords)
  15.                                                 {
  16.                                                         $temp_y=$value_coords; 
  17.                                                 }
  18.                                 }
  19.                 }
  20.         echo $temp_x." - ".$temp_y;
  21.  
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB