WEB форумы на jedi
[Форум] [Помощь] [Поиск] [Выйти]
Добро пожаловать, [info]User

WEB форумы на jedi [ПОИСК] [Архив до 03.2006]

Тема Задачка. К предыдущему сообщению На следующее сообщение прочее

Отправил Big в 22:02 17.02.2003[Ответить]
Дано: Здание в N этажей и 2 одинаковых стеклянных шара. При сбрасывании шара с определенного этажа здания он может или разбиться, или не разбиться. Неразбившийся шар можно использовать повторно.

Найти: алгоритм, позволяюший вычислить минимальное количество сбрасываний шаров для определения этажа, с которого они (шары) начинают разбиваться. Доказать оптимальность алгоритма.

Например, 100 этажей в здании. Сколько нужно сбрасываний?


Отправил Nork в 00:09 18.02.2003[Ответить]
Завтра утром решение напишу... Если надо...


Отправил Big в 19:20 18.02.2003[Ответить]
Date: Tue, 18 Feb 2003 00:09 +0300

Nork ответил(а) на Ваше сообщение на форуме WEB форумы на jedi.kosnet.ru. Ответом было:

----------
Лажа!!!
8 класс!!!
----------

Не надо, коли лажа.


Отправил lord_Alex в 02:50 18.02.2003[Ответить]
Условие не очень точное. Скажем, все упирается опять же в вероятности.
В идеальном случае интервал из N этажей надо разбить на 3 ~равные части и и сбрасывать с этажей граничащих на этих частях. Причем сначала надо сбросить с 1 и с последнего этажей.
Если на каком-то этаже шар разбился, делим оставшийся нижний интервал на 2 (т.к. шар уже 1).
общее число сбрасываний будет ~равно logN/log3
----
Если же задачка реальная, т.е. внизу асфальт, этажи по 2.5-3 метра, то первый шар сбрасываем с 1 этажа, второй - с третьего, если на 3 разбился - сбрасываем на 2, если нет, тогда поднимаемся на 5 и сбрасываем с него. И т.д.
общее число сбрасываний будет ~равно N/2+1


Отправил Big в 19:28 18.02.2003[Ответить]
1) Разбиваем 100 этажей на 3 части и получаем 33 этажа.
Сбрасываем с первого - не разбивается.
Сбрасываем с 33-го - разбивается.
Сбрасываем с 16-го - разбивается.

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

2) асфальт и высота этажей роли не играют. Шар или разбивается, или нет.
Почему поднимаемся на 5?

PS: ~равно N/2+1 - слишком много попыток, можно за меньшее.


Отправил Zauberer в 21:12 18.02.2003[Ответить]
Можно за 35 попыток.


Отправил Big в 21:20 18.02.2003[Ответить]
Можно и за меньше. Но в задаче спрашивался алгоритм.


Отправил lord_Alex в 21:13 18.02.2003[Ответить]
N/2+1 это самый худший случай.


Отправил Big в 21:20 18.02.2003[Ответить]
Нужен не худший, а лучший.


Отправил Patrol в 23:19 18.02.2003[Ответить]
ИМХО самое простое скакать через этаж.
Кинули на 1-м, выжил - поднялись на 3-й, выжил - поднялись на 5-й, разбился - опустились на 4-й и кинули второй. Выжил - критический этаж = 5, разбился - 4 :)


Отправил Nork в 00:37 19.02.2003[Ответить]
Да нет...
Сейчас вспомню самый лучший


Отправил Key в 02:20 19.02.2003[Ответить]
Идея Патрола здравая. Доработаем.
Кидаем со 2, 5, 8, 1 + 3k, 97, 100-го этажей. Как разбился, кидаем второй с этажа под ним, если второй шар разбился - нашли этаж, если не разбился, значит искомый на один ниже. Итого ~ N/3 + 1 = 34.

Лифта в доме нет, долго бегать :) Думаем дальше.
Будем скидывать с каждого десятого, если разбился на 10k-том, значит искомый этаж находится между 10(k-1) и 10k - допроверяем оставшимся шаром (9 попыток). Итого N/10 + 9 = 19.

Число 10 некрасивое, не круглое :) Дальше.
Резать дом на равные части не умно, так как если первый шар разобьется на низком этаже, то из 18 попыток останутся неиспользованные. Значит секции которые ниже, должны быть больше.
А верхняя - минимальна, из 1 этажа. Отсчитывая сверху: 100, 99(2 пропускаем), 97 (3 пропускаем), 94(4), 90(5), .. , 27(13), 14-ый этаж, все, дальше подвал.
Начинаем ронять шар с 14, 27, etc, как только разбивается, проверяем секцию, кидая второй шар. Итого бросков всегда будет 14 максимум.

Для произвольного N нужно найти такое k, что 1 + 2 + ... + k > 2N, то бишь решить k*k + k - 2N = 0. Тут я пас :)

Ээ.. Паш, не надо больше, а :) я после того генерала зарекся, а ты опять за свое. Спать же хочется..

П.С. Для 3х шариков придумал, объянить смогу на пальцах, а вот для M уже трудновато так вот сходу.. ты знаешь?


Отправил Nork в 13:08 19.02.2003[Ответить]
Вроде оно...
В виде n=32 предлагалась в 1997 году в Кировском ЛМШ на вступительном задании...


Отправил Key в 20:15 19.02.2003[Ответить]
Покопался специально..
При N=15 и при шары=орехи, дом=дерево, человек=белка, давалось в той же школе для 6-ого класса..
Но это сути не меняет. Тебе не помогло ;)


Отправил ID в 23:17 19.02.2003[Ответить]
А вариант три кокоса, и пять попыток (новое ограничение) вроде было на ТЮМ (турнир юных математиков) этого года. Если надо спрошу Колю Ч. в пятницу (самому вспоминать в лом)


Отправил Nork в 11:55 20.02.2003[Ответить]
В смысле не помогло?


Отправил Big в 15:22 19.02.2003[Ответить]
> Резать дом на равные части не умно

Очень правильная идея :) 5 баллов.

> Для произвольного N нужно найти такое k, что 1 + 2 + ... + k > 2N, то бишь решить k*k + k - 2N = 0. Тут я пас :)

Это называется треугольное число :)
Но бросков не всегда будет 14, может быть и меньше, конечно. Важно то, что не больше 14-ти (конкретные числа - только о конкретном примере, конечно).

Про М шариков не знаю, не думал еще.

PS: а как там мехматовцы в лице 125-го админа и сотоварищей? :)


Отправил Key в 16:51 19.02.2003[Ответить]
Сейчас подумал, ведь что алгоритм оптимальный я не доказал. Хотя подсказки есть ;)
Так что они могут еще поучавствовать, надо только им свистнуть.
Кста, и про М шариков тоже. Решил, но там махровая математика уже, это нужно на бумажке, сюда степени рисовать не удобно ;)


Отправил Big в 17:55 19.02.2003[Ответить]
Доказательства оптимальности у меня тоже нет пока... Это уже высшая математика :)


Отправил Key в 20:12 19.02.2003[Ответить]
Да ну? Для двух шаров - абзац, не больше..
Раз уж загадал, сам теперь думай ;)) Сроку до завтра ;)


Отправил Big в 20:32 19.02.2003[Ответить]
Я математиков подожду :), а то что-то давно Азарика не появлялась :(