Песочные часы
От: Нэчер  
Дата: 13.10.08 14:14
Оценка: 26 (6)
Пусть имеется трое одинаковых песочных часов на 16 минут каждые.
Как точно(не на глаз)отмерить 24 минуты?
Re: Песочные часы
От: Cyberax Марс  
Дата: 13.10.08 14:29
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>Как точно(не на глаз)отмерить 24 минуты?
Запустить одни часы. Пока они идут, то отмерить половину песка во вторых часах (переворачиваю их набок). Потом использовать их для последних 8 минут.

Больше пока ничего не приходит в голову.
Sapienti sat!
Re: Песочные часы
От: dcb-BanDos Россия  
Дата: 13.10.08 15:03
Оценка: 6 (1) :)
Здравствуйте, Нэчер, Вы писали:

Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>Как точно(не на глаз)отмерить 24 минуты?

продать 3 по 16, купить одни на 24 .
ЗЫ: как на любых часах точно отмерить любое время, отличное от 16 не понял (
Ничто не ограничивает полет мысли программиста так, как компилятор.
Re: Песочные часы
От: HoseCo  
Дата: 13.10.08 15:12
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>Как точно(не на глаз)отмерить 24 минуты?

Потребуется много терпения.

1) Запускаем все трое часов.
2) на глазок определяем что половина песка высыпалась и останавливаем(кладем на бок) все трое часов.
3) звое часов запускаем в разные стороны
4) если они не одновременно подошли к концу то сбрасываем все трое часов и гото 1
5) в третьих часах у нас 8 минут куда не крути
6) дальше просто...
Re[2]: Песочные часы
От: Нэчер  
Дата: 13.10.08 16:03
Оценка:
Здравствуйте, HoseCo, Вы писали:

HC>Здравствуйте, Нэчер, Вы писали:


Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>>Как точно(не на глаз)отмерить 24 минуты?

HC>Потребуется много терпения.


HC>1) Запускаем все трое часов.

HC>2) на глазок определяем что половина песка высыпалась и останавливаем(кладем на бок) все трое часов.
HC>3) звое часов запускаем в разные стороны

ok. Пусть песок распределился на две части: 7+9
Одни часы опустеют через 7 минут, другие будут "работать" еще 2 минуты.
Как это поможет нам получить 8 минут в третьих?

HC>4) если они не одновременно подошли к концу то сбрасываем все трое часов и гото 1


Как, и все заново?
Это лоттерея какая-то.
Беда еще и в том, что в песочных часах песок в верхней и нижней колбах расположен по-разному. Грубо говоря: сверху у нас конус с ямкой, а снизу цилиндр с горкой, определить равны ли части песка проблематично.

HC>5) в третьих часах у нас 8 минут куда не крути

HC>6) дальше просто...
Re[3]: Песочные часы
От: HoseCo  
Дата: 13.10.08 16:26
Оценка:
Здравствуйте, Нэчер, Вы писали:

HC>>4) если они не одновременно подошли к концу то сбрасываем все трое часов и гото 1


Н>Как, и все заново?

Н>Это лоттерея какая-то.

Именно все заново. В этом недостаток моего алгоритма. Зато при наступлении счастливого случая, мы можем со стопроцентной уверенностью говорить, что в часах ровно 8 минут.

Для ускорения процесса можно на часах на каждом витке цикла 1-4 ставить рисочки, и например методом дихотомии максимально приблизиться к счастливому случаю и уж потом уповать на удачу или же довольствоваться достигнутой точностью, которую можно определить на шаге 4 по количеству песка, оставшегося в часах номер 1 или 2.
Re[4]: Песочные часы
От: HoseCo  
Дата: 13.10.08 16:28
Оценка:
Здравствуйте, HoseCo, Вы писали:

HC>Для ускорения процесса можно на часах на каждом витке цикла 1-4 ставить рисочки, и например методом дихотомии максимально приблизиться к счастливому случаю и уж потом уповать на удачу или же довольствоваться достигнутой точностью, которую можно определить на шаге 4 по количеству песка, оставшегося в часах номер 1 или 2.


Перечитал и ужаснулся, какое длинное и корявое предложение.
Re: а есть решение?
От: vit0s Австрия  
Дата: 14.10.08 08:18
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>Как точно(не на глаз)отмерить 24 минуты?

а вообще решение есть? Ты знаешь его?
Никому не верь — и никто не обманет!
Re[2]: а есть решение?
От: Нэчер  
Дата: 14.10.08 08:51
Оценка: -1
Здравствуйте, vit0s, Вы писали:

V>Здравствуйте, Нэчер, Вы писали:


Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>>Как точно(не на глаз)отмерить 24 минуты?

V>а вообще решение есть? Ты знаешь его?


Ясное дело есть. Я обязательно приведу ответ на след. неделе.
А пока -- мучайтесь
Re[3]: а есть решение?
От: dcb-BanDos Россия  
Дата: 14.10.08 09:00
Оценка:
Здравствуйте, Нэчер, Вы писали:


Н>Ясное дело есть. Я обязательно приведу ответ на след. неделе.

Н>А пока -- мучайтесь

о нет......так долго?!?!!?
я больше не могу )))
Ничто не ограничивает полет мысли программиста так, как компилятор.
Re: Песочные часы
От: vit0s Австрия  
Дата: 14.10.08 09:54
Оценка:
а можно разбирать часы? ну по весу там отделить необходимое количество песка
А если серьезно, то:
если поставить одни часы под углом? Это поможет? Может есть какой-то угол при наклоне на который — часы опустят вниз только половину песка? Я не знаю уже... Хотя в этом случае зачем тогда вообще еще двое часов...
С часами можно делать что-то кроме изменения их положения в пространстве? Хирургическое вмешательство разрешено?
Никому не верь — и никто не обманет!
Re: Песочные часы
От: vit0s Австрия  
Дата: 14.10.08 10:04
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>Как точно(не на глаз)отмерить 24 минуты?

Блин, я тебя умоляю, скажи ответ ))) Работа стоит, и не у меня одного ))

Что тут получается, не знаю в какую сторону думать уже....

Имеем кольцо остатков действительных чисел по модулю 16 и нужно найти элемент второго порядка...
При чем как видно у нас из возможных действий только сложение...
Если 16 это k, то мы можем иметь 1*k, 2*k, 3*k етс...

Мы не умеем тут делить, потому что "на глаз" не подходит, погрешности не уместны...

Я в ступоре в общем
Никому не верь — и никто не обманет!
Re[2]: Песочные часы
От: HoseCo  
Дата: 14.10.08 10:07
Оценка: +2
Здравствуйте, vit0s, Вы писали:

ненене. Дайте еще подумать. Да и на выходных будет чем заняться.
Re: Песочные часы
От: fsheet  
Дата: 14.10.08 10:27
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>Как точно(не на глаз)отмерить 24 минуты?

Чего-то нормального решения не вижу... Есть только такой вариант:
1) из первых часов высыпаем весь песок в урну (чтобы не мусорить
2) пересыпаем из вторых часов в первые половину песка (на глаз)
3) сравниваем кол-во песка в обоих часах и пересыпаем до тех пор, пока не уровняется
4) или пересыпаем из первых часов в третьи (если поместится) и запускаем их, или запускаем сначала третьи, а затем, мгновенно, первые...
Re[3]: Песочные часы
От: vit0s Австрия  
Дата: 14.10.08 10:28
Оценка:
Здравствуйте, HoseCo, Вы писали:

HC>Здравствуйте, vit0s, Вы писали:


HC>ненене. Дайте еще подумать. Да и на выходных будет чем заняться.


тогда вопрос к топикстартеру — решение механическое (знать когда и что перевернуть надо и куда посмотреть) или математическое (развивать мысль кольца остатков действительных чисел)?
Никому не верь — и никто не обманет!
Re[2]: Песочные часы
От: vit0s Австрия  
Дата: 14.10.08 10:30
Оценка:
Здравствуйте, fsheet, Вы писали:

F>Здравствуйте, Нэчер, Вы писали:


Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>>Как точно(не на глаз)отмерить 24 минуты?

F>Чего-то нормального решения не вижу... Есть только такой вариант:

F>1) из первых часов высыпаем весь песок в урну (чтобы не мусорить
F>2) пересыпаем из вторых часов в первые половину песка (на глаз)
F>3) сравниваем кол-во песка в обоих часах и пересыпаем до тех пор, пока не уровняется
F>4) или пересыпаем из первых часов в третьи (если поместится) и запускаем их, или запускаем сначала третьи, а затем, мгновенно, первые...

не думаю.... с таким подходом хватит и одних часов... просто оставить там половину (8 минут) и 2 раза потом быстро перевернуть их... Тогда и остальные двое не понадобяться... А тут я так думаю все 3 задействованы...
Никому не верь — и никто не обманет!
Re: Песочные часы
От: HoseCo  
Дата: 14.10.08 11:06
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.

Н>Как точно(не на глаз)отмерить 24 минуты?

Задача сводится к отмерении ровно половины часов.

Буду показывать на примере. Сам алгоритм может позже опишу.
Опишу обозначения.
Пронумеруем часы 1,2,3
В момент остановки часов буду показывать сколько времени в каждых из часов следующим образом:
5|10|15 – значит в часах номер 1- 5минут(10 если смотреть в другую сторону), 2- 10 минт, 3 — 15 минут

Будем делить примерно пополам постоянно увеличивая точность. Пример решения задачи

1)0|0|0        -запускаем 1,2,3
2)5|5|5        -в любой момент останавливаем
3)0|6|5        - 11-5=6
4)4|2|9        - 5+4=9
5)2|0|9        - 4-2=2
6)1,5|0,5|8,5    -9-0.5=8.5
7)1|0|8.5
8)0.5|0.5|8
9)0|0|8        - бинго
Re: Песочные часы
От: Goodkov Россия  
Дата: 14.10.08 11:26
Оценка: :)))
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.
Н>Как точно(не на глаз)отмерить 24 минуты?

Достаточно одних часов.
Условимся, что часы отмеряют 16 минут около поверхности земли.
Значит достаточно поднятся на высоту, на которой сила тяжести будет в 1.5 раза меньше и там мерять 24 минуты.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[2]: Песочные часы
От: Трурль  
Дата: 14.10.08 12:07
Оценка: :))
Здравствуйте, Goodkov, Вы писали:


G>Значит достаточно поднятся на высоту, на которой сила тяжести будет в 1.5 раза меньше и там мерять 24 минуты.


Чтобы высоко не подыматься, привязываем к часам веревочку и получаем замечательный маятник.
Re[2]: Песочные часы
От: HoseCo  
Дата: 14.10.08 12:11
Оценка:
Здравствуйте, HoseCo, Вы писали:

HC>Буду показывать на примере. Сам алгоритм может позже опишу.


обозначения
R – Часы идут
S – Часы стоят

ChangeOrientation(номер часов) меняет ход часов на обратный
WaitRand(номер часов N) ожидание случайного момента, наступайющего до того, как закончится песок в часах N
Wait(A, B) ожидание момента когда закончится песок в одних из часов
Empty(A) весь песок в часах A находится в одной из половинок
Switch(A, B) меняем часы местами


R|R|R
WaitRand(1)
ChangeOrientation(2)
R|R|S
Wait(1, 2)
if Empty(1)
{
    Switch(1, 2)
}
do
{
    if (Empty(1) && Empty(2))
        return Bingo()

    ChangeOrientation(2)
    R|R|R
    WaitRand(1)
    ChangeOrientation(2)
    R|R|S
    Wait(1, 2)
    if Empty(1)
    {
        Switch(1, 2)
        ChangeOrientation(3)
    }
}
while(true)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.