Загадка про две бутылки

Обновлено: 24.12.2024

В комнате на столе стоят 100 бутылок в ряд, в каждой бутылке - одно число от 1 до 100, все числа разные.
В комнату заходит первый человек. Он имеет право посмотреть содержимое всех бутылок и, если посчитает нужным, поменять местами любые две бутылки. После этого он уходит. Затем в комнату приглашается второй человек. Ему называют произвольное число от 1 до 100, и он должен найти это число, открыв не более 50 бутылок. В лучших традициях жанра, эти двое придумали стратегию и не были пущены на колбасу. О чём же они договорились?

1. Можно считать, что места бутылок в ряду пронумерованы.
2. Первый человек не общается со вторым после посещения комнаты.
3. Первый человек не знает, какое число будет искать второй.
4. Найти число - значит открыть бутылку, в которой оно есть, а не просто логическим путем узнать, что оно там.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы ( 1 ) Эксперт 94731 / 64177 / 26122 Ответы с готовыми решениями:

Задача-загадка
На вход подаются числа : 5 1 2 1 2 3 2 3 4 2 4 6 8 10 7 11 19 Программа выдала : 5 14 29 220.

[Задача] Советская загадка про туристов
1. Сколько туристов живет в этом лагере? 2. Когда они сюда приехали: сегодня или несколько дней.

Задача: найти трехзначное число х
У трехзначном числе х зачеркнули его вторую цифру. Когда к образованному при этом двухзначному.

Текстовая задача. Найти двузначное число
Добрый день, всем, помогите решит. Сумма цифр двузначного числа равно 10. Если от каждой цифры.

2619 / 2208 / 236 Записей в блоге: 1 Помню нечто похожее 0 / 0 / 0

а алгоритм решения?

2619 / 2208 / 236 Записей в блоге: 1

Решение

Идея в том, чтобы взять бутылку, номер места которой равен выбранному номеру, а потом посмотреть номер в ней и взять соответствующую.
И тд. В конце концов откроем бутылку с исходным номером, те зациклимся. Так все бутылки разбиваются на циклы.
Цикл либо один длины 100, либо их несколько. Перестановкой можно разбить самый длинный на 2, каждый из которых будет не больше 50. 3364 / 1889 / 569

Основной алгоритм:
Первый смотрит число в бутылке на 1 (z) месте - число х1.
Далее он смотрит число в бутылке на месте х1 - число х2.
И так далее пока не дойдет до числа х50.
На место х50 помещается бутылка с номером 1 (z), а на ее место помещается бутылка с места х50.
Все - выходим.
Исключения:
1. Если на 1 месте (месте z) находится бутылка с номером 1 (z), то алгоритм повторяется при z=z+1
2. Если все бутылки имеют номера со своим положением, то меняются местами две произвольные бутылки.
3. Если в проходе по основному алгоритму при старте с позиции z не доходя до х50 попадаем в позицию z (то есть цикл короче чем 50), то z для следующего старта устанавливаем в любую не участвующую в предыдущих действиях позицию. Если памяти не хватает, то можно просто изменять z=z+1, это дольше но надежнее.
4. Если по исключению 3 дошли до последней позиции (100), то это значит что все циклы короткие, поэтому на позицию 100 ставим бутылку с номером 100, а на ее место помещаем бутылку с позиции 100.

Действия второго:
Второму надо найти номер у. Тогда он смотрит число в бутылке на позиции у - там число у1, далее он смотрит число в бутылке на позиции у1 и т.д.

На рисунке пример реализации алгоритма для 10 бутылок

Миниатюры Эксперт 87844 / 49110 / 22898

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Задача Pascal ABC! Найти число a , вводя n c клавиатуры

Задача. Дано натуральное число n и вещественное x. Найти сумму всех чисел
Плиз, помогите решить задачу! Текс задачи>> Дано натуральное число n и вещественное x. Найти сумму.

Ввести число. По выбору пользователя найти его противоположное, вычесть из него это же число, уменьшенное вдвое, или найти обратное число
var n: integer; begin Writeln('Vvedit chislo '); Readln(n); case n of 'n<0' .

Следующая загадка

струкция
1
Очевидный способ решения. Возьмите одну бутылку шампанского и шприцом проткните пластиковую пробку. Выбирайте шприц как можно большего объема: от этого напрямую зависит длина иглы и ее прочность. Протыкайте пробку там, где толщина заведомо меньше. Иглу из бутылки не вытаскивайте.

2
Отсоедините шприц от иглы, которая должна оставаться помещенной в пробку бутылки. Это делается для того, чтобы нарушить герметичность тары. Можно и совсем вытащить иголку шприца, но есть вероятность, что деформированная пластмасса будет стремиться к своему исходному положению и отверстие, проделанное шприцом, станет меньше.

3
В эту же пробку воткните второй шприц. Наклоните бутылку и наберите шампанское в шприц.

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

5
Переверните вверх дном закрытую бутылку шампанского. Не накреняйте ее, тара должна быть ровно перпендикулярной плоскости пола.

6
Осмотрите дно закрытой бутылки: оно вогнутое, подобное чаше. Налейте сюда шампанского из второй, открытой бутылки. Если используется игристое вино типа советского шампанского, то в углубление на дне стеклянной тары поместится порядка пятидесяти граммов напитка!

Следующая загадка

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

Лучший ответ

крышка то и не стоит вовсе, это просто стоимость бутылки с налогом

Остальные ответы

1 руб.

50 копеек :)))

кому нужна крышка без бутылки?

11-10=1 все остальные доводы - словоблудие .

0,50 и 10,50

Пофиг

Хм. будем судить логически. .
Еси стоимось крышке х, тада получим
11-10=х
х=1
ХDDDDDDDDDDDDDD
Наверна ана или рупль стоит или ничё нистоит

Следующая загадка

Итак, перед нами стоит задача - поместить на весы емкость с объемом воды 4 галлона для того, чтобы разрядить бомбу (эпизод из середины фильма).

В нашем распоряжении только две канистры емкостью 3 и 5 галлонов.

У этой задачи есть два решения.

Первое решение (для простоты будем называть емкость с объемом 5 галлонов "К5", емкость с объемом 3 галлона - "К3"). Наполняем К5 доверху, переливаем воду в К3. В емкости К5 остается ровно 2 галлона. Выливаем воду из К3 и вливаем в нее 2 галлона из К5. Как видно, 3-2 = 1 - в К3 осталось место только для одного галлона.

Заполняем К5 доверху, выливаем из нее воду в емкость К3, в которой, как мы помним, осталось место только для одного галлона - вуаля, в К5 как раз осталось 5-1 = 4 галлона.

Попробуйте завершить второе решение.

Заполняем К3 доверху, переливаем всю воду в К5.

Еще раз заполняем К3 доверху, переливаем воду в К5 до тех пор, пока она не заполнится, в итоге в К3 остается один галлон воды.

Читайте также: