Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интерестная задачка, массивы 
:(
    Опции темы
Soah
Дата 9.7.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 512
Регистрация: 18.2.2009

Репутация: нет
Всего: 54



solenko, свой вариант выслал в PM.

Staind, PHP: Собеседование, в комментариях обсуждали и эту задачку.

Это сообщение отредактировал(а) Soah - 9.7.2009, 14:55
PM MAIL   Вверх
solenko
Дата 9.7.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



итого уже 4 решения и 5 решивших: ksnk, patap, icewind, youri, Soah 


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Aikus
Дата 9.7.2009, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 29.11.2007

Репутация: нет
Всего: 1



Спасибо за задачу
PM MAIL   Вверх
solenko
Дата 9.7.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



итого уже 5 решений и 6 решивших: ksnk, patap, icewind, youri, Soah, Aikus

Добавлено через 1 минуту и 14 секунд
Все варианты решений выложу около 22:00 по Москве


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
solenko
Дата 9.7.2009, 20:25 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Как и обещал, все варианты решения которые мне прислали в хронологическом порядке:
solenko
Код

var_dump(array_diff($arr, array_diff_key($arr, array_unique($arr))));


ksnk:
Код

var_dump(
    array_keys(array_intersect_assoc(array_count_values($x),array_fill_keys($x,1)))
);


patap:
Код

$mas =array_keys(array_intersect(array_count_values($mas), array(1))); 


icewind:
Код

$arr1 = array(1, 2, 3, 4, 1, 3, 1, 4, 5, 9);
$arr2 = array_unique($arr1);
$values1 = array_count_values($arr1);
$values2 = array_count_values($arr2);
$arr2 = array_diff($values1, $values2);
$result = array_keys(array_diff($values1, $arr2));
echo "<pre>"; print_r($result); echo "</pre>";


youri:
Код

$a = array(1,2,2,3);
$b = array_diff(
    $a,
    array_diff_assoc( $a, array_unique($a) )
);
var_dump($b);


Soah:
Код

$arr = array(1, 3, 7, 4, 3, 9, 1, 6, 0, 4, 1);
print_r(array_keys(array_intersect(array_count_value($arr), array(1))));


Aikus:
Код

$start = array (1,1,2,3,3,4,5,6,7,7,2);
$inventor = array_flip ($start);
$unique = array_unique ($start);
$uniqueInventor = array_flip ($unique);
$resultImventor = array_intersect ($inventor, $uniqueInventor);
$result = array_flip ($resultImventor);
echo implode (', ', $result).'<br/>';



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
patap
Дата 10.7.2009, 00:23 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



Я решил проверить чье решение самое скорострельное smile

Испытание проводил в профайлере PhpED, повторений стотыщь раз, каждый код тестил по пять раз. После каждого пятого раза (т.е. на каждом новом решение) перезапускал PhpED

Код был следующий

Код

  for ($i = 0; $i < 100000; $i++) {
    $arr = array(1, 2, 3, 4, 1, 3, 1, 4, 5, 9, 2, 5, 6, 7, 8, 8, 8, 9);

    // тут решение без вывода на экран, к примеру
    
    array_keys(array_intersect_assoc(array_count_values($arr),array_fill_keys($arr,1)));
  }


Собственно результаты:

6 место:
icewind
(11.3 + 10.6 + 11.2 + 10.6 + 11.0) / 5 = 10.94

5 место
youri
(10.7 + 10.0 + 10.1 + 10.1 + 10.3) / 5 = 10.24

4 место
solenko
(10.1 + 10.0 + 9.9 + 9.7 + 10.0) / 5 = 9.94

3 место
Aikus
(9.3 + 8.7 + 8.7 + 8.7 + 8.7) / 5 = 8.82

2 место
Soah и patap
(2.5 + 2.6 + 2.3 + 2.3 + 2.7) / 5 = 2.48

1 место
ksnk
(2.0 + 2.0 + 1.9 + 1.8 + 1.8) / 5 = 1.9

уот такие вот пироги  smile 


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
bazzjr
Дата 10.7.2009, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Подарок для ksnk в студию!!!   smile   smile 
PM MAIL ICQ   Вверх
nerezus
Дата 10.7.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Дана переменные a и b. Вопрос: Как поменять переменные местами, не прибегая к третей псевдо-переменной (работает на любом языке программирования).

1 строка: 
Код

$a ^= $b ^=$a ^= $b;


Добавлено через 4 минуты и 1 секунду
Цитата

мне давали 2 задания сделать голосовалку, новости и админку... (((
 Дай угадаю: на работу не взяли. Потому что им нужны была голосовалка, новости и админка, а не работник.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Staind
Дата 11.7.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 17.12.2007
Где: Планета сокровищ

Репутация: 2
Всего: 3



2nerezus, 2solenko,
Это конечно хорошо, что вы решили такими способами (я даже и не догадался, признаюсь). Но условие одно было "работает на любом языке программирования". А так, зачет вам^^
P.s. И да, я забыл указать, что переменные - исключительно целые числа.

Это сообщение отредактировал(а) Staind - 11.7.2009, 00:15
--------------------
Ничто так не раздражает человека, как просьба успокоиться
PM MAIL WWW ICQ   Вверх
nerezus
Дата 11.7.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Но условие одно было "работает на любом языке программирования"
 Ну я так и написал. Работает в С-style языках.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Dima50
Дата 16.7.2009, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 20.10.2007

Репутация: 1
Всего: 2



спасибо за задачу

Это сообщение отредактировал(а) Dima50 - 16.7.2009, 18:23
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.