[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: школьная задачка
faki
Есть массив array(10,6,15,25,18,11,10,5,7,30). Вывести индексы тех его элементов, которые делятся на 5 без остатка.

помогите ребят, если не трудно



Спустя 4 минуты, 49 секунд (12.12.2011 - 22:16) dadli написал(а):
$mas = array(10,6,15,25,18,11,10,5,7,30);
foreach ($mas as $val) {
if (is_int($val/5)) {
$keys = $keys.",".$val;
}
}

echo substr($keys,1);

Спустя 3 минуты, 32 секунды (12.12.2011 - 22:19) Winston написал(а):
$mas = array(10,6,15,25,18,11,10,5,7,30);
while(list($key, $val) = each($mas))
if($val % 5 == 0)
echo $key. '<br/>';

Спустя 36 минут, 37 секунд (12.12.2011 - 22:56) killer8080 написал(а):
Надо то же вставить пятак user posted image
$mas = array(10,6,15,25,18,11,10,5,7,30);
echo implode(', ', array_keys(array_filter($mas, create_function('$v', 'return !($v % 5);'))));

Спустя 1 минута, 1 секунда (12.12.2011 - 22:57) faki написал(а):
biggrin.gif , спасибо, выручили

Спустя 11 минут, 36 секунд (12.12.2011 - 23:09) Winston написал(а):
Афигеть у меня самое медленное решение :(
При
$mas = range(0, 10000);

Решение dadli - 0.0328850746155 (И еще выдает нотис "Notice: Undefined variable: keys")
Мое решение - 0.0519528388977
И решение killer8080 - 0.045175075531

Спустя 3 минуты, 51 секунда (12.12.2011 - 23:12) killer8080 написал(а):
Winston
Странно blink.gif
По идее самое медленное должно быть моё, всетаки создается анонимная функция, фильтрация и т.д. Быстрей всего, по идее, должен быть foreach, вроде как минимум телодвижений.

Спустя 1 минута, 17 секунд (12.12.2011 - 23:14) Winston написал(а):
Цитата (killer8080 @ 12.12.2011 - 22:12)
По идее самое медленное должно быть моё

Да вот и я о том же... Хрень какая-то с денвером unsure.gif

Спустя 8 минут, 50 секунд (12.12.2011 - 23:22) dadli написал(а):
я вобшем не правилни kод написал, он видает валуе а не индекси как ТС хотел <_<

Winston
как ти вичисляеш время, так?

$odin = microtime(true);
// код какойта
$dva = microtime(true);

echo "<br>";
echo $dva - $odin;


или как?

Спустя 3 минуты, 15 секунд (12.12.2011 - 23:26) Winston написал(а):
dadli
$start = microtime(true); // Получаем время на момент запуска скрипта
//
// Куча кода
//

$end = microtime(true); // Получаем время после завершения выполнения скрипта
echo $end - $start; // Узнаем сколько работал скрипт

Спустя 1 минута, 24 секунды (12.12.2011 - 23:27) killer8080 написал(а):
Я то же сделал замер, видимо у тебя система под тормозила

killer8080 0.0139541625977
dadli 0.00969791412354
Winston 0.0124731063843

PS хотя разница не столь существенна, можно не заморачиватся, особенна на таких больших массивах, как у ТС. rolleyes.gif

Спустя 3 минуты, 7 секунд (12.12.2011 - 23:30) treycerok написал(а):
у кого амд, и двух ядерный у того будут проблемы в вычислениях функцией микротайм,
Winston, а твое решение попробуй оформить с {} , всё же может это уточняет компилятору поиск блоков для операций=)

Спустя 2 минуты, 28 секунд (12.12.2011 - 23:33) killer8080 написал(а):
Цитата (treycerok @ 12.12.2011 - 22:30)
у кого амд, и двух ядерный у того будут проблемы в вычислениях функцией микротайм

Ну у меня, а какие должны быть проблемы?

Спустя 3 минуты, 14 секунд (12.12.2011 - 23:36) Winston написал(а):
treycerok
C {} выполняется медленнее у меня.

Спустя 3 минуты, 37 секунд (12.12.2011 - 23:40) dadli написал(а):
я тоже тестировал и один момент вилезал число (0.00862216949463) в таком виде: 0."позванит в китаи через скупе" laugh.gif

Спустя 1 час, 31 минута, 30 секунд (13.12.2011 - 01:11) ИНСИ написал(а):
Winston попробуй через foreach пройтись по массиву. Результат будет другим наверняка

Спустя 14 часов, 24 минуты, 26 секунд (13.12.2011 - 15:35) Winston написал(а):
Цитата (INSIDIOUS @ 13.12.2011 - 00:11)
Результат будет другим наверняка

Та да smile.gif
Не плохо получилось:
0.0185129642487

Спустя 48 минут, 16 секунд (13.12.2011 - 16:24) ИНСИ написал(а):
Winston также можно через for попробовать и думаю результат будет тоже быстрее, так как foreach копирует массив. А может и нет smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.