![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
а доказательство сколько строк будет занимать?
|
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Док-во чего? Я имел ввиду вот это:
Это сообщение отредактировал(а) KSURi - 16.10.2007, 23:38 -------------------- Died at Life.pl line 21 |
|||
|
||||
under_sun |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 3.10.2007 Где: Ебург Репутация: нет Всего: 17 |
Да, я сдавал эту задачку в универе. KSURi, хочу напомнить, что выражения могут быть не только числовыми, но и буквенными ![]() --------------------
TMTOWTDI |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
-------------------- Died at Life.pl line 21 |
|||
|
||||
under_sun |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 3.10.2007 Где: Ебург Репутация: нет Всего: 17 |
eval -ом одним здесь ничего не сделать, т.к. он не понимает символьную арифметику )).
(a*7 будет 0 и a+с тоже) т.е. в твоем коде a*5 и a*7 будут равны, и все выражения в, которых нет цифр, тоже.... --------------------
TMTOWTDI |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Ну начальное условие не совсем точно было написано...
-------------------- Died at Life.pl line 21 |
|||
|
||||
amg |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Задача не то чтобы сложная, но довольно муторная (если решать ее так, как я это делал). Хотя, может, есть способ гораздо проще.
Получается
PS Исправил код (см. ниже) Это сообщение отредактировал(а) amg - 20.10.2007, 13:40 |
||||
|
|||||
under_sun |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 3.10.2007 Где: Ебург Репутация: нет Всего: 17 |
amg, классное решение!
![]()
Согласен, что довольно муторная задача. Довольно много случаев.
Может и есть, но явно не у меня с моими 190 строками кода ![]() Неправильно обработанные примеры:
И 0 - тоже многочлен )). p.s. Если откровенно, у меня тоже работает не все )). --------------------
TMTOWTDI |
||||||
|
|||||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Исправил свой код от ошибок, про которые сказал under_sun, уже начал было комментарии вносить и код оптимизировать, хотел даже операцию деления реализовать, потом догадался на CPAN глянуть и понял, что все это зря. Конечно же, оказалось, что символьная алгебра на perl'е давным-давно реализована, причем в полном объеме.
|
|||
|
||||
tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 4 Всего: 8 |
Есть группа менеджеров, каждый работает над группой проектов. Необходимо уровнять количество проектов у каждого менеджера так, чтобы минимально прервать связь менеджера со своими проектами.
Т.е. есть массив целых неотрицательных чисел. Находим среднее арифметическое. Далее - проблема: если просто заполнить массив средними значениями, то получится, что смешаем все проекты и поровну раздадим их всем менеджерам, а значит гарантированно разорвём большинство связей менеджера со своими проектами. Необходимо действовать вычитанием и сложением - обменом минимальным количеством проектов между менеджерами. Попытайся решить. |
|||
|
||||
ZLOvar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 4.6.2009 Где: Москва Репутация: нет Всего: 1 |
Всем привет, я тоже задачку хочу! только полегче чем верхнее))
![]() ![]() ![]() ![]() --------------------
Если хочешь чтобы работало - используй написанное.Если хочешь что-то понять - пиши сам. (с) |
|||
|
||||
Suppir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Вот задачка:
ЕСТЬ: Строка $a, где-то в середине строки расположена запись даты 04.05.2007. Дата может быть с начальными нулями и без: 04.05.2007 или 4.5.2007 или 04.5.2007. Дата может быть любой в интервале от 01.01.1900 до "ближайшей субботы" - иначе выдавать ошибку. НУЖНО: Нужно в строке $b найти любое упоминание об этой дате. В строке $b дата может быть в следующих форматах: 04.05.2007 4/5/2007 г. 04 мая 2007 4 мае 2007года и подобные этим варианты Это сообщение отредактировал(а) Suppir - 4.6.2009, 11:17 |
|||
|
||||
ZLOvar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 4.6.2009 Где: Москва Репутация: нет Всего: 1 |
Suppir, а можно показать в коде? (мне так легче будет)
зарание спасибо) --------------------
Если хочешь чтобы работало - используй написанное.Если хочешь что-то понять - пиши сам. (с) |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
ZLOvar, вам как? Нужна задача и ее решение в одном посте ?
|
|||
|
||||
Suppir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
ZLOvar, так я предлагаю вам написать решение это задачи в Perl-коде
![]() . 1. Есть строка $a, в ней записана дата в формате 04.05.2007 (или 4.4.2007 или 04.4.2007). Нужно написать регулярное выражение, которое находит эту дату. 2. Написать условие, которое проверяет, чтобы найденная дата была в интервале от 01.01.1990 до "ближайшей субботы" (например, у этой субботы дата 06.06.2009) 3. Написать регулярное выражение, которое найдет эту же дату в следующих форматах: 04.05.2007 4/5/2007 г. 04 мая 2007 4 мае 2007года . Во всех строках даты могут располагаться в любом месте (начале, середине, конце). Желательно, чтобы все эти проверки были оптимизированы - представьте, что вам нужно "прочесать" миллион строк. Это сообщение отредактировал(а) Suppir - 4.6.2009, 12:54 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |