powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Разминка для мозгов
25 сообщений из 271, страница 1 из 11
(PHP) Разминка для мозгов
    #36551980
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжая тему несложных(или сложных) задачек по программированию...

Очередная задачка(встреченная на просторах инета)

есть строка:
Код: plaintext
1.
$str = '{Пожалуйста|Просто} сделайте так, чтобы это {удивительное|крутое|простое} тестовое предложение {изменялось {быстро|мгновенно} случайным образом|менялось каждый раз}';
в фигурных скобках {} хранятся варианты данного участка предложения. варианты разделены символом |

необходимо написать код который будет, случайным образом, строить из него новое предложение, используя варианты из скобок {}.

например:
Пожалуйста сделайте так, чтобы это удивительное тестовое предложение менялось каждый раз
Просто сделайте так, чтобы это простое тестовое предложение изменялось быстро случайным образом
и так далее...

вариантов решения много. но есть очень компактное и "красивое"

PS. форумных гуру - прошу дать подумать новичкам)) сразу не пишите "дзен-код"
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36552991
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

сходу так и не скажешь... Через preg_replace_callback получается, но это некрасиво и долго. Через токены пока не додумался как сделать...

Интересно.)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553053
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делал бы анализ строки, 2-3 небольших класса крассиво и аккуратно, можно через PCRE с помощью рекурсивных RE
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553070
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anjey aka PM,

через рекурсивные там получится на каждый вложенный список выбора прогонять еще раз этот же рекурсивный паттерн, так как матчит он весь кусок выше рекурсивного субпаттерна.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553092
Master5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
explode();
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553096
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Master5,

бай вот?
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553105
Master5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymMaster5,
бай вот?
Что-что???
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553317
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymr u,

сходу так и не скажешь... Через preg_replace_callback получается, но это некрасиво и долго. Через токены пока не додумался как сделать...

Интересно.)
ну если честно, Компактность и Красивость решения - понятие растяжимое)))
я не говорил что это будет одна строка ))
хотя может и будет)) гениев хватает

через регулярки - вполне красивое получается)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553536
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,
первое впечатление от Вашей задачки и всевозможных символов ")))" - Вы пришли либо пошутить, либо поиздеваться, но скорее всего "чужими руками жар загребать".
Уважаемый, Вы бы для начала хоть бы что-нибудь от себя предложили!
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553572
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой жар??
самозабанься.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553581
Фотография tarasf31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

Вы задачу с решением с Хабра взяли или сами решили?

Судя по формулировке таки скопировали... :)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553613
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowкакой жар??
самозабанься.
А где же Ваше решение, уважаемый?
Или на "пустой крючек" клевать, что-то все-таки останавливает?
Я то знаю ответ, но Вам не скажу.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553704
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что общего между наличием решения и моим
1) вопросом
2) предложением

Ответьте пожалуйста на вопрос про жар чужими руками. и про предложение самозабаниться, ненадо переводить разговор на меня.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553746
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowа что общего между наличием решения и моим
1) вопросом
2) предложением

Ответьте пожалуйста на вопрос про жар чужими руками. и про предложение самозабаниться, ненадо переводить разговор на меня.
Ни Ваш вопрос, ни Ваше предложение не имеет ни какого-либо отношения к решению задачи.
Вы не уводите разговор в сторону. Предложите что-то по сути задачи.
В пративном случае с таким же успехом можно сказанное Вами Вам и переадресовать. ;)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553761
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarasf31r u,
Вы задачу с решением с Хабра взяли или сами решили?
Судя по формулировке таки скопировали... :)
как я и написал выше, задача не моя. да наверное на хабре она мелькала. строка точно как там была, потому что я её сохранял к себе когда пытался решить. а условие уже я тут своими словами описал.
задачка показалась мне забавной. при рутинной работе не часто такие появляются на горизонте. так что размяться может комуто будет интересно.

да я её решил через регулярки. оптимальнее и компактнее пока не смог придумать)
ps если вы мне не верите) то либо задавайте свои задачки(а я попробую решить) либо чуть позже опубликую свое решение) и можно будет обсудить.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553772
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS r u,
первое впечатление от Вашей задачки и всевозможных символов ")))" - Вы пришли либо пошутить, либо поиздеваться, но скорее всего "чужими руками жар загребать".
Уважаемый, Вы бы для начала хоть бы что-нибудь от себя предложили!

а мне что нужно было публиковать её с грустными и траурными смайлами? ))
это не шутка и не издевательство. задача не очень сложная. или вы считаете что у нее нет решения?

если я сразу напишу ответ - то какой смысл? либо никто не будет решать, либо часть будет решать в этом же направлении.. а так интрига. может ктото родит чтото намного лучше чем у меня получилось.

но если народ затребует еще - то в любой момент выложу как я решал. с этим нет проблем.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553778
Фотография tarasf31
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r utarasf31r u,
Вы задачу с решением с Хабра взяли или сами решили?
Судя по формулировке таки скопировали... :)
как я и написал выше, задача не моя. да наверное на хабре она мелькала. строка точно как там была, потому что я её сохранял к себе когда пытался решить. а условие уже я тут своими словами описал.
задачка показалась мне забавной. при рутинной работе не часто такие появляются на горизонте. так что размяться может комуто будет интересно.

да я её решил через регулярки. оптимальнее и компактнее пока не смог придумать)
ps если вы мне не верите) то либо задавайте свои задачки(а я попробую решить) либо чуть позже опубликую свое решение) и можно будет обсудить.

Я Вас ни в чем не обвиняю. Когда эта задачка появилась на Хабре - я ее решыл через регулярки. Там , к стати, есть пару интересных решения на разных языках програмирования :)
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553801
Master5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISВ пративном
ScareCrow-а не трошь!
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553959
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uan0nymr u,

сходу так и не скажешь... Через preg_replace_callback получается, но это некрасиво и долго. Через токены пока не додумался как сделать...

Интересно.)
ну если честно, Компактность и Красивость решения - понятие растяжимое)))
я не говорил что это будет одна строка ))
хотя может и будет)) гениев хватает

через регулярки - вполне красивое получается)
Не, регулярки не катят. Во-первых, получается около 15 строк кода, что уже не круто. Во-вторых, очень неоптимально. Если, конечно, я правильно сделал на регулярках сам.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36553967
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые ткоа не смейтесь над моим решением и сильно не критикуйте - регулярки и индеексы в базах всегда были мои вечные проблемы:
Код: plaintext
1.
2.
3.
4.
$html_body = '{Пожалуйста|Просто} сделайте так, чтобы это {удивительное|крутое|простое} тестовое предложение '.
             '{изменялось {быстро|мгновенно} случайным образом|менялось каждый раз}';
preg_replace("/\{([^\}]+)\}/e", 
             "explode('|','\\1')[rand(0,sizeof(explode('|','\\1'))-1)]", 
             $html_body);
ps/ мона ввести функцию катоаря это красивее сделает но это уже будет +3 строчки
2seti
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36554015
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

код бы хотя бы запустил... синтаксис даже неправилен, не говоря о алгоритме.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36554054
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
та же логика, тока строку представил в виде функции:
Код: plaintext
1.
2.
3.
4.
5.
6.
function r($x){
	$s = explode('|',$x);
	return $s[rand( 0 ,sizeof($s)- 1 )];
}
print preg_replace('/\{([^\}]+)\}/e', 
			 'r("$1")',
              $html_body);

2seti
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36554058
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Master5AISВ пративном
ScareCrow-а не трошь!
А я вообще никогда никого не трогаю, пока меня не трогают.
Лучше бы по теме красноречие проявляли.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36554117
Жортен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS r u,
Вы пришли либо пошутить, либо поиздеваться, но скорее всего "чужими руками жар загребать".
Вы впервые на этом форуме? Так зачем обижать человека не имея о нем ни малейшего представления?

ЗЫ: в следующий раз выпишу форменное предупреждение.
...
Рейтинг: 0 / 0
(PHP) Разминка для мозгов
    #36554335
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РенатУважаемые ткоа не смейтесь над моим решением и сильно не критикуйте - регулярки и индеексы в базах всегда были мои вечные проблемы:
Код: plaintext
1.
2.
3.
4.
$html_body = '{Пожалуйста|Просто} сделайте так, чтобы это {удивительное|крутое|простое} тестовое предложение '.
             '{изменялось {быстро|мгновенно} случайным образом|менялось каждый раз}';
preg_replace("/\{([^\}]+)\}/e", 
             "explode('|','\\1')[rand(0,sizeof(explode('|','\\1'))-1)]", 
             $html_body);
ps/ мона ввести функцию катоаря это красивее сделает но это уже будет +3 строчки
2seti
направление правильное )
...
Рейтинг: 0 / 0
25 сообщений из 271, страница 1 из 11
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Разминка для мозгов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]