Вторую цитату ты привел именно к стати, в ней суть) Да, не думал я что отношусь к задротам, а сам весь вечер размышляю)) Просто есть одно слово "ВСЕ", из за которого части условия взаимоисключающие) Первое это "все или красивы или умны", а второе - "красивы и умны". Если бы не стояло слово "ВСЕ"- я бы тогда согласился и со script'ом и с его наглядным примером. Вот представь себя в компании друзей, Вас 10человек. И у Вас ВСЕХ есть условие, взять из магазина всем любой продукт на холяву, только он должен быть у каждого из всех в едином экземпляре и у ВСЕХ одинаков. Вы думаете и решаете взять колбасу, а не пельмени. Потом подходит охрана магазина и говорит - с колбасой дефицит, слишком затратно магазину. Но могут взять кефир только те, кто уже взял и пельмени и колбасу. В итоге получаем логический 0; Все с носом. Другой вариант развития сценария - Вас просят взять продукты, вы хватаете их. У кого-то килька, у кого то майонез, а у кого-то и колбаса с пельменями. В итоге это не будет ошибкой, и даже если кто-то это захапал - у Вас на группу будет логическое "1") Рандомность тут можно упустить. Не знаю как еще понятнее объяснить.) Script В примере можно было бы добавить еще и "сильная", ну да ладно, это бы ничего не изменило, только стало бы 8 вызовов функции. Ты принимаешь каждый вариант как true или как false, но видишь в чем проблема. Слово "ВСЕ"- ты должен отдавать как константу при вызове функции. Например 1 или 0. После выбора от условия. Т.е только красивые или только сильные и эта константа не может меняться false на true. Ты написал пример для работы только со второй частью условия. Но молодца, если бы не одно слово- я бы был с тобой абсолютно согласен) Ладно ребят, Всем пока) Поделились друг с другом, пошевелили мозгами - было интересно) Спорить не будем)
Главное что я старался)) А мнение пусть уж будет у каждого свое_) Да, вот еще задачка: напишите скрипт на php,паскале или C++ который выводил бы нат числа в диапазоне(1-800) которые делятся на 7 и на 4. Задача простая) Как и решение) Интересно посмотреть на то, как кто алгоритм строит)
Можно записать условие и пусть комп решает сам. PHP: for(int i = 1; i <= 800; ++i) printf((i % 7 == 0 && i % 4 == 0) ? "%i\n" : "", i); А можно решить самому и компу оставить только вывод. PHP: for(int i = 1; i <= 800; i += 7 * 4) printf("%i\n", i);
покороче: PHP: for ($i=1; $i*4<=800; ++$i) { echo ($i * 4 <=800 ? ($i * 4)."\n" : ''); echo ($i * 7 <=800 ? ($i * 7)."\n" : ''); } подлиннее: PHP: $limit = $rez1 = 800; for ($i=1; $rez1<=$limit; ++$i) { $rez1 = $i * 4; $rez2 = $i * 7; if ($rez1 <= $limit) echo "$rez1\n"; if ($rez2 <= $limit) echo "$rez2\n"; }
PHP: int max=(4*7); for (int i=1;i<=800;i++) { if ((i%max)==0) { cout << i << "\n"; } } Даже в таком малом примере столько подходов) Это самый простой вариант
Вот еще одна, достаточно известная задача. Прошу тех, кто ее встречал и знает ее принцип не отвечать) Есть 4 Ящика. У Вас на кону приз, Вы подходите к одному, Выбранному Вами ящику и ложите на него руку. После чего ведущий открывает Вам еще один, из оставшихся трех ящиков, показывая что он тоже пуст делая этим самым Вам подсказку. В итоге остаются закрытыми три ящика, один из которых под вашей рукой. Т.е один под рукой и два в стороне. Вопрос: Стот ли Вам открывать выбранный изначально ящик или все таки теперь выбрать другой? Если да, то почему? Примечание: Ведущий открыл ящик заведомо зная какой из них пустой и он не мог открыть ящик на который Вы положили руку, в любом случае. Задача не имеет неоднозначности. Решение здесь конкретно.
Можно ведь просто списать: PHP: function ex($string, $from, $to) { $string = explode($from, $string, 2); $string = explode($to, $string[1], 2); return $string[0]; } ini_set('allow_url_fopen', 1); echo ex(file_get_contents('http://pastebin.com/SB7ZkySh'), '<textarea cols="5" rows="5" id="paste_code" class="paste_code" name="paste_code" onkeydown="return catchTab(this,event)">', '</textarea>');
Мне проще написать две строчки когда, чем десять) Ну и конечно- вывести алгоритм и результат непосредственно по задачи самому - это совсем другое. В противном случае это даже не программирвоание, а бог знает что) Ты действительно считаешь что твой пример проще чем все вышеприведенные?)
ну я бы ответил так, остается у тебя 1 ящик, и 2 ящика не у тебя. изначально получается что тебе надо выбирать "твой или не твой ящик", т.е. 50% что в твоем ящике приз. и 50% на два других, т.е. 25% на 1 ящик что не у тебя. вероятность в 2 раза меньше. поэтому предпочтительнее оставить свой ящик, жду критику)))
а на счет задачки, что делать если я сразу выберу правильный ящик и не буду никогда его менять? парадокс не работает в этом случае?
Работает в любом случае, то что ты будешь менять ящик не дает ведь 100% гарантию, так же как и то, что шанс именно в твоем первом выборе. Здесь просто разница в процентах вероятности)) c411k Это к чему было?