[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Еще задачки 2
Страницы: 1, 2, 3, 4, 5, 6
stump
Цитата (Alchemist @ 15.02.2015 - 17:32)
stump
сразу нет, но чисто из интереса - как это выглядит в применении к нашим яйцам?

Есть алгоритм, добавляем туда данные яиц и решаем задачу.

_____________
Трус не играет в хокей
volter9
Alchemist
А нельзя ли с первого этажа начать и кидать яйца вниз потом подниматься на этаж выше, и т.д.?
Ну как я понял это будет не совсем экономично, зато точно сработает. Или можно сделать как в казино laugh.gif :

С первого этажа начинать, и при удачной попытки (если яйцо не разбилось), подниматься на 3-ий этаж (1*2), потом если и в том случае получится, то на 7-ой этаж (2*2) и так какждый раз удваивать. В случае неудачи спустится на n/2 этажей, т.е. типа экспоненциальный рост.

_____________
Мой блог
stump
Цитата (volter9 @ 15.02.2015 - 20:15)
Alchemist
А нельзя ли с первого этажа начать и кидать яйца вниз потом подниматься на этаж выше, и т.д.?
Ну как я понял это будет не совсем экономично, зато точно сработает. Или можно сделать как в казино laugh.gif :

С первого этажа начинать, и при удачной попытки (если яйцо не разбилось), подниматься на 3-ий этаж (1*2), потом если и в том случае получится, то на 7-ой этаж (2*2) и так какждый раз удваивать. В случае неудачи спустится на n/2 этажей, т.е. типа экспоненциальный рост.

Для чистоты эксперимента надо начинать кидать яйца вообще не поднимаясь на этаж: с нулевого. Потом первый, потом второй, потом третий, и т.д. Каждый неудачный раз бегать за яйцом. После того, как нашли все таки этаж можно убедиться правда ли на самом деле этаж минимальный и повторить тоже самое со вторым яйцом - если разобъется раньше значит минимальный этаж - разбитие второго яцйа, если не разобъется до этажа на котором разбилось первое яйцо - этаж разбития первого яйца минимальный smile.gif.

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

_____________
Трус не играет в хокей
twin
А что, если взять с собой курицу?

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Alchemist
stump, volter9 вы теряете смысл задачи...

stump, разумеется задача решается перебором, но перебор перебору рознь. Если тебе так хочется, то для целей решения можешь считать что я уже перебросал 10к яиц со всех этажей, и совершенно определенно знаю начиная с какого этажа они бьются.
Твоя задача придумать как это сделать за наименьшее число попыток.

volter9, "с первого этажа начать и кидать яйца вниз потом подниматься на этаж выше" - это как раз вариант перебора который я дал в своем примере в начале. Если яйца бьются начиная с 100-го этажа, то при таком алгоритме тебе придется сделать 100 (или 99) попыток, прежде чем ты сможешь определить правильный этаж. Т.е. метод, то конечно сработает, но он далеко не оптимален.

Несколькими постами раньше, waldicom уже предложил метод, при котором правильный этаж определяется максимум за 19 (или 18) попыток. Но и это не предел.

twin, ответ дам завтра, пусть люди еще подумают )
На самом деле метод "десяток" очень близко подходит к оптимальному. Надо просто понять в чем его недостаток и творчески его переосмыслить smile.gif
Arh
Я уже погуглил =)
Теперь интересно посмотреть на реализацию вычисляющей функции на PHP =)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Arh
Читер. biggrin.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
waldicom
Цитата (twin @ 15.02.2015 - 18:08)
Arh
Читер. biggrin.gif

А?! ШО?! И это говорит человек, предлагающий
Цитата (twin @ 15.02.2015 - 17:31)
А что, если взять с собой курицу?


ohmy.gif biggrin.gif tongue.gif

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
andrey888
Тащить с собой курицу - эт помоему самое творческое решение ).
первое что пришло на ум - Я бы проверял через этаж начиная со второго... если разбивается на 10 например , вторым яйцом проверяем 9 этаж и узнаем с какого этажа точно яйцу - кирдык.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Michael
Свернутый текст
n - этаж

0) Начальные установки: n=2, имеется 2 яйца
1) поднимаемся на этаж n и бросаем первое яйцо
2) если оно разбилось, то
3) спускаемся на этаж номер n-1 и бросаем второе яйцо
4) если оно разбилось то ВЫХОД (n-1)
5) если оно не разбилось то ВЫХОД (n)
6) если не разбилось, то
7) поднимаемся на этаж номер n+1 и кидаем второе яйцо
8) если оно разбилось то ВЫХОД (n+1)
9) если и второе не разбилось то:
идем на улицу, подбираем наши не разбитые яйца
n = n+3
переход на шаг 1)



_____________
There never was a struggle in the soul of a good man that was not hard
Cognio
Свернутый текст
x - этаж с которого оптимально бросать
x, x+x-1, x+x-1+x-2, ... => x+(x-1)+(x-2)+(x-3) >= 100
=> оптимальный x = 14
Сначала кидаем с 14, если не разбился кидаем с x2 = 14 + 13 = 27, x3 = 27 + 12 = 39 ...
В худшем случае нужно 14 бросков.


UPD. Первый семестр динамического программирования.
twin
Уже все в гугл сбегали biggrin.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
stump
Цитата (Michael @ 16.02.2015 - 13:00)
Свернутый текст
n - этаж

0) Начальные установки: n=2, имеется 2 яйца
1) поднимаемся на этаж n и бросаем первое яйцо
2) если оно разбилось, то
3) спускаемся на этаж номер n-1 и бросаем второе яйцо
4) если оно разбилось то ВЫХОД (n-1)
5) если оно не разбилось то ВЫХОД (n)
6) если не разбилось, то
7) поднимаемся на этаж номер n+1 и кидаем второе яйцо
8) если оно разбилось то ВЫХОД (n+1)
9) если и второе не разбилось то:
идем на улицу, подбираем наши не разбитые яйца
n = n+3
переход на шаг 1)

n = n + 3


Если начальная установка n = 2 то n = n + 3 = 5. Тогда кидаем с пятого, с четвертого, а с третьего не кидаем. Может третий и есть тот этаж с которого бьётся. А если все время по 2 этажа то алгоритм хорош. Максимальная сложность в 2 раза меньше моего, но у моего алгоритма есть проверка достоверности варианта.

Alchemist ответ часто находиться в самом решении.

_____________
Трус не играет в хокей
Michael
stump, третий этаж проверился на предыдущей итерации на шаге 7

_____________
There never was a struggle in the soul of a good man that was not hard
stump
Цитата (Michael @ 16.02.2015 - 15:58)
stump, третий этаж проверился на предыдущей итерации на шаге 7

Точно: если не разбилось шагаем на этаж выше.

_____________
Трус не играет в хокей
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.