 Интересные задачи по программированию и логике
 Интересные задачи по программированию и логике 
Создана: 09 Августа 2009 Вск 17:07:11.
Раздел: "Интернет-флейм"
Сообщений в теме: 585, просмотров: 253043
- 
просто Паха писал :тут математика примерно такая 1+2+3+..+n. как только сумма превысит нужное количество этажей - n и будет стартовая группа и минимальное количество бросков. :тут математика примерно такая 1+2+3+..+n. как только сумма превысит нужное количество этажей - n и будет стартовая группа и минимальное количество бросков.
 Это работает!
 Но нет ли более "экономных" функций?
 Пока минимум = 14. Кто меньше?
 
 /Но, если задача задана типа на программирование, то Пахино решение не катит - в нём нет места программированию. Нееее, надо чтобы было что попрограммировать. Паха, извини, твоё решение никуда не годится!/
- 
Лохмастерье писал :/Но, если задача задана типа на программирование, то Пахино решение не катит - в нём нет места программированию. Нееее, надо чтобы было что попрограммировать. Паха, извини, твоё решение никуда не годится!/ :/Но, если задача задана типа на программирование, то Пахино решение не катит - в нём нет места программированию. Нееее, надо чтобы было что попрограммировать. Паха, извини, твоё решение никуда не годится!/
 int s=0, n=0;
 for(; s<100; n++) s+=n;
 return n-1;
- 
 А где героическое преодоление сложностей, где романтическое наматывание соплей на кулак, где титаническая борьба, где страх и ужас?!
 + Зачем для подсчёта суммы членов арифметической прогрессии чего-то программировать, когда есть формула суммы членов арифметической прогрессии?!
 =========
 
 Так...так..так... несите сюда ещё ваших задач.
- 
 ну так сам же сказал, что надо программироватьЛохмастерье писал :+ Зачем для подсчёта суммы членов арифметической прогрессии чего-то программировать, когда есть формула суммы членов арифметической прогрессии?! :+ Зачем для подсчёта суммы членов арифметической прогрессии чего-то программировать, когда есть формула суммы членов арифметической прогрессии?!  
 Лохмастерье писал :/Но, если задача задана типа на программирование, то Пахино решение не катит - в нём нет места программированию. Нееее, надо чтобы было что попрограммировать. Паха, извини, твоё решение никуда не годится!/ :/Но, если задача задана типа на программирование, то Пахино решение не катит - в нём нет места программированию. Нееее, надо чтобы было что попрограммировать. Паха, извини, твоё решение никуда не годится!/
- 
userlogoff wrote:
 Раз уж пошел такой сыр бор, вот вам несколько задачек, уже конкретно на программирование. Они были опубликованы в одном журнале, название которого я напишу только после решения этих задачек )
 Итак.
 1) Дан набор файлов с именами, скажем, от 1 до 1000. Один из этих файлов удаляется. Нужно определить, какой именно.
 2) Есть функция rndtwo(), равновероятно возвращающая однобитовое бинарное число (0 или 1). С помощью этой функции необходимо реализовать новую функцию rndthree(), которая равновероятно будет возвращать 0, 1 или 2.
 3) Есть 2 одинаковых шара, сделанных из стекла. За какое мин. число бросков можно гарантированно определить, при падении с какого этажа стоэтажного здания шарики начинают разбиваться.
 4) Задачка на знание unix-подобных систем. В каталоге /bin случайно была выполнена команда chmod -x chmod. Предложите варианты решения данной проблемы. Доступа к инету нет, ребут делать нельзя. была выполнена команда chmod -x chmod. Предложите варианты решения данной проблемы. Доступа к инету нет, ребут делать нельзя.
 
 
 1) Ничего программистского.
 2) Тоже ничего программистского.
 3) Как ни вытягивал я эту задачу на программистскую (видит Бог, я старался), не вытянул - Паха из за угла дал просто под дых.
 4) Тоже программированием не пахнет. Впрочем, в тексте честно написано "Задачка на знание unix-подобных систем."
 
 userlogoff, чё там... решены задачи?
 
 Кстати, хотел поиздеваться над тенденцией объявлять задачу программистской, если в тексте задачи слова "яблоко" заменяются на слова "файл", но обнаружил, что такая замена иногда делает задачу "программистской" (хотя бы чуть-чуть, хотя бы с натяжкой). Действительно, если у Буратины было 5 яблок, и 2 яблока он отдал, то у Буратины должно остаться 3 яблока. Но если у Буратины было 5 файлов, и 2 он отдал...
- 
 не согласен. тут было три варианта программирования двух разных подходов к решению задачи.Лохмастерье писал :2) Тоже ничего программистского. :2) Тоже ничего программистского.
- 
просто Паха писал : :
 не согласен. тут было три варианта программирования двух разных подходов к решению задачи.Лохмастерье писал ... :2) Тоже ничего программистского.
 I) Увидел только два подхода - твой и Эрха. Остальное перепевки одного и того же. Твой вариант не катит - он не точен математически (но практически пригоден, и даже вне конкуренции, но тут всё-таки задача про сферический рандомайзер в вакууме, а не раельно работающий механизм, удовлетворяющий практические нужды.).
 
 II) Тут главное, всё-таки идея. А программирование пришито, поскольку так захотелось автору задачи.
 Поставлю задачу по другому: "У вас в распоряжении правильная монета. Как с помощью этой монеты отмерить вероятность 1/3?". Это всё. Всё последующее - это искусственное натяжение чужой кожи на морду лица.
 
 Не спорь со мной!
 
- 
Лохмастерье писал :  bouchon писал(а): :  bouchon писал(а):
 
 Ты расписал вариант с первоначальным шагом 2.
 m=2 maxi=52
 Не самый лучший вариант.
 
 
 Я тебе говорю, что если ты скажешь, что можешь найти этаж меньше чем за 50 бросков и укажешь как ты собираешься это делать, я могу выбрать такой этаж, что ты разобьешь оба шара до того как его гарантировано его найдешь. Понимаешь ли, что если ты будешь бросать через n> 2 этажа, то так конечно быстрее, но это не ГАРАНТИРУЕТ, что ты найдешь этаж до того как разобьешь оба шара. А по условию ты должен обеспечить гарантию нахождения. 
- 
Бушон, что-то ты не то говоришь  
 
 Двумя шариками легко находится при любом m. На примере первой m=10. 10, 20, 30, 40ой... На 40-м разбилось? Ок, погнали уточнять единицы 31,32,33 и т.д. Это ж вроде выше Паха предложил и несколько раз обмусолили?
 
 Или ты о чем-то другом?
- 
Эрхафан писал :  Бушон, что-то ты не то говоришь :  Бушон, что-то ты не то говоришь  
 
 Двумя шариками легко находится при любом m. На примере первой m=10. 10, 20, 30, 40ой... На 40-м разбилось? Ок, погнали уточнять единицы 31,32,33 и т.д. Это ж вроде выше Паха предложил и несколько раз обмусолили?
 
 Или ты о чем-то другом?
 
 Что такое m? Алгоритм бросания не зависит от того какой искомый этаж. Пусть этажей 100, я загадал этаж, но ты его не знаешь, предлагай с кого этажа ты будешь брасать первым, а я тебе скажу разбилось или нет, и посмотрим, угадаешь ли ты его меньше чем за 50 попыток гарантированно, то есть при любом варианте, что я загадал.
- 
просто Паха писал : :
 не согласен. тут было три варианта программирования двух разных подходов к решению задачи.Лохмастерье писал ... :2) Тоже ничего программистского.
 Если просто разбирать чисто программирование... Бог с ней, с самой задачей.
 
 Твой кунфу краше всех. Ибо даёт простой путь к написанию функции-рандомайзера на любое количество чисел (не покидая рамок сферически-вакуумного рандомайзера - код потребует минимальной переделки). Глядеть любо-дорого, даже охватывают эстетический шок и религиозный трепет.
 
 Код Monk Albino:
 Волосы на теле шевелятся, как представлю, что в таком же стиле надо будет писать функцию-рандомайзер генерящую числа от нуля до 666.
 Нет потенциала для развития в функцию rnd_any(number)
 
 Код Эрха:
 Реализация идеи. Для rndthree() вполне. Правда, код загадочен - непосвящённому трудно догадаться, за что идёт борьба. Потенциал - то же самое, что у Monk Albino
 
 Код userlogoff: (на сладкое)
 Похоже, userlogoff сделал то же самое, что и Эрх. Только более солидно.
 Но усиленно отвергал идею Эрха, по сути ею же и пользуясь. "Мы бьемся насмерть во вторник за среду, не принимая уже четверга".
- 
- 
 я уже привёл универсальный алгоритм для любого количества этажей и двух шаров. подход такой: берём группу m этажей. кидаем с последнего этажа этой группы и если он разбился, начинаем кидать с первого этажа этой группы, последовательно приближаясь к последнему. в худшем случае будет m попыток. если на последнем этаже группы шар таки не разбился, то берём следующую группу из m-1 этажей. -1 потому, что на предыдущей группе одна попытка уже израсходована. сумма всех таких групп должна быть равна или больше количества этажей. при 100 этажах самая большая группа - 14 этажей и это число есть решение задачи.bouchon писал(а) :Что такое m?  Алгоритм бросания не зависит от того какой искомый этаж. Пусть этажей 100, я загадал этаж, но ты его не знаешь, предлагай с кого этажа ты будешь брасать первым, а я тебе скажу разбилось или нет, и посмотрим, угадаешь ли ты его меньше чем за 50 попыток гарантированно, то есть при любом варианте, что я загадал. :Что такое m?  Алгоритм бросания не зависит от того какой искомый этаж. Пусть этажей 100, я загадал этаж, но ты его не знаешь, предлагай с кого этажа ты будешь брасать первым, а я тебе скажу разбилось или нет, и посмотрим, угадаешь ли ты его меньше чем за 50 попыток гарантированно, то есть при любом варианте, что я загадал.

 Интернет-флейм
 Интернет-флейм












 А Лохмастерье самый умный. С новым годом
  А Лохмастерье самый умный. С новым годом 

