Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Запустить одни часы. Пока они идут, то отмерить половину песка во вторых часах (переворачиваю их набок). Потом использовать их для последних 8 минут.
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Потребуется много терпения.
1) Запускаем все трое часов.
2) на глазок определяем что половина песка высыпалась и останавливаем(кладем на бок) все трое часов.
3) звое часов запускаем в разные стороны
4) если они не одновременно подошли к концу то сбрасываем все трое часов и гото 1
5) в третьих часах у нас 8 минут куда не крути
6) дальше просто...
Здравствуйте, 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) дальше просто...
Здравствуйте, Нэчер, Вы писали:
HC>>4) если они не одновременно подошли к концу то сбрасываем все трое часов и гото 1
Н>Как, и все заново? Н>Это лоттерея какая-то.
Именно все заново. В этом недостаток моего алгоритма. Зато при наступлении счастливого случая, мы можем со стопроцентной уверенностью говорить, что в часах ровно 8 минут.
Для ускорения процесса можно на часах на каждом витке цикла 1-4 ставить рисочки, и например методом дихотомии максимально приблизиться к счастливому случаю и уж потом уповать на удачу или же довольствоваться достигнутой точностью, которую можно определить на шаге 4 по количеству песка, оставшегося в часах номер 1 или 2.
Здравствуйте, HoseCo, Вы писали:
HC>Для ускорения процесса можно на часах на каждом витке цикла 1-4 ставить рисочки, и например методом дихотомии максимально приблизиться к счастливому случаю и уж потом уповать на удачу или же довольствоваться достигнутой точностью, которую можно определить на шаге 4 по количеству песка, оставшегося в часах номер 1 или 2.
Перечитал и ужаснулся, какое длинное и корявое предложение.
Здравствуйте, vit0s, Вы писали:
V>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
V>а вообще решение есть? Ты знаешь его?
Ясное дело есть. Я обязательно приведу ответ на след. неделе.
А пока -- мучайтесь
а можно разбирать часы? ну по весу там отделить необходимое количество песка
А если серьезно, то:
если поставить одни часы под углом? Это поможет? Может есть какой-то угол при наклоне на который — часы опустят вниз только половину песка? Я не знаю уже... Хотя в этом случае зачем тогда вообще еще двое часов...
С часами можно делать что-то кроме изменения их положения в пространстве? Хирургическое вмешательство разрешено?
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Блин, я тебя умоляю, скажи ответ ))) Работа стоит, и не у меня одного ))
Что тут получается, не знаю в какую сторону думать уже....
Имеем кольцо остатков действительных чисел по модулю 16 и нужно найти элемент второго порядка...
При чем как видно у нас из возможных действий только сложение...
Если 16 это k, то мы можем иметь 1*k, 2*k, 3*k етс...
Мы не умеем тут делить, потому что "на глаз" не подходит, погрешности не уместны...
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Чего-то нормального решения не вижу... Есть только такой вариант:
1) из первых часов высыпаем весь песок в урну (чтобы не мусорить
2) пересыпаем из вторых часов в первые половину песка (на глаз)
3) сравниваем кол-во песка в обоих часах и пересыпаем до тех пор, пока не уровняется
4) или пересыпаем из первых часов в третьи (если поместится) и запускаем их, или запускаем сначала третьи, а затем, мгновенно, первые...
Здравствуйте, HoseCo, Вы писали:
HC>Здравствуйте, vit0s, Вы писали:
HC>ненене. Дайте еще подумать. Да и на выходных будет чем заняться.
тогда вопрос к топикстартеру — решение механическое (знать когда и что перевернуть надо и куда посмотреть) или математическое (развивать мысль кольца остатков действительных чисел)?
Здравствуйте, fsheet, Вы писали:
F>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
F>Чего-то нормального решения не вижу... Есть только такой вариант: F>1) из первых часов высыпаем весь песок в урну (чтобы не мусорить F>2) пересыпаем из вторых часов в первые половину песка (на глаз) F>3) сравниваем кол-во песка в обоих часах и пересыпаем до тех пор, пока не уровняется F>4) или пересыпаем из первых часов в третьи (если поместится) и запускаем их, или запускаем сначала третьи, а затем, мгновенно, первые...
не думаю.... с таким подходом хватит и одних часов... просто оставить там половину (8 минут) и 2 раза потом быстро перевернуть их... Тогда и остальные двое не понадобяться... А тут я так думаю все 3 задействованы...
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Задача сводится к отмерении ровно половины часов.
Буду показывать на примере. Сам алгоритм может позже опишу.
Опишу обозначения.
Пронумеруем часы 1,2,3
В момент остановки часов буду показывать сколько времени в каждых из часов следующим образом:
5|10|15 – значит в часах номер 1- 5минут(10 если смотреть в другую сторону), 2- 10 минт, 3 — 15 минут
Будем делить примерно пополам постоянно увеличивая точность. Пример решения задачи
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Достаточно одних часов.
Условимся, что часы отмеряют 16 минут около поверхности земли.
Значит достаточно поднятся на высоту, на которой сила тяжести будет в 1.5 раза меньше и там мерять 24 минуты.
Здравствуйте, 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)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
А>Поджечь с двух сторон?
Здравствуйте, vit0s, Вы писали:
V>что это вообще такое?
HC>>3)0|6|5 — 11-5=6
V>а тут что делается? можно подробнее словами?
на втором шаге в часах номер один распределение песка 5/11 во вторых часах аналогично. На третьем шаге вторые часы запускаем в том же направлении, в каком они работали, а первые в обратном. В итоге через 5 минут в первых часах 0/16, а во вторых 6/10.
У тебя ошибка в том, что когда ты остановил на первом шаге часы в "произвольный" момент времени, то получил, что прошло РОВНО 5 минут. Это и есть — "на глазок", что по условию запрещено.
Точного решения я не вижу, но понятен алгоритм, как сделать сколь угодно близко, с наперед заданной точностью.
Алгоритм основан на той идее, что если в некотором шаге в каких то часах песка на время X, то легко сделать 2*X, 3*X, .... Таким образом получаем
16 = k*X + Y, где k >= 1, 0 <= Y < X
Ясно, что можно отмерить Y и ( X — Y ). На следующем шаге алгоритма возьмем меньшее из них. Оно будет <= X/2
Таким образом алгоритм быстро сойдется. Если на каком то шаге получим, что Y = 0, то задача будет иметь точное решение, которое получается по вашему алгоритму.
Мне кажется, что если я правильно понял задачу, то есть позволенные операции с часами, то другого решения она не имеет
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Положить одни часы на бок. Вторые сверху, тоже на бок, поперек первых. Получится качель. Пересыпать песок в верхних часах до посинения, пока не уравновесятся: 8 минут. Третьи часы в это время можно задумчиво вертеть в руках
Здравствуйте, HoseCo, Вы писали:
HC>Здравствуйте, Нэчер, Вы писали:
Н>>............... HC>Будем делить примерно пополам постоянно увеличивая точность. Пример решения задачи
HC>
По-моему решения в поставленных условиях не существует.
Я даже для 100 часов не могу найти.
А для нечётного количества песчинок ещё сложнее.
.
Это я Вас как математик математика спрашиваю:
Что такое математика?
Один из законов Божьих или это сам Бог и есть? (ХХ век)
По-моему Математика — это Слово Божие. (22.03.05)
Re[3]: Даже 100 часов не помогает.
От:
Аноним
Дата:
14.10.08 16:58
Оценка:
Здравствуйте, VMin, Вы писали:
VM>Это просто прекрасно если точно знаешь как отмерить 5 или 4 часа. VM>Или 0.5.
не надо ничего точно отмерять. Все работает.
VM>Пусть: VM>5=n; VM>4=k;
| 0| 0| |
| n| n| n|
| 0| 16-2n| n|
| k| 16-k-2n| n+k|
| 16-2k-2n| 0| n+k| // либо 0| 16-2k-2n| n+k
n=k+n; //это я не понял что такое
часы 1 и 2 меняем местами.
| 0| 16-2n| n| // это окуда взялось?
goto p. 4).
Не скоро бинго.
Ох не скоро.
короче я не понял твоего опровержения
попробую еще раз объяснить алоритм на пальцах:
запускаем трое часов
останавливаем в совершенно произвольный момент все часы. Главное чтоб песок не закончился.
запускаем первые и вторые в разные стороны. Останавливаем когда в одних и\з часов закончится песок
в оставшихся часах дельта. если к третьим часам прибавить дельту деленную на 2 получим 8. НО надо учитывать знак дельты. Она может быть и с отрицательным знаком. Знак леко определяется по тому в каких часах раньше зекончился песок(если надо могу подробнее описать этот механизм)
дальше в зависимости от знака дельты третьи часы будем запускать в нужную сторону. Например если в третьих часах оказалось 9.4358762342398 минуты, то дельта равна -2.8717524684796 и соответственно третьи часы надо запускать на убывание.
запускаем все часы: те что пустые понятно в какую сторону, те что с дельтой в сторону уменьшения дельты, третьи в сторону, определнную знаком дельты
в любой момент пока не закончилась дельта останавливаем все часы. В третьих часах в этот момент оказывается песка ровно 8 (+,-) дельта/2 (+,-)k*дельта . Причем k больше нуля и меньше единицы. При этом знаки +- расставлены так, что приближают сумму к восьмерке. Например во второй раз мы остановили часы в момент 0.567. Тогда в первых(пустых) часах у нас 0.567, во вторых 2.8717524684796 — 0.567 = 2.3047524684796 а в третьих 9.4358762342398-0.567 = 8.8688762342398(заметьте, мы приблизились к цели. При том что наш произвольный момент был выбран далеко не оптимально)
далее ситаем новую дельту = 2.3047524684796 — 0.567 = 1.7377524684796
далее определяем знак(могу рассказать как). он у нас минус.
далее по новой: пустые часы — угу, дельту на уменьшение, третьи в сторону знака дельты, т.е. на уменьшение
погнали. Рандомом останавливаем. Главное напомню чтобы дельта не истекла.
пускай нам повезло и мы поняли в чем суть и остановили примерно посередине дельты. Например вчерез 0.8
в пустых часах 0.8, дельта уменьшилась стала 1.7377524684796 — 0.8 = 0.9377524684796, в тертьих 8.8688762342398 — 0.8 = 8.0688762342398
запускаем вновь в разные стороны 1,2 часы пока в одних из них не закончится песок. стоп. осталось 0.9377524684796 — 0.8 = 0.1377524684796
заметьте, что дельта опять ровно в 2 раза превышает ошибку в третьих часах.
дальше все также, но процесс будет постоянно сходиться к 8мерке. Причем для этого нужно всего трое часов.
VM>А для нечётного количества песчинок ещё сложнее.
вот это действительно большая проблема.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, VMin, Вы писали:
VM>>Это просто прекрасно если точно знаешь как отмерить 5 или 4 часа. VM>>Или 0.5.
А>не надо ничего точно отмерять. Все работает.
VM>>Пусть: VM>>5=n; VM>>4=k;
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Задача сводится к поиску способа отмерить 8 минут на одних из часов (запускаем их и по окончании запускаем любые часы на 16 минут)
Вводим две операции.
1. Проверка (на восьмиминутность, прости ххосподи)
Допустим часы C0 и C1 одинаково заполнены. Тогда с одной стороны обоих часов 8-x минут, с противоположной 8+x минут. Переворачиваем вверх разными сторонами. Если часы завершились одновременно — JackPot, есть 8 минут! Если завершились не одновременно, то в часах увы, не по 8 минут (для этого случая легко понять, было в часах изначально больше 8 минут или меньше)
Важный момент. Если в начале сравнения запустить C2 и остановить, когда закончатся первые часы, то в них будет 8-x минут.
2. Выравнивание. Задача. Есть часы C2, требуется отсчитать для С0 и C1 такое же количество минут.
Решение очевидно. Обнуляем С0 и С1. Переворачиваем C0, C1, C2 одновременно. Как только C2 оказываются пустыми, перевернутые C0 и C1 содержат столько же песка, сколько и C2 в начальный момент времени.
Решение.
1. Пускаем C0 и C1 (на небольшое время)
2. Проверяем C0 и C1 (и выставляем при этом C2). Если часы содержат 8 минут, то задача решена. Допустим, часы содержат меньше 8 минут. *
3. Выравниваем C0 и C1 (по выставленным C2)
3. Переходим к пункту 1.
* если больше 8 минут, то это ничего не меняет, просто перевернем часы
Точность решения зависит от того, насколько маленьким сможем сделать ожидание на первом этапе и ловкости рук
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Дык чито за проблеммы-то?
Двое часов берём себе на сувениры, а третьи разгоняем до скорости, чтобы "гамма" равнялась полтора. Ну и отмеряем...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
По сути, задача сводится к тому, как нам отмерить 8 минут.
Для начала сделаем допущение о точности:
1. мы умеем отлавливать момент, когда в часах падает последняя песчинка;
2. мы умеем моментально переворачивать часы, когда в других или тех же часах упадет последняя песчинка;
3. во всех трех часах имеется одинаковое число песчинок;
4. число песчинок в часах четное (иначе нельзя будет получить ровно 8 и 24 минут).
Математические выкладки (практика после).
Допустим мы умеем отсчитывать время x меньшее 16 минут.
x < 16
Нам потребуется знать точно сколько времени содержится в этих x. Для этого отмерим целое количество интервалов x, таких, чтобы они укладывались в целое число интервалов по 16 минут, то есть,
a*x = 16*b, где a и b - целые положительные числа.
Это уравнение имеет решение относительно a и b в целых числах, так как x — рационально. А x рационально, так как оно означает время, отсчитанное конечным числом песчинок.
То есть, мы можем отложить эти интервалы времени, чтобы они совпали до последней песчинки (откладывая на одних часах x, а на других 16, через a интервалов на первых часах и b интервалов на вторых, на обоих часах упадет последняя песчинка).
Тогда,
x = 16*b/a
Нам необходимо отложить 8 минут, используя 16 минут и x минут. Для этого снова отмерим целое количество интервалов x, таких, чтобы они укладывались в целое число интервалов 16 минут без восьми минут, то есть,
Необходимо решить это уравнение в целых числах относительно m и n. Тогда, откладывая на одних часах m интервалов по x минут, одновременно откладывая на других по 16 минут, через время m*x (когда упадет последняя песчинка на часах, откладывающих x минут), часы, откладывающие 16 минут отсыпят ровно 8 минут. Что и требовалось.
Можно заметить, что последнее уравнение имеет решение в целых числах m и n только тогда, когда a — четное. Доказывать, что a четное — лень.
Как откладывать интервалы по x минут.
Перевернем первые часы. Через некоторое время (это и будет время x) меньшее 16 перевернем их обратно и одновременно перевернем вторые часы. Переворачивая первые и вторые часы таким образом можно отсчитывать интервалы по x минут.
Третьи часы нам пригодятся для отсчитывания интервалов по 16 минут.
Практический пример.
Допустим в часах имеется 16000 песчинок. Мы перевернули часы и через x минут перевернули их обратно (не забыв перевернуть вторые). Допустим, за время x отсыпалось 5600 песчинок, то есть,
x = 16 * 5600 / 16000 = 16 * 7 / 20.
То есть, через 7 переворотов третьих часов, отсчитывающих 16 минут и 20 переворотов первых и вторых часов, отсчитывающих x минут, в часах одновременно упадет последняя песчинка.
Решим уравнение:
2*m*b = (2*n - 1)*a, a = 20, b = 7
2*m*7 = (2*n - 1)*20
7*m = 10*(2*n - 1)
m = 10
n = 4
Таким образом, будем откладывать 10 раз по x минут (одновременно переворачивая третьи часы, откладывающие 16 минут). После того, как в часах, откладывающих x минут десятый раз упадет последняя песчинка, мы успеем перевернуть часы, откладывающие 16 минут ровно 3 с половиной раза. Эта половина нам как раз и нужна.
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Так как не понятен точный набор допустимых действий, то предлагаю ещё один ход, завязанный на конструкцию часов.
Обычно песчанные часы устроены как две колбы, соединённые токой дырочкой. При этом каждая из колб устроена так, что часть обращённая к дырочке имеет коническую колбу, часть обращённая от дырочки имеет полусферическую форму, и эти части соеденены цилиндрической трубкой.
Если часы имеют такую конструкцию, и если предположить, что скорость истечения песка постоянна, то можно сделать так
1) Запустить двое часов одновременно. Дождаться момента, когда песок опуститься почти до низа целиндрической части верхней колбы.
2) Вторые часы перевернуть и дождаться, пока в каких-то из часов песок истечёт. Тогда перевернуть обои часы ещё раз
3) В результате мы получим двое часов "выставленных" на время 16 — х и х минут. При этом может так получиться, что слой песка, который отличает эти состояния полностью помещается в цилиндрическую часть верхней колбы. Тогда отмеряем середину этой дельты высот и ждём пока песок досыплеться до отметки. В этот момент часы выставленны на 8 минут.
Дальше -- дело техники...
Ещё, кстати, не ясно, что обозначает слово "отмерить"
Нужно сделать какие-топ редвариетельные манипуляции, а потом, воспользовавшись подготовленными часами отмерить 24 минуты от какого-то заданного наперёд времени. Или надо делать какие-то мнипуляции, а потом указать от какого момента до какого прошло 24 минуты?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, nikov, Вы писали:
N>Ну и что ты отмеришь улетевшими часами? В таком случае нужны часы в каждой точке пространства, да еще синхронизированные. А у тебя всего 3 штуки.
Да ладно, сидю, смотрю, учитываю скорость распространения света...
Это, кстати, тоже тема.
Удаляем помошника с часами на 4 св. минуты. Машем ему, он запускает часы, когда мы увидили, что он запустил часы -- прошло 8 минут
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Тут у народа фантазия все бурнее и бурнее. Один даже уже подсчитывает число песчинок в часах. Если он такой мастер, то ему и одних часов хватит, так как достаточно отмерить половину песчинок
У меня тоже есть один вариант. Обычно у песочных часов с одной из сторон есть крышечка, которую можно снять и высыпать песок из часов наружу, или досыпать туда песка. Возьмем и снимем крышечки у всех трех часов. После этого высыпем весь песок из первых часов во вторые и третьи часы таким образом, чтобы уровень песка в них был одинаковым. Таким образом мы раздели песок, который был в первых часах пополам между вторыми и третьими часами. Теперь закрываем крышечки. Упс!!! Во вторых и третьих часах находится столько песка, чтобы отмерить 24 минуты
Здравствуйте, baily, Вы писали:
B>Тут у народа фантазия все бурнее и бурнее. Один даже уже подсчитывает число песчинок в часах. Если он такой мастер, то ему и одних часов хватит, так как достаточно отмерить половину песчинок
Ты или не внимательно прочел мое сообщение, либо не понял суть алгоритма. Число песчинок в моем алгоритме не считается. Я это привел лишь в примере, чтобы было более понятно сам алгоритм.
Суть алгоритма состоит в том, чтобы за конечное число шагов получить 8 минут в одних их часов. Количество шагов в итоге зависит от того, сколько песчинок находится в часах, так как это число влияет на решение уравнений в целых числах. Сами уравнения я полчил не используя этого значения. И врешении уравнений оно также не фигурирует. Но все равно влияет на количество шагов в алгоритме.
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Начальное положение —
Все часы "взведены" — в нижней половинке — 0 песка, в верхней — 16 минут песка.
1) Снимаем верхнюю крышку с часов номер №3, высыпаем из них весь песок
2) Снимаем нижнюю крышку с часов №2. и ставим их на верхнюю крышку часов №3.
— Соединяем взведенные часы №2 и пустые часы №3.
Так что любая пещинка падающая из верхней части часов №2 попадет сначала в нижнюю часть часов номер№2, потом из нее прямиком в верхнюю часть часов №3 (которая изначально пустая) и соотв-но после этого в нижнюю часть часов №3.
Конструкция из часов №2 и часов №3 начинает тикать.
3) Одновременно с (2), начинаем отсчет времени с помощью немодифицированных часов №1.
4) Когда 16 минут пройдет на часах №1, в нашей конструкции из часов 2 и 3, за счет того, что каждая пещинка там проходит разделит. трубочку два раза, ровно половина песка будет на дне часов №3.
5) Аккуратно собираем часы №3 назад. Выкидываем весь песок из верхней части часов (хотя это не обязательно). В нижней части часов — песка ровно на 8 минут. Теперь у нас есть точно 8 минут песка.
6) элементарно — с помощью первых часов отмечаем 16 минут. С помощью собранных снова 3-их часов — отмечаем оставшиеся 8 минут.
Здравствуйте, baily, Вы писали:
B>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
B>Тут у народа фантазия все бурнее и бурнее. Один даже уже подсчитывает число песчинок в часах. Если он такой мастер, то ему и одних часов хватит, так как достаточно отмерить половину песчинок
B>У меня тоже есть один вариант. Обычно у песочных часов с одной из сторон есть крышечка, которую можно снять и высыпать песок из часов наружу, или досыпать туда песка. Возьмем и снимем крышечки у всех трех часов. После этого высыпем весь песок из первых часов во вторые и третьи часы таким образом, чтобы уровень песка в них был одинаковым. Таким образом мы раздели песок, который был в первых часах пополам между вторыми и третьими часами. Теперь закрываем крышечки. Упс!!! Во вторых и третьих часах находится столько песка, чтобы отмерить 24 минуты
По моему, ваш вариант принципиально мало отличается от "подсчета песчинок". Вы замеряете уровень песка на глазок.
Здравствуйте, Spiceman, Вы писали:
S>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
S>По сути, задача сводится к тому, как нам отмерить 8 минут.
Чтобы было более понятно, продемонстрирую свой алгоритм графически:
В этом алгоритме нет никакого вмешательства в конструкцию часов, никакого подсчета песчинок, никаких вероятностей.
Задача решена точно математически. На шаге 1 проводится эксперимент, в котором определяются числа a и b (см. описание выше). В результате эксперимента установлено a = 8, b = 5. На шаге 2 проводится расчет чисел m и n. Результатом является m = 4, n = 3. На шаге 3 проводится отсчет восьми минут в часах 3.
S S>Допустим мы умеем отсчитывать время x меньшее 16 минут. S>
S>x < 16
S>
S>Нам потребуется знать точно сколько времени содержится в этих x. Для этого отмерим целое количество интервалов x, таких, чтобы они укладывались в целое число интервалов по 16 минут, то есть,
Каким образом мы умеем его отсчитывать?
Один раз мы можем его отмерить — перевернув часы в произвольный момент. А как добиться повторяемости?
Здравствуйте, Garrett, Вы писали:
G>Здравствуйте, Spiceman, Вы писали:
G>S S>>Допустим мы умеем отсчитывать время x меньшее 16 минут. S>>
S>>x < 16
S>>
S>>Нам потребуется знать точно сколько времени содержится в этих x. Для этого отмерим целое количество интервалов x, таких, чтобы они укладывались в целое число интервалов по 16 минут, то есть,
G>Каким образом мы умеем его отсчитывать? G>Один раз мы можем его отмерить — перевернув часы в произвольный момент. А как добиться повторяемости?
Как добиться повторяемости я так же написал:
Как откладывать интервалы по x минут.
Перевернем первые часы. Через некоторое время (это и будет время x) меньшее 16 перевернем их обратно и одновременно перевернем вторые часы. Переворачивая первые и вторые часы таким образом можно отсчитывать интервалы по x минут.
Третьи часы нам пригодятся для отсчитывания интервалов по 16 минут.
То есть, чтобы откладывать произвольный отрезок x необходимо использовать двое часов.
Здравствуйте, tantrum, Вы писали:
T>Здравствуйте, baily, Вы писали:
B>>Здравствуйте, Нэчер, Вы писали:
T>По моему, ваш вариант принципиально мало отличается от "подсчета песчинок". Вы замеряете уровень песка на глазок.
Нет. Там все корректно. Проверка того, что уровни совпадают — корректная операция. Во всех других решениях это использовали. В математическом понимании она дает абсолютную точность. На практике, понятно, что люди делали бы на глазок и получили бы вполне нормальную точность. Под фразой "на глазок" как раз и подразумевается, что не производится сравнения с уровнем песка в других часах.
Еще раз! Если в часах разрешено пересыпать песок из одних часов в другие ( а в реальных часах так и есть), то мое решение подходит.
Здравствуйте, Spiceman, Вы писали:
S>Здравствуйте, baily, Вы писали:
S>Ты или не внимательно прочел мое сообщение, либо не понял суть алгоритма. Число песчинок в моем алгоритме не считается. Я это привел лишь в примере, чтобы было более понятно сам алгоритм. S>Суть алгоритма состоит в том, чтобы за конечное число шагов получить 8 минут в одних их часов. Количество шагов в итоге зависит от того, сколько песчинок находится в часах, так как это число влияет на решение уравнений в целых числах. Сами уравнения я полчил не используя этого значения. И врешении уравнений оно также не фигурирует. Но все равно влияет на количество шагов в алгоритме.
Подобное решение уже приводилось. Был приведен алгоритм, который быстро делил песок в часах пополам с любой, наперед заданной точностью. Вы просто указали, что так как мы на практике имеем дело с песком, то там конечное число песчинок, и в результате алгоритм не будет бесконечным.
S>И не надо умничать.
Ну не относитесь слишком серъезно к шуточной задаче.
Здравствуйте, tantrum, Вы писали:
T>Здравствуйте, Нэчер, Вы писали: T>4) Когда 16 минут пройдет на часах №1, в нашей конструкции из часов 2 и 3, за счет того, что каждая пещинка там проходит разделит. трубочку два раза, ровно половина песка будет на дне часов №3.
Неправильно. На дне часов №3 будет весь песок
Раз уж вы воспользовались идеей о снимании крышечек, то решение есть здесь
Здравствуйте, baily, Вы писали:
B>Нет. Там все корректно. Проверка того, что уровни совпадают — корректная операция. Во всех других решениях это использовали.
Не-не-не.
В моем решение сравниваются не уровни, а фиксируется факт, что в обоих часах упала последняя песчинка. Это разные вещи и последняя проверяется гораздо проще.
Кстати, с помощью моего решения можно отсчитать не только 24 минуты, но и любое произвольное число минут.
Например, требуется отсчитать 26 минут. Тогда нам потребуется в одних из часов получить 10 минут (или 6 минут). Для этого достаточно решить уравнение
16*m*b = (16*n — q)*a
в целых числах m и n, где a и b получены экспериментально, а q = 10 или 6.
То есть, мы можем отмерить произвольное число минут q < 16 и использовать их для отсчета произвольного интервала времени.
Здравствуйте, baily, Вы писали:
B>Ну не относитесь слишком серъезно к шуточной задаче.
Согласен, что в этом топике есть и другие шуточные решения.
А что Вы имеете ввиду под "шуточной задачей"? Задача имеет вполне определенное точное решение, которое я привел.
А отношусь я к подобным задачам серьезно, так как это хорошая разминка для мозгов и решение этой задачи может пригодиться при решении других задач.
Вы ведь не относились к задачам в институте или школе как к шуточным. Эта задача ничем не хуже. Спасибо автору.
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Сабж.
Отдельно отмечу, что разбирать/поджигать =)/считать песчинки -- не нужно.
Допустимые действия -- переворачивать и класть набок.
И еще одно. Решение задачи может быть получено двумя путями:
1. получить 8 минут в одной из склянок и только потом замерить 24 минуты
2. сразу замерить 24 минуты из состояния 16/0 16/0 16/0
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Допустим, что нам необходимо найти метку на нижней колбе, такую, что время наполнения часов до этой метки равно 8ми минутам.
Для этого сделаем следующее. Начнем отмерять время на часах. Где-нибудь посередине (на глаз) процесса пересыпки песка, начинаем измерять время вторыми часами, а на первых засекаем уровень пересыпанного песка и переворачиваем первые часы. Когда первые часы пересыпятся, смотрим на уровень вторых часов. Если он ниже отмеченного на первых, значит первые часы были перевернуты позже 8ми минут. Таким образом, используя двоичный поиск, можно отмерить интервал с точностью до 2^(число измерений).
Здравствуйте, NotImplemented, Вы писали:
NI>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
NI>Допустим, что нам необходимо найти метку на нижней колбе, такую, что время наполнения часов до этой метки равно 8ми минутам.
По условию нечем ставить метки! Нет ни фломастера, ни губной помады )))
Re: Песочные часы
От:
Аноним
Дата:
15.10.08 16:23
Оценка:
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
16*3 = 48 = 24*2
Т.е. можно отмерить 24 минуты за один присест если в каждый момент времени двое часов будут "идти" (а одни соответственно "стоять"). В "обратную сторону" часы пускать не придется.
Тут я совсем красивого подхода придумать не могу, но можно сделать так (нужна ловкость рук ):
1. 0|0|0 — "пускаем" первые и вторые часы на некоторое время (для максимальной эффективности желательно на половину оставшегося, но можно и меньще, но не больше)
2. Через некоторое время "останавливаем" часы (кладем набок) любые из двух "идущих" засекая (отмечая пальцем) их уровень одновременно пуская "стоящие": (X|X|0)
3. Ждем пока "остающие" догонят "стоящие" (X|2*X|X), останавливаем "самые продвинутые" (2*X), отмечая их уровень и пускаем стоящие
4. Ждем пока отстающие синхронно догонят "лидера": (2*X|2*X|2*X)
Если "квант переключения контекста" выбрать достаточно маленьким, в таком стиле можно дождаться решения (N*X|N*X|N*X), но для эффективности (чтобы руки переворачивать не устали) желательно чтобы X был переменным и -> (t-оставшееся / 2) но не превышал бы его.
Пример (не особо эффективный):
0|0|0
3|3|0 <- 3 минуты ждали
3|6|3
6|6|6
10|10|6 <- а тут получилось X = 4 минуты
10|14|10
14|14|14
15|15|14
15|16|15 <- угадали с одной минутой для краткости примера
16|16|16
Уверен, что тут есть более простой и красивый путь держать 2-е часов "идущими"..
Здравствуйте, baily, Вы писали:
B>Здравствуйте, tantrum, Вы писали:
T>>Здравствуйте, Нэчер, Вы писали: T>>4) Когда 16 минут пройдет на часах №1, в нашей конструкции из часов 2 и 3, за счет того, что каждая пещинка там проходит разделит. трубочку два раза, ровно половина песка будет на дне часов №3.
B>Неправильно. На дне часов №3 будет весь песок
Не соглашусь с вами . Можете доказать?
Если принять то, что вы правы, за факт, то получается, что одной пещинке, для того чтобы пройти 2 песочных часов требуется ровно столько же времени сколько ей требуется чтобы пройти 1 песочные часы.
немножко несогласуется со здравым смыслом и элемент. физикой.
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
В целом следует, IMHO, заметить, что никто не обещал, что песок сыплется равномерно. Что если насыпать песка в два раа больше, то будет в два раза дольше и т. п.
В частности, IMHO, нельзя утверждать, что если поставить часы, и подождать 1 минуту, а потом их перевернуть, то весь песок вернётся обратно тоже за минуту. IMHO естественне ожидать того, что песок, на который сверху давит доп. слой песка, высыпается быстрее.
То есть первая половина песка высыпается за меньшее время, чем вторая...
Правда не совсем понятно, какие именно предположения о часах принимали авторы задачи.
Но если только такие, то это обозначает, что часы можно только останавливать и запускать дальше.
То есть всё что мы можем -- это поставить в ряд 3 часов и дальше какие-то из них запускать, а какие-то оставнавливать.
Это, IMHO, сильно ограничивает круг поиска решений...
Скажем кроме как запустить пару часов, а потом сидеть и смотреть на это дело и время от времени они из часов останавливать, одновременно запуская дургие. При этом нужно стремиться к тому, чтобы остановленны были всё время те часы, в которых меньше всего песка осталось...
В пределе мы получим, что во всех трёх часах останется ровно 0 песка оновременно, то есть мы отмерим 24 минуты
Если мы можем точно сравнивать уровень песка в часах, то можно применить такой ещё труюк:
Запустить часы 1 и 2. Подождать примерно 1 минуту. Потом часы номер 1 остановить, одновременно запустив часы 3 и подождать пока в часах номер 3 не останется столько же песка, сколько было в 1. В результате мы получим, что в часах 1 и 3 осталось на то самое время больше песка, на сколько мы ждали вначале с 1 и 2. Если верно предположение, что с уменьешением количства песка в верхней колбе скоростьего его истечения не возрастает, что можно этот алгоритм модифицировать до такого:
1) (Inv: количество песка во всех тёрх часах одинаково) Запускаем 1 и 2. Ждём пока пересыплется половина песка.
2) 2 отсанавливаем, запускаем 3.
3) Ждём пока в 3 не окажется столько же песка, сколько в 1.
4) Останавливаем 2, запускаем 1. (По предположению о замедлении истечения песка в 2 песок ещё будет)
5) Ждём пока количество песка во всех трёх не сравняентся.
Если песок её есть -- переходим к п. 1
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Нэчер, Вы писали:
Н>Здравствуйте, Нэчер, Вы писали:
Н>>...........................................
Н>По просьбе трудящихся, ответ дам в пятницу.
Задача не имеет решения.
Проверь своё решение ещё раз прежде чем позориться.
.
Это я Вас как математик математика спрашиваю:
Что такое математика?
Один из законов Божьих или это сам Бог и есть? (ХХ век)
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Как известно, высота с которой должно упасть тело, чтобы провести в полёте время t, вычисляется по формуле: h=gt^2/2.
Т.к., по условию, мы имеем только часы (и не имеем измерительных приборов), нам нужно будет определить эталон длинны,
для этого сбросим одни из часов с такой высоты, чтобы их полёт продлился 24 минуты. Эту высоты мы сможем определить
эмпирически, например, способом половинного деления. Теперь мы знаем какая длинна равна g*24^2/2 = 2880 метров.
Нам нужно отмерить 16 минут, значит h = g*16^2/2 = 1280 метров. -- Если сбросить часы сэтой высоты, они будут лететь
ровно 16 минут.
Как видите, вполне реально обойтись всего двумя (но очень прочными) песочными часами.
* Предвидя возражения на счёт такого использования песочных часов напомню, что принцип их действия основан на законе
всемирного тяготения.
Здравствуйте, WinterMute, Вы писали:
WM>Здравствуйте, Нэчер, Вы писали:
WM>Как видите, вполне реально обойтись всего двумя (но очень прочными) песочными часами.
WM>* Предвидя возражения на счёт такого использования песочных часов напомню, что принцип их действия основан на законе WM>всемирного тяготения.
На самом деле будет плохая точность, так как вы не учитываете сопротивление воздуха. Кроме того, вы ошиблись в своих расчетах, так как там надо было подставлять время в секундах, а не минутах. То есть для того, чтобы в вакууме часы летели 24 минуты, нужна высота не 2880 метров, а 10368 километров. На таких высотах уже нельзя пренебрегать и изменением g. Однако вашу идею можно использовать и без сбрасывания с очень больших высот. В самом деле, нам для решения задачи достаточно отмерить в часах интервал, который кратно уложится в 8 минут. Например, — одна секунда. То есть бросаем одни часы с 5-ти метров, а другими замеряем время падения. Таким образом секунда замерена. К сожалению, в условии задачи не сказано, что у нас имеется линейка, чтобы суметь точно отмерить 5 метров
Здравствуйте, baily, Вы писали:
B>Тут у народа фантазия все бурнее и бурнее. Один даже уже подсчитывает число песчинок в часах. Если он такой мастер, то ему и одних часов хватит, так как достаточно отмерить половину песчинок
Половину песка можно и не отмерить, если, например, песчинок всего 7 (мало + нечётное кол-во), или они все разного размера...
B>У меня тоже есть один вариант.
Твой вариант не сильно отличается от моего
, и он связан, опять-таки, с попыткой поделить песок поровну...
Так что по моему мнению, точного варианта не существует, тем более что в реальных часах, как мне кажется, размер дырочек может быть разным, а нивелируется эта разница как раз насыпанием различного количества песка при юстировке...
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
трое часов
нумеруем их 1, 2 и 3
запускаем одновременно 1 и 2
смотрим на часы 2 и как увидим на глаз что примерно прошло 8 минут ( 8 минут и дельта, пускай мы пересыпали песка )
сразу запускаем часы 3. и кладём на бок часы 2.
Как на часах 1 песок закончиться, кладём на бок часы 3.
Теперь на часах 2 и 3 разное количество песка на дельту. Будем вычислять её.
Запускаем полные часы 1, и поднимаеаем часы 2 и 3, так чтобы у них изначально в разных секциях было разное количество песка изначально. ( часы два заряжены меньше чем на 8 минут а часы 3 больше чем на 8 минут на дельту )
Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность.
Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
Здравствуйте, NYC_boy, Вы писали:
NYC>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
NYC>трое часов NYC>нумеруем их 1, 2 и 3
NYC>запускаем одновременно 1 и 2 NYC>смотрим на часы 2 и как увидим на глаз что примерно прошло 8 минут ( 8 минут и дельта, пускай мы пересыпали песка ) NYC>сразу запускаем часы 3. и кладём на бок часы 2. NYC>Как на часах 1 песок закончиться, кладём на бок часы 3. NYC>Теперь на часах 2 и 3 разное количество песка на дельту. Будем вычислять её. NYC>Запускаем полные часы 1, и поднимаеаем часы 2 и 3, так чтобы у них изначально в разных секциях было разное количество песка изначально. ( часы два заряжены меньше чем на 8 минут а часы 3 больше чем на 8 минут на дельту ) NYC>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность. NYC>Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
Заминочка вышла. В часах один будет количество песка больше, чем на 8 минут на ту самую дельту, так как прошло время 8-дельта.
Здравствуйте, NYC_boy, Вы писали:
NYC>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность. NYC>Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
И кроме того, в часах 2 будет не дельта, а две дельты, так как
(8+дельта) — (8-дельта) = 2*дельта
Здравствуйте, Spiceman, Вы писали:
S>Здравствуйте, NYC_boy, Вы писали:
NYC>>Здравствуйте, Нэчер, Вы писали:
Н>>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>>Как точно(не на глаз)отмерить 24 минуты?
NYC>>трое часов NYC>>нумеруем их 1, 2 и 3
NYC>>запускаем одновременно 1 и 2 NYC>>смотрим на часы 2 и как увидим на глаз что примерно прошло 8 минут ( 8 минут и дельта, пускай мы пересыпали песка ) NYC>>сразу запускаем часы 3. и кладём на бок часы 2. NYC>>Как на часах 1 песок закончиться, кладём на бок часы 3. NYC>>Теперь на часах 2 и 3 разное количество песка на дельту. Будем вычислять её. NYC>>Запускаем полные часы 1, и поднимаеаем часы 2 и 3, так чтобы у них изначально в разных секциях было разное количество песка изначально. ( часы два заряжены меньше чем на 8 минут а часы 3 больше чем на 8 минут на дельту ) NYC>>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность. NYC>>Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
S>Заминочка вышла. В часах один будет количество песка больше, чем на 8 минут на ту самую дельту, так как прошло время 8-дельта.
В данной стадии часы 1 в начальном сосотояниии разряжены ( заряжены на 16 минут ) и из них уйдёи песка как раз 8 минут минус дельта, которая останеться в часах 2
Здравствуйте, VMin, Вы писали:
VM>Здравствуйте, Нэчер, Вы писали:
Н>>Здравствуйте, Нэчер, Вы писали:
Н>>>...........................................
Н>>По просьбе трудящихся, ответ дам в пятницу.
VM>Задача не имеет решения. VM>Проверь своё решение ещё раз прежде чем позориться. VM>.
IMHO, у данной задачи имеется решение.
Но!
Следует различать теорию и практическое применение алгоритма.
В теории точность может быть абсолютной, а на практике погрешность может достигать нескольких секунд.
Вы же понимаете, что песочные часы не могут мерять время так же точно как атомные . Переворачивание набок и обратно + время реакции человека ведущего измерение, все это неизбежно вносит свою погрешность... Но и с практической точки зрения подход подходу рознь. Пересчитывать писчинки или разгонять часы до скоростей сопостовимых со скоростью света -- это явная утопия. Просто отмерять на глаз, тоже не самая замечательная идея, ибо нет способа минимизировать погршность глазомера, а он у всех очень разный.
Здравствуйте, tantrum, Вы писали:
T>Здравствуйте, baily, Вы писали:
B>>Здравствуйте, tantrum, Вы писали:
T>>>Здравствуйте, Нэчер, Вы писали: T>>>4) Когда 16 минут пройдет на часах №1, в нашей конструкции из часов 2 и 3, за счет того, что каждая пещинка там проходит разделит. трубочку два раза, ровно половина песка будет на дне часов №3.
B>>Неправильно. На дне часов №3 будет весь песок T>Не соглашусь с вами . Можете доказать?
На практике, конечно, пройдет чуть больше 16 минут, но ненамного. Время падения отдельной песчинки — да, увеличится примерно в два раза. Однако это время пренебрежимо мало, по сравнению со временем, которое требуется на протекание всего песка через дырку. В нашей задаче, да и на практике, количество песка, протекающего через дырку в единицу времени, постоянна. Представьте себе, что в вашей конструкции, вы не высыпали песок из часов №3, а оставили его в верхней половине, сразу перед тем, как поставили сверху на них часы №2 с открытой крышкой. Подумайте над тем, как будет вести себя уровень песка в верхней части часов №3. Он не будет изменяться до тех пор, пока из часов №2 не высыпется весь песок
Здравствуйте, Spiceman, Вы писали:
S>Здравствуйте, NYC_boy, Вы писали:
NYC>>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность. NYC>>Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
S>И кроме того, в часах 2 будет не дельта, а две дельты, так как S>(8+дельта) — (8-дельта) = 2*дельта
из часов 1 вытечет 8 — дельта что равно количеству песка в часах 3
в часах 2 как рз эта дельта и останется
яч не вычитаю из часов 3 часы 2, что приведёт к двойной дельте
Давай пройдем твой алгоритм по шагам еще раз.
NYC>запускаем одновременно 1 и 2
Время 0.
Во всех часах остаток песка 16.
NYC>смотрим на часы 2 и как увидим на глаз что примерно прошло 8 минут ( 8 минут и дельта, пускай мы пересыпали песка ) NYC>сразу запускаем часы 3. и кладём на бок часы 2.
Прошло 8+d.
Время 8+d.
В часах 1 остаток 8-d, в часах 2 остаток 8-d, в часах 3 остаток 16.
NYC>Как на часах 1 песок закончиться, кладём на бок часы 3. NYC>Теперь на часах 2 и 3 разное количество песка на дельту. Будем вычислять её. NYC>Запускаем полные часы 1, и поднимаеаем часы 2 и 3, так чтобы у них изначально в разных секциях было разное количество песка изначально. ( часы два заряжены меньше чем на 8 минут а часы 3 больше чем на 8 минут на дельту )
Прошло 8-d.
Время 16.
В часах 1 остаток 16, в часах 2 остаток 8-d, в часах 3 остаток 8+d.
NYC>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность.
Тут ты зачем-то внес путаницу и переименовал часы 2 в часы 3, а часы 3 в часы 2. Я буду считать по-старому.
Прошло 8-d.
Время 24-d.
В часах 1 остаток 8+d, в часах 2 остаток 0, в часах 3 остаток 2*d.
NYC>Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
Получим 24+3*d.
Давай пройдем твой алгоритм по шагам еще раз.
NYC>запускаем одновременно 1 и 2
Время 0.
Во всех часах остаток песка 16.
NYC>смотрим на часы 2 и как увидим на глаз что примерно прошло 8 минут ( 8 минут и дельта, пускай мы пересыпали песка ) NYC>сразу запускаем часы 3. и кладём на бок часы 2.
Прошло 8+d.
Время 8+d.
В часах 1 остаток 8-d, в часах 2 остаток 8-d, в часах 3 остаток 16.
NYC>Как на часах 1 песок закончиться, кладём на бок часы 3. NYC>Теперь на часах 2 и 3 разное количество песка на дельту. Будем вычислять её. NYC>Запускаем полные часы 1, и поднимаеаем часы 2 и 3, так чтобы у них изначально в разных секциях было разное количество песка изначально. ( часы два заряжены меньше чем на 8 минут а часы 3 больше чем на 8 минут на дельту )
Прошло 8-d.
Время 16.
В часах 1 остаток 16, в часах 2 остаток 8-d, в часах 3 остаток 8+d.
NYC>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность.
Тут ты зачем-то внес путаницу и переименовал часы 2 в часы 3, а часы 3 в часы 2. Я буду считать по-старому.
Прошло 8-d.
Время 24-d.
В часах 1 остаток 8+d, в часах 2 остаток 0, в часах 3 остаток 2*d.
16 8 + d, если перевернуть кверх нагами то они будут как часы 2 т.е. 8 — d
когда в третьих часах всё это 8 — d высыпится, то в первых останется именно d
d — это количество пересыпанного песка, кторого не хватает часам 2
NYC>Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
Получим 24+3*d.
Здравствуйте, NYC_boy, Вы писали:
NYC>Прошло 8-d. NYC>Время 16. NYC>В часах 1 остаток 16, в часах 2 остаток 8-d, в часах 3 остаток 8+d.
NYC>>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность. NYC>Тут ты зачем-то внес путаницу и переименовал часы 2 в часы 3, а часы 3 в часы 2. Я буду считать по-старому. NYC>Прошло 8-d. NYC>Время 24-d. NYC>В часах 1 остаток 8+d, в часах 2 остаток 0, в часах 3 остаток 2*d.
NYC>16 8 + d, если перевернуть кверх нагами то они будут как часы 2 т.е. 8 — d NYC>когда в третьих часах всё это 8 — d высыпится, то в первых останется именно d
NYC>d — это количество пересыпанного песка, кторого не хватает часам 2
Откуда взялось выделенное жирным?
В первых часах было 16, прошло 8-d, значит остаться должно 8+d. А у тебя почему-то осталось d.
PS. Поаккуратней оформляй сообщения, а то читать трудно. Перед отправкой можно нажать кнопку "Предпросмотр".
Здравствуйте, NYC_boy, Вы писали:
NYC>В часах 1 остаток 8+d, в часах 2 остаток 0, в часах 3 остаток 2*d.
NYC>... NYC>когда в третьих часах всё это 8 — d высыпится, то в первых останется именно d
NYC>Где я не прав?
В выделенном
Здравствуйте, NYC_boy, Вы писали:
NYC>запускаем одновременно 1 и 2 NYC>смотрим на часы 2 и как увидим на глаз что примерно прошло 8 минут ( 8 минут и дельта, пускай мы пересыпали песка ) NYC>...
По идее, алгоритм должен работать для всех значений дельта от 0 до 8.
А теперь посмотрите, что будет при дельта = 8.
Здравствуйте, Нэчер, Вы писали:
Н>Здравствуйте, VMin, Вы писали:
VM>>Здравствуйте, Нэчер, Вы писали:
Н>IMHO, у данной задачи имеется решение. Н>Но! Н>Следует различать теорию и практическое применение алгоритма. Н>В теории точность может быть абсолютной, а на практике погрешность может достигать нескольких секунд. Н>Вы же понимаете, что песочные часы не могут мерять время так же точно как атомные . Переворачивание набок и обратно + время реакции человека ведущего измерение, все это неизбежно вносит свою погрешность... Но и с практической точки зрения подход подходу рознь. Пересчитывать писчинки или разгонять часы до скоростей сопостовимых со скоростью света -- это явная утопия. Просто отмерять на глаз, тоже не самая замечательная идея, ибо нет способа минимизировать погршность глазомера, а он у всех очень разный.
Я так и знал ... решение "на глазок"!!!
Я "на глазок" могу сразу отсыпать 8 часов.
Вместо N итераций я сделаю ОДНУ.
Какая разница?
У меня глаз.... Ну просто офигеть...
Для тех кто забыл напоминаю начальные условия: Н>Как точно(не на глаз)отмерить 24 минуты?
.
Это я Вас как математик математика спрашиваю:
Что такое математика?
Один из законов Божьих или это сам Бог и есть? (ХХ век)
Здравствуйте, VMin, Вы писали:
VM>Здравствуйте, Нэчер, Вы писали:
Н>>Здравствуйте, VMin, Вы писали:
VM>>>Здравствуйте, Нэчер, Вы писали:
Н>>IMHO, у данной задачи имеется решение. Н>>Но! Н>>Следует различать теорию и практическое применение алгоритма. Н>>В теории точность может быть абсолютной, а на практике погрешность может достигать нескольких секунд. Н>>Вы же понимаете, что песочные часы не могут мерять время так же точно как атомные . Переворачивание набок и обратно + время реакции человека ведущего измерение, все это неизбежно вносит свою погрешность... Но и с практической точки зрения подход подходу рознь. Пересчитывать писчинки или разгонять часы до скоростей сопостовимых со скоростью света -- это явная утопия. Просто отмерять на глаз, тоже не самая замечательная идея, ибо нет способа минимизировать погршность глазомера, а он у всех очень разный.
VM>Я так и знал ... решение "на глазок"!!!
VM>Я "на глазок" могу сразу отсыпать 8 часов. VM>Вместо N итераций я сделаю ОДНУ. VM>Какая разница? VM>У меня глаз.... Ну просто офигеть...
VM>Для тех кто забыл напоминаю начальные условия: Н>>Как точно(не на глаз)отмерить 24 минуты?
Ну чтоооо такое!?
Где написано "на глаз"?
Цитирую себя же:
Просто отмерять на глаз, тоже не самая замечательная идея, ибо нет способа минимизировать погршность глазомера, а он у всех очень разный.
То есть этот вариант заведомо ошибочен, на что я достаточно прозрачно и намекнул.
Здравствуйте, Нэчер, Вы писали:
Н>Отдельно отмечу, что разбирать/поджигать =)/считать песчинки -- не нужно. Н>Допустимые действия -- переворачивать и класть набок.
Пусть Tc = 16 минут.
Запускаем часы, ждём случайное время T1 (0 < T1 < Tc), останавливаем.
Запускаем другие часы, ждём случайное время T2 (0 < T2 < Tc), останавливаем.
Запускаем другие часы, ждём случайное время T3 (0 < T3 < Tc), останавливаем.
Теперь мы можем отложить любые временные интервалы из линейной комбинации (T1,T2,T3,Tc)·(a1,a2,a3,ac) где a1,a2,a3,ac — целые (в т.ч. отрицательные).
Отрицательность берётся из того, что положенные набок часы можно запустить вперёд (отмерив Tc-T1) либо назад (T1).
Полуцелых коэффициентов у нас нет. Так что отложить точно Tc/2 не получится.
Зато мы можем разнообразными способами поднять точность измерений до требуемого уровня.
А именно:
— методом Нониуса-Вернье
— повторными пробами T1, T2, T3 всё ближе к Tc/2
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
1) Как насчет раскрутить часы вертикально вокруг центра регулируя скорость вращения.
Если крутить быстро, то песок пересыпаться не будет. если медленно то будет пересыпаться сверху вниз, переворачивется и обратно. А есть скорость при которой будет пересыпаться только из той части в которой больше песка (за счет того что там есть песчинки которе ближе к центру). Постепенно они будут уравниваться. Когда будет ситуация что песчинки будут почти пересыпаться и с той и с той стороны, тогда мы нашли 8 минут.
2) измерить время какого-либо процесса который мы можем делить пополам.
(чуть модифицированные предыдущие варианты)
3) хорошая идей поднять часы повыше понизив силу притяжения чтоб песок тёк медлеенее в 3 раза.
4) набрать ровно половину песчинок
5) на сколько помнится песок "течёт" равномерно так что можно с помощью линейки найти середину столбика песка.
6) сбросить (желательно в вакуумном куполе 1 из часов) и засечь 1 сек. С помощью оставшихся "размножить" её до необходимых 24 минут.
Здравствуйте, baily, Вы писали:
B>К сожалению, в условии задачи не сказано, что у нас имеется линейка, чтобы суметь точно отмерить 5 метров
Если мы не лысы, то делаем из своих волос и одних часов мат. маятник. Потом считаем сколько раз он качнётся за 16 минут, ну и отсчитываем после их прохождения ещё половину колебаний от этого количества.
А последние, третьи часы предлагаю пропить
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, ghost92, Вы писали:
G>5) на сколько помнится песок "течёт" равномерно так что можно с помощью линейки найти середину столбика песка.
А так ли это?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, baily, Вы писали:
B>>К сожалению, в условии задачи не сказано, что у нас имеется линейка, чтобы суметь точно отмерить 5 метров
E>Если мы не лысы, то делаем из своих волос и одних часов мат. маятник. Потом считаем сколько раз он качнётся за 16 минут, ну и отсчитываем после их прохождения ещё половину колебаний от этого количества.
E>А последние, третьи часы предлагаю пропить
Боюсь, что такой маятник за 16 минут изменит период колебаний, потому брать половину колебаний слишком грубо.
И ножниц по условию нет. А драть волосы из головы руками — слишком уж для решения такой задачи
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, baily, Вы писали:
B>>К сожалению, в условии задачи не сказано, что у нас имеется линейка, чтобы суметь точно отмерить 5 метров
E>Если мы не лысы, то делаем из своих волос и одних часов мат. маятник. Потом считаем сколько раз он качнётся за 16 минут, ну и отсчитываем после их прохождения ещё половину колебаний от этого количества.
E>А последние, третьи часы предлагаю пропить
Здравствуйте, samius, Вы писали:
S>Боюсь, что такой маятник за 16 минут изменит период колебаний, потому брать половину колебаний слишком грубо.
Почему?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, samius, Вы писали:
S>>Боюсь, что такой маятник за 16 минут изменит период колебаний, потому брать половину колебаний слишком грубо. E>Почему?
Действительно. Освежил знания по маятникам — период не зависит от амплитуды! Но есть шанс, что амплитуда упадет до 0-я менее чем за 16 минут. Тогда будет облом с подсчетом колебаний.
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Все ответы не читал, может уже этот способ приводили
1. Запускаем трое часов.
2. На глаз ждем до середины. Переварачиваем часы 2 и кладем часы 3 на бок.
3. Если часы 1 и 2 закончили отчет одновременоо
— значит запускаем часы 3. По завершению отчета получим искомые 24 минуты
— иначе, возвращаемся к шагу 1.
Отмерение получится точным, но не с первого раза. Но в условии нигде не сказанно, что нужно отмерять с первого раза. К примеру для проверки точности отчета новых часов, на 24 минуты, такой способ вполне подходит. Хотя, на практике я бы применил другой способ: сначала выставить точно 8 минут на одних часах... разные вариации этого способа уже приводились.
Здравствуйте, baily, Вы писали:
B>В самом деле, нам для решения задачи достаточно отмерить в часах интервал, который кратно уложится в 8 минут. Например, — одна секунда. То есть бросаем одни часы с 5-ти метров, а другими замеряем время падения. Таким образом секунда замерена. К сожалению, в условии задачи не сказано, что у нас имеется линейка, чтобы суметь точно отмерить 5 метров
Тогда и часы не нужны — берём 2 камня, и скидываем их поочерёдно с 4.9 метров. Пока один камень летит, другой быстро (быстрее чем за секунду) поднимаем наверх и сбрасываем в тот момент, когда первый камень коснётся земли. 24 * 60 бросаний отмерят 24 минуты.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Здравствуйте, wallaby, Вы писали:
W>Здравствуйте, baily, Вы писали:
B>>В самом деле, нам для решения задачи достаточно отмерить в часах интервал, который кратно уложится в 8 минут. Например, — одна секунда. То есть бросаем одни часы с 5-ти метров, а другими замеряем время падения. Таким образом секунда замерена. К сожалению, в условии задачи не сказано, что у нас имеется линейка, чтобы суметь точно отмерить 5 метров
W>Тогда и часы не нужны — берём 2 камня, и скидываем их поочерёдно с 4.9 метров. Пока один камень летит, другой быстро (быстрее чем за секунду) поднимаем наверх и сбрасываем в тот момент, когда первый камень коснётся земли. 24 * 60 бросаний отмерят 24 минуты.
Здравствуйте, baily, Вы писали:
B>К сожалению, камней по условию тоже нет.
А с часами вообще проблем нет:
Двое часов циклически сбрасываем с любой высоты, третьими часами отмеряем 16 минут, считаем число бросаний N. После этого циклически бросаем пару часов Round(N * 1.5) раз и отмеряем 24 минуты. И линейки не нужно.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Здравствуйте, wallaby, Вы писали:
W>Здравствуйте, baily, Вы писали:
B>>К сожалению, камней по условию тоже нет.
W>А с часами вообще проблем нет:
W>Двое часов циклически сбрасываем с любой высоты, третьими часами отмеряем 16 минут, считаем число бросаний N. После этого циклически бросаем пару часов Round(N * 1.5) раз и отмеряем 24 минуты. И линейки не нужно.
Это будет решением "на глазок", так как время падения с выбранной высоты должно кратно укладываться в 8 минут. Без линейки не обойтись Кроме того, у данного решения все равно будет огромная погрешность.
P.S: Но что то автор топика не торопится выполнять свое обещание. Сегодня он собирался поведать нам свое решение.
С вариантом подбора все ясно ...
А вот с первого раза — есть тока вариант с пересыпкой —
то бишь — на глаз рассыпаем из третьих часов в два других
как только в каких то кончаеться — опять же на глаз отсыпаем
в кончившиеся , как тока везде закончилось — вуаля -24 минуты .
эт если конечно можно пересыпать , ну и погрешность переключения ( отсыпки )
между потоками
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Отмерять будем следующим образом: сначала точно определим 8 минут в одних часах, затем последовательно запускаем часы на 16 минут и часы с 8-ю минутами.
Итак, даны песочные часы №1, №2 и №3
Отмеряем 8 минут в часах №1.
1)Запускаем часы №1 и №2. Часы №3 стоят
2)В произвольный момент времени t, пока не иссяк песок в №1, переворачиваем часы №2 и №3.
3)Как только песок в часах №2 заканчивается – одновременно переворачиваем часы №2 и №3 и меняем их местами.
4)Как только песок в часах №1 заканчивается – переворачиваем их.
Ведем подсчет переворачиваний часов №1 и №2.
Неизвестное время t, выступает в роли нашей собственно единицы измерения, а часы №2 и №3 выступают в роли хронометра.
Сразу оговорюсь, t – это целое число, равное секундам или миллисекундам или любым другим единицам измерения, с точностью до которых мы считаем. Там где указано 8 или 16 минут, должно стоять число в тех же ед. измерения, что и t, эквивалентное 16 минутам: 960 секунд, например. Слово одновременно следует трактовать соответственно: если подсчет ведется с точностью до секунды, не следует ожидать, что последние песчинки упадут синхронно.
Итак, после первых 16 минут, мы будем точно знать, сколько целых t умещается в 16 минутах: N=16 mod t.
5)Продолжаем отсчет времени до того момента, пока песок в №1 и №2 не закончится одновременно.
Время, прошедшее к данному моменту будет равно НОК(16 мин, t)
Зная НОК(16,t) и N, мы без труда находим значение t.
Зная чему равно t, находим чему равно НОК(8 мин,t) – именно через этот промежуток времени в часах №1 окажется песку ровно на 8 минут.
6)Продолжаем отсчет времени до момента НОК(8,t).
Пример:
Пусть расчет производится в секундах.
Мы выбрали некоторое время t и через 960 секунд(16 минут) узнали, что N=3
Далее, через ~17 часов переворачиваний часов, мы узнали, что НОК(960,t)=60480, откуда получаем, что t=252 секунды
Зная t, находим НОК(480,t)=30240
То есть после того как мы перевернем часы №2 еще 30240/252=120 раз, в часах №1 окажется песку ровно на 8 минут.
Здравствуйте, Нэчер, Вы писали:
Н>Пример: Н>Пусть расчет производится в секундах.
Н>Мы выбрали некоторое время t и через 960 секунд(16 минут) узнали, что N=3 Н>Далее, через ~17 часов переворачиваний часов, мы узнали, что НОК(960,t)=60480, откуда получаем, что t=252 секунды Н>Зная t, находим НОК(480,t)=30240 Н>То есть после того как мы перевернем часы №2 еще 30240/252=120 раз, в часах №1 окажется песку ровно на 8 минут.
Здравствуйте, NYC_boy, Вы писали:
NYC>Здравствуйте, Нэчер, Вы писали:
Н>>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>>Как точно(не на глаз)отмерить 24 минуты?
NYC>трое часов NYC>нумеруем их 1, 2 и 3
NYC>запускаем одновременно 1 и 2 NYC>смотрим на часы 2 и как увидим на глаз что примерно прошло 8 минут ( 8 минут и дельта, пускай мы пересыпали песка ) NYC>сразу запускаем часы 3. и кладём на бок часы 2. NYC>Как на часах 1 песок закончиться, кладём на бок часы 3. NYC>Теперь на часах 2 и 3 разное количество песка на дельту. Будем вычислять её. NYC>Запускаем полные часы 1, и поднимаеаем часы 2 и 3, так чтобы у них изначально в разных секциях было разное количество песка изначально. ( часы два заряжены меньше чем на 8 минут а часы 3 больше чем на 8 минут на дельту ) NYC>Те часы что заряжены меньше чем на 8 минут быстрее закончат свою работу. Пусть это часы 3. Как в часах 3 время истекло ( они меньше чем на 8 минут ) Сразу останавливаем часы 1 и 2.в часах один количество песка меньше чем на 8 минут а в часах два та самая разность. NYC>Теперь запускаем последовательно полные часы 3 и оставшиеся 1 и 2. Получаем 24 минуты.
T = 16
Tx = T / 2 = 8 -> target value
T1 = Tx + d
T2 = Tx — d
T1 — T2 = Tx + d — Tx + d = 2d
So as result we have double delta, not a single....
Здравствуйте, Нэчер, Вы писали:
Н>Здравствуйте, Нэчер, Вы писали:
Ну, дорогой . Даже слов нет. Вы говорили, что у вас есть оригинальное решение и приводите вариант, который в этой ветке приводился уже не раз, о том, что можно отмерить с любой, наперед заданной точностью. А именно это и означает ваша фраза
Н> Сразу оговорюсь, t – это целое число, равное секундам или миллисекундам или любым другим единицам измерения, с точностью до которых мы считаем. Там Н>где указано 8 или 16 минут, должно стоять число в тех же ед. измерения, что и t, эквивалентное 16 минутам: 960 секунд, например. Слово одновременно Н> следует трактовать соответственно: если подсчет ведется с точностью до секунды, не следует ожидать, что последние песчинки упадут синхронно.
Товарищ Spiceman даже обосновал, что в идеальной модели ( которая на практике, естетсвенно неприменима ), в связи с конечностью числа песчинок, мы даже получим абсолютно точный показатель.
С таким допущением задача просто неинтересна, так как это просто прямое решение в лоб.
Вариант решения, в котором пересыпался песок между часами, мне кажется гораздо интересней и более подходящим для этюда, по трем причинам:
1) Он дает абсолютно точное измерение. Естественно в идеальной математической модели, когда считается, что мы можем абсолютно точно сравнивать уровни песка в двух часах.
2) Данный метод нестандартен, так как в условии не сказано, что песок можно пересыпать. До этого надо догадаться.
3) Прямое решение в лоб, к коему я отношу и ваше решение, не удовлетворяет пункту 1) и сильно отвлекает внимание
Здравствуйте, baily, Вы писали:
B>Вариант решения, в котором пересыпался песок между часами, мне кажется гораздо интересней и более подходящим для этюда, по трем причинам:
B>1) Он дает абсолютно точное измерение. Естественно в идеальной математической модели, когда считается, что мы можем абсолютно точно сравнивать уровни песка в двух часах.
По пункту 1: разве в условии сказано что-то, из чего можно было бы сделать вывод о том, что хотя бы 2-е часов имеют одинаковую форму? Это было довольно сильое допущение. А сравнение уровней песка в часах с разной формой ни к чему не приведет.
Здравствуйте, baily, Вы писали:
B>С таким допущением задача просто неинтересна, так как это просто прямое решение в лоб.
Не назвал бы эту задачу не интересной и приведённое решение решением в лоб. Во первых данные допущения мне видятся очевидными. Во вторых до такого решения нужно ещё додуматься, а удалось это сделать только Spiceman'у.
Здравствуйте, samius, Вы писали:
S>Здравствуйте, baily, Вы писали:
B>>Вариант решения, в котором пересыпался песок между часами, мне кажется гораздо интересней и более подходящим для этюда, по трем причинам:
B>>1) Он дает абсолютно точное измерение. Естественно в идеальной математической модели, когда считается, что мы можем абсолютно точно сравнивать уровни песка в двух часах.
S>По пункту 1: разве в условии сказано что-то, из чего можно было бы сделать вывод о том, что хотя бы 2-е часов имеют одинаковую форму? Это было довольно сильое допущение. А сравнение уровней песка в часах с разной формой ни к чему не приведет.
Читаем условие задачи:
Пусть имеется трое одинаковых песочных часов на 16 минут каждые.
Здравствуйте, baily, Вы писали:
B>Здравствуйте, samius, Вы писали:
S>>По пункту 1: разве в условии сказано что-то, из чего можно было бы сделать вывод о том, что хотя бы 2-е часов имеют одинаковую форму? Это было довольно сильое допущение. А сравнение уровней песка в часах с разной формой ни к чему не приведет.
B>Читаем условие задачи:
B>Пусть имеется трое одинаковых песочных часов на 16 минут каждые.
Здравствуйте, HoseCo, Вы писали:
HC>Здравствуйте, baily, Вы писали:
B>>С таким допущением задача просто неинтересна, так как это просто прямое решение в лоб.
HC>Не назвал бы эту задачу не интересной и приведённое решение решением в лоб. Во первых данные допущения мне видятся очевидными. Во вторых до такого решения нужно ещё додуматься, а удалось это сделать только Spiceman'у.
Невнимательно читаете ветку. Вот только то, что мне удалось найти. Не исключаю, что есть еще.
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
МОжет попробовать использовать часы как весы? Положив их центром на тонкий прут и потихоньку пересыпая песок из одной опловинки в другую можно с достаточно высокой точностью поделить песок пополам когда каждая из половинок будет весить одинаково, ну а дальше всё понятно.
---=== С наилучшими пожеланиями, Phoenics ===--- _
Здравствуйте, baily, Вы писали:
HC>>Не назвал бы эту задачу не интересной и приведённое решение решением в лоб. Во первых данные допущения мне видятся очевидными. Во вторых до такого решения нужно ещё додуматься, а удалось это сделать только Spiceman'у.
B>Невнимательно читаете ветку. Вот только то, что мне удалось найти. Не исключаю, что есть еще.
я говорил о том, что именно такое решение предложил только Spiceman(а решение заслуживает внимания хотябы потому, что с его помощью можно отмерить произвольное время). Хотя некоторые решения я не понял
B>baily 14.10.08 17:02
Нониуса-Вернье не знаю, а второй метод, тот же что и у NotImplemented ну и я его вроде тоже предлагал в начале.
B>Кроме того, уверен, что многие до этого догадались, но просто не стали писать, так как все же это решение является решением "на глазок"
А на глазок тут только 2 вещи: 1) конечное число песчинок в часах 2) возможность зафиксировать одновременно истекшие часы.
Здравствуйте, Erop, Вы писали:
E>В целом следует, IMHO, заметить, что никто не обещал, что песок сыплется равномерно. Что если насыпать песка в два раа больше, то будет в два раза дольше и т. п.
В отличие от водяных часов, песочные идут равномерно (за исключением самого-самого последнего отрезка времени).
Потому что они не зависят от давления и инерции.
HC>Нониуса-Вернье не знаю, а второй метод, тот же что и у NotImplemented ну и я его вроде тоже предлагал в начале.
Штангенциркуль видел? У него как раз шкала Нониуса.
Всё тот же фокус с наименьшим общим кратным.
Берём две линейки с разным шагом (одна линейка — 16-минутная, вторая — что-то меньшее).
Находим совпадающие штрихи (одно совпадение — в точке 0, другое — 16*i == t*j).
Находим штрих (j/2) на линейке "t" — он приходится на 8*i и лежит точно посередине между штрихами [i/2] и ]i/2[ на линейке "16".
Но это, естественно, при условии, что j чётно. А если мы совершенно случайно взяли t такое, что оно нечётно (например, t = 16./3)?
На самом деле, если песочные часы способны строго отмерить 8 минут — т.е. количество песчинок в них чётно, то нечётный результат получить невозможно.
Беда лишь в том, что эта нечётность может быть с точностью до одной песчинки.
Например, у нас 16'000'000 песчинок. t = 5'333'333'333 (одна треть).
Каждые 16 минут у нас будет добавляться расхождение в 1 песчинку. То есть, через 8'000'000 циклов мы наконец получим искомый результат.
При этом надо заметить, что погрешности — в измерении момента финиша, в выполнении переворота — существенно больше, чем эта песчинка.
То есть, из-за флуктуаций мы вообще никогда не добьёмся расхождения, а так и будем колбаситься вокруг 16*1==t*3.
Поэтому метод Нониуса в чистом виде неприменим.
Нужна процедура коррекции. Скажем, если мы зафиксировали i=99 (нечётное!), отложили 16*99 и обнаружили, что j = [16*99/t] нечётно, то — с помощью третьих часов отмеряем t1, примерно полуцелое кратное t.
И работаем уже с новым значением t := t1.
После одной-двух коррекций точность превысит погрешности измерений.
Чем меньше количество циклов i, тем больше коррекций придётся совершить.
Чем больше количество циклов, тем большая погрешность измерений (сумма переходных процессов на переворотах). Думаю, что 99 — непозволительно много.
Где-то в районе 5-10 будет достаточно. Опять же, каждый забег — это больше часа. Если больше — замучаешься.
Здравствуйте, samius, Вы писали:
S>Действительно. Освежил знания по маятникам — период не зависит от амплитуды! Но есть шанс, что амплитуда упадет до 0-я менее чем за 16 минут. Тогда будет облом с подсчетом колебаний.
Можно несколько раз перезапустить
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Нэчер, Вы писали:
Н>Здравствуйте, Нэчер, Вы писали: Н>........................................
Как и ожидалось — решение "на глазок"
Н>Неизвестное время t, выступает в роли нашей собственно единицы измерения............ Н>Сразу оговорюсь, t – это целое число, равное секундам или миллисекундам или любым другим единицам измерения, с точностью до которых мы считаем. ........................
Скажите какой хронометр следует использовать чтобы неизвестное время t сделать целым числом.
И вообще странно как-то. Время-целое число. Дла меня это непонятно.
Расскажите метод как получить "время-целое число" имея трое часов по 16. Тогда можно и дальше "решение" почитать.
А может быть сразу сделать неизвестное время t==8.
По моему разумное решение и часы не надо иступлённо переворачивать.
Один разок и готово.
Да и "число" целое.
По-моему моё решение проще и элегантнее.
P.S.
А у меня просто 3 экземпляра идентичных песочных часов.
Никто не знает на какое количество часов, минут и секунд.
Как бы мне отмерить в 1.5 раза больше?
К тому же часы не прозрачные и только сигналят о том что песок закончился.
(это условие подразумевается априори во ВСЕХ задачах о песочных часах)
P.S.S.
Ну не имеет задача решения...
Нету и всё!
.
Это я Вас как математик математика спрашиваю:
Что такое математика?
Один из законов Божьих или это сам Бог и есть? (ХХ век)
Здравствуйте, VMin, Вы писали:
VM>P.S. VM>А у меня просто 3 экземпляра идентичных песочных часов. VM>Никто не знает на какое количество часов, минут и секунд. VM>Как бы мне отмерить в 1.5 раза больше?
VM>К тому же часы не прозрачные и только сигналят о том что песок закончился. VM>(это условие подразумевается априори во ВСЕХ задачах о песочных часах)
См мое решение.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, baily, Вы писали:
B>Кроме того, уверен, что многие до этого догадались, но просто не стали писать, так как все же это решение является решением "на глазок"
Вот не надо. У меня точное решение.
Ессно если допустить что мы можем точно определить момент "песок кончился" и мнгновенно перевернуть/остановить/запустить часы.
Причем сходится оно как правило за время не сильно больше 16 минут.
А если добавить "глазок" и смотреть за тем чтобы rnd.NextDouble() давал примерно 0.5 то варемя схождения будет 16 минут и несколько секунд.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, baily, Вы писали:
B>>Кроме того, уверен, что многие до этого догадались, но просто не стали писать, так как все же это решение является решением "на глазок" WH>Вот не надо. У меня точное решение. WH>Ессно если допустить что мы можем точно определить момент "песок кончился" и мнгновенно перевернуть/остановить/запустить часы. WH>Причем сходится оно как правило за время не сильно больше 16 минут. WH>А если добавить "глазок" и смотреть за тем чтобы rnd.NextDouble() давал примерно 0.5 то варемя схождения будет 16 минут и несколько секунд.
Даже и не знаю, что сказать Вы может знаете, что double имеет ограниченную точность, и что с некоторого момента числа в последовательности 2^(-n) при n стремящемся к бесконечности в double станeт "точно" равнs 0. Но утверждать, что 2^(-n) = 0 с некоторого не очень большого n
Вспоминаю, как то давно, еще в школе, участвовал в олимпиаде, и там была одна простенькая задачка. Существует ли такое натуральное число n, что 1996^n делится на 5. Так нашелся один товарищ, между прочим неглупый, который посчитал на калькуляторе для малых n, чтобы проверить. Проблема в том, что калькулятор у него был 10-тиразрядный. Поэтому уже 1996^3 у него оканчивалось на 0, а потому делилось на 10, а значит и на 5. Убедить его, что это не так, нам так и не удалось. На меня тогда это произвело сильное впечатление
Здравствуйте, baily, Вы писали:
B>Даже и не знаю, что сказать Вы может знаете, что double имеет ограниченную точность,
Знаю.
А песок еще более ограниченную точность. Более того он целочисленный:
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, VMin, Вы писали:
VM>>К тому же часы не прозрачные и только сигналят о том что песок закончился. VM>>(это условие подразумевается априори во ВСЕХ задачах о песочных часах)
WH>См мое решение.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, baily, Вы писали:
B>>Даже и не знаю, что сказать Вы может знаете, что double имеет ограниченную точность, WH>Знаю. WH>А песок еще более ограниченную точность. Более того он целочисленный: WH>Как видишь часы из 1'000'000'000 песчинок быстро сходятся на 500'000'000.
WH>Если добавить "глазок" будет еще быстрее.
WH>Более того можно и дальше делить пополам до тех пор пока остается четное колличество пестинок.
WH>Короче что ни говори, а алгоритм точный.
Совершенно верно, а 2^(-100000000000000000000....0000) точно равно нулю.
Здравствуйте, Кодт, Вы писали:
К>В отличие от водяных часов, песочные идут равномерно (за исключением самого-самого последнего отрезка времени).
Что-то как-то гложат меня смутные сомнения... Хотя утврждать точно не возьмусь...
К>Потому что они не зависят от давления и инерции.
От чего бы?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
К>>Потому что они не зависят от давления и инерции. E>От чего бы?
Свойство есть такое у сыпучих сред. После некоторого уровня у них давление на дно перестаёт расти линейно.
Здравствуйте, baily, Вы писали:
B>Совершенно верно, а 2^(-100000000000000000000....0000) точно равно нулю.
Ты что сказать то хочешь?
Что мой алгоритм не точен? Так он точен что прекрасно демонстрирует целочисленная версия при том что песок также штука целочисленная.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Cyberax, Вы писали:
C>Свойство есть такое у сыпучих сред. После некоторого уровня у них давление на дно перестаёт расти линейно.
Что-то тут не так. А куда же двается вес песка? Неужели передаётся на стенки? Что-то с трудом верится, так как стенки довольно таки скользкие...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Что-то тут не так. А куда же двается вес песка? Неужели передаётся на стенки? Что-то с трудом верится, так как стенки довольно таки скользкие...
Да, передаётся на стенки. От их гладкости и материала тоже зависимость есть.
Например, если взять обычную бочку и наполнить цементом, а потом перевернуть вверх дном — то заметная часть цемента останется внутри бочки. Точно так же и при разгрузке вагонов-хопперов с цементом заметная часть цемента остаётся на стенках.
PS: это я как-то давно занимался халтуркой с рассчётом прочности стенок цилиндрического контейнера для сыпучих грузов.
Здравствуйте, Cyberax, Вы писали:
C>Например, если взять обычную бочку и наполнить цементом, а потом перевернуть вверх дном — то заметная часть цемента останется внутри бочки.
Ну часы-то так устроены, что всь песок высыпается...
IMHO их конструкцию подбирают так, чтобы не весь вем переавался на стенки. А иначе работать не будут...
C>PS: это я как-то давно занимался халтуркой с рассчётом прочности стенок цилиндрического контейнера для сыпучих грузов.
Ну прикинь, если сможешь, как обстоят дела в типичных часах. Я, например, за пять минут не смог... Правда я не могу скаать, что очень упорно пытался.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
C>>PS: это я как-то давно занимался халтуркой с рассчётом прочности стенок цилиндрического контейнера для сыпучих грузов. E>Ну прикинь, если сможешь, как обстоят дела в типичных часах. Я, например, за пять минут не смог... Правда я не могу скаать, что очень упорно пытался.
Без коэффициентов сложно сказать. Но на глаз вроде зависимости от высоты почти не должно быть. Тут ещё влияет форма нижней части — она сделана конусом, так что давлению будет проще передаваться на стенки.
Здравствуйте, Cyberax, Вы писали:
C>Без коэффициентов сложно сказать. Но на глаз вроде зависимости от высоты почти не должно быть. Тут ещё влияет форма нижней части — она сделана конусом, так что давлению будет проще передаваться на стенки.
Ну блин, берёшь стандартные совковые часы из санатория. Такие цилиндрические колбы с конической перетяжкой. И считаешь что там и как. Я не разу не видел, чтобы песок застрял в целиндрической части часов, например. IMHO, это обознчает, что вес на стенки не передаётся с большим запасом...
Коэффициенты можно легко нагуглить любые...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, baily, Вы писали:
B>>Совершенно верно, а 2^(-100000000000000000000....0000) точно равно нулю. WH>Ты что сказать то хочешь? WH>Что мой алгоритм не точен? Так он точен что прекрасно демонстрирует целочисленная версия при том что песок также штука целочисленная.
Я хочу сказать, что если решать математически, то нельзя закладываться на то, что песок целочисленный, так как такое решение и будет "на глазок". Если же решать практически, то такую точность, как просыпание до последней песчинки, тоже нельзя достичь, так как в этом случае нельзя пренебрегать тем, что песок на самом деле не будет сыпаться равномерно, особенно в конце, когда песчинок будет мало.
Здравствуйте, baily, Вы писали:
B>Я хочу сказать, что если решать математически, то нельзя закладываться на то, что песок целочисленный, так как такое решение и будет "на глазок".
Не понятно с чего такое утверждение? Или математика разучилась оперировать целыми числами?
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Опозорился таки...
От:
Аноним
Дата:
19.10.08 21:45
Оценка:
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, VMin, Вы писали:
VM>>По каким критериям определяем: VM>>Наверное "на глазок".
WH>Как я уже говорил "глазок" алгоритму не нужен. И может использоваться лишь для ускорения схождения алгоритма.
Вы вопроса не поняли.
И стёрли из цитирования.
Повторюсь:
По каким критериям определяем:
if (c1 > c2)
.....................................
Наверное "на глазок".
Кто вам сказал что c1 > c2?
у вас нет весов или другой измерялки.
Заодно замечу:
Выражение: def m = rnd.Next(c2);
подразумевает, что Вы способны "на глазок" отсыпать с условием <c2(меньше c2).
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, baily, Вы писали:
B>>Я хочу сказать, что если решать математически, то нельзя закладываться на то, что песок целочисленный, так как такое решение и будет "на глазок". WH>Не понятно с чего такое утверждение? Или математика разучилась оперировать целыми числами?
Дальнейшее обсуждение на мой взгляд превращается в перепалку зануд, поэтому я его прекращу. Скажу только, уже в десятый раз, что если исходная задача предполагает такое "точное" решение, то выглядит она, на мой взгляд, идиотской
Здравствуйте, Erop, Вы писали:
К>>В отличие от водяных часов, песочные идут равномерно (за исключением самого-самого последнего отрезка времени). E>Что-то как-то гложат меня смутные сомнения... Хотя утврждать точно не возьмусь...
К>>Потому что они не зависят от давления и инерции. E>От чего бы?
В каждый момент времени песок в горлышке часов образует вот такой анти-конус.
Песчинки со внутренней поверхности проваливаются вниз, а вес следующего слоя передаётся вбок к стенкам колбы.
Дальше начинают играть рыхлость (и направление передачи давления от тяжести вбок на стенки), наклон стенок, баланс между проекцией давления и трением скольжения, силы сцепления песчинок. В общем, модель не простая, но в конечном счёте сводится к форме и толщине первого подвижного слоя.
Cyberax лучше расскажет, раз он этим вплотную занимался.
Я же почерпнул сведения из "Библиотечки Кванта". За давностью лет библиографию не приведу.
А с водой всё гораздо жёстче. Там процесс истечения даже не стационарный. Стационарным его считают "для упрощения".
То есть, все эти задачки из школьного учебника про бассейн и две трубы — фикция. Чтобы они были не фикцией, отводящая труба должна содержать насос с фиксированной производительностью.
Здравствуйте, <Аноним>, Вы писали:
А>Вы вопроса не поняли.
Это вы ответа не поняли.
А>Кто вам сказал что c1 > c2? А>у вас нет весов или другой измерялки.
высыпаем песок из двух часов пока в одних не останется песка
А>Выражение: def m = rnd.Next(c2); А>подразумевает, что Вы способны "на глазок" отсыпать с условием <c2(меньше c2).
Меньше или равно. Это можно сделать без всяких "глазков"
Ибо это случайная задержка меньшея или равная колличеству песка в часах.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, <Аноним>, Вы писали:
А>>Вы вопроса не поняли. WH>Это вы ответа не поняли.
А>>Кто вам сказал что c1 > c2? А>>у вас нет весов или другой измерялки. WH>
высыпаем песок из двух часов пока в одних не останется песка
Ну хорошо. Здесь был не прав.
А>>Выражение: def m = rnd.Next(c2); А>>подразумевает, что Вы способны "на глазок" отсыпать с условием <c2(меньше c2). WH>Меньше или равно. Это можно сделать без всяких "глазков" WH>Ибо это случайная задержка меньшея или равная колличеству песка в часах.
Вот здесь поподробнее пожалуйста.
Какие критерии или события определяют "меньшея или равная колличеству песка".
Напомню!
Имеется ЕДИНСТВЕННОЕ ДОСТОВЕРНОЕ событие.
Некий "Дзынь", который сообщает о завершении процесса пересыпания.
Я не слишком сложно?
Попробуйте в своей проге заменить:
def m = rnd.Next(c2);
На:
_ = ReadKey();
def m = time();
_ = ReadKey();
m = time() - m;
Потому что rnd.Next(c2) — есть ни что иное, как некий внешний высокоточный хронометр, он же "глазок".
Теперь надеюсь всё встало на свои места.
P.S.
Только не говорите мне, что можно положить кирпич на клавишу "Enter".
Клавиатура это тоже "некий внешний высокоточный хронометр".
P.S.S.
"Дзынь" — это не китаец.
.
Это я Вас как математик математика спрашиваю:
Что такое математика?
Один из законов Божьих или это сам Бог и есть? (ХХ век)
То есть ты хочешь сказать, что перед самымы концом песка в верхней колбе он образует кольцо?
IMHO, это не так. Во всяком случае я когда-то рассматривал песочные часы довольно таки внимательно, но колец не замечал...
Зато замечал воронку на верхней поверхности песка, кстати.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, VMin, Вы писали:
VM>Какие критерии или события определяют "меньшея или равная колличеству песка".
хъ VM>Имеется ЕДИНСТВЕННОЕ ДОСТОВЕРНОЕ событие. VM>Некий "Дзынь", который сообщает о завершении процесса пересыпания.
Вот этот самый "дзынь" и ограничивает время пересыпания сверху.
Те нам нужно просто остановить до того момента когда случится этот самый "дзынь".
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, VMin, Вы писали:
VM>>Какие критерии или события определяют "меньшея или равная колличеству песка". WH>хъ VM>>Имеется ЕДИНСТВЕННОЕ ДОСТОВЕРНОЕ событие. VM>>Некий "Дзынь", который сообщает о завершении процесса пересыпания. WH>Вот этот самый "дзынь" и ограничивает время пересыпания сверху. WH>Те нам нужно просто остановить до того момента когда случится этот самый "дзынь".
Гениально.
Мои аплодисменты.
P.S.
Супер смешно, но не согласен. (это о моих оценках)
P.S.S. остановить до того момента — не есть достоверное событие.
По крайней мере для меня.
"дзынь" и прозевать можно.
По крайней мере я могу прозевать.
Ну не у всех же такой глазомер и чуство времени как у Вас.
.
Это я Вас как математик математика спрашиваю:
Что такое математика?
Один из законов Божьих или это сам Бог и есть? (ХХ век)
Здравствуйте, WolfHound, Вы писали:
WH>Это я тебе как модератор говорю.
Поподробнее не расскажешь, что именно плохо делать?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, VMin, Вы писали:
VM>Не надо нервничать.
Я спокоен как слон.
VM>А надо сослаться на правила сайта.
Ради тебя одного правила переписывать ни кто не будет.
VM>Покажете — перестану.
У нас беспредел модераторов.
Демократии нет, небыло и не будет.
Короче если не перестанешь забаню.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, VMin, Вы писали:
VM>>Не надо нервничать. WH>Я спокоен как слон.
VM>>А надо сослаться на правила сайта. WH>Ради тебя одного правила переписывать ни кто не будет.
VM>>Покажете — перестану. WH>У нас беспредел модераторов. WH>Демократии нет, небыло и не будет. WH>Короче если не перестанешь забаню.
Слушаю и повинусь.
Буду запятую ставить.
,
Это я Вас как математик математика спрашиваю:
Что такое математика?
Один из законов Божьих или это сам Бог и есть? (ХХ век)
Здравствуйте, WolfHound, Вы писали:
E>>Поподробнее не расскажешь, что именно плохо делать?
В смысле в конце темы сообщения? Или в конце последнего предложения сообщения точку не надо ставить?
WH>Вот это.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Кодт, Вы писали:
К>К вопросу о песочных часах
По идее птичка на второй картинке не должна вниз головой сидеть... Нормально бы её посадить.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, Erop, Вы писали:
E>В смысле в конце темы сообщения? Или в конце последнего предложения сообщения точку не надо ставить?
Он в конце каждого сообщения делает кучу переводов строк и ставит точку.
Выглядит не лучше оверквотинга.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Общая идея предлагаемого алгоритма -- заставить погрешность определения середины саму себя нивелировать.
Алгоритм такой:
Пусть N — общее количество песка в песочных часах. В нашем случае, соответствующее 16 мин.
Будем записывать состояния часов следующим образом. Каждая строка записи соответствует количеству песка в верхней колбе часов.
Значком @ будем обозначать момент переворачивания часов.
Например, запись
@N ; N/2 ; 0
означает, что в верхней колбе первых часов N песка и мы только что их перевернули. Во вторых часах -- N/2 песка. В третьих — 0.
Временем переворачивания пренебрегаем, считаем что мгновенно.
1. Запускаем первые и вторые часы
@N ; @N ; 0
2. Когда пройдет приблизительно N/2 времени, перевернем часы №2 и №3. Если d — погрешность определения середины, получаем
N/2+d ; @N/2-d ; @N
, где d может быть положительным или отрицательным.
3. Когда в часах №1 или №2 закончится песок, для удобства записи, переставим их местами, так чтоб под №2 оказались часы, в которых закончился песок
2d ; 0 ; N/2+d
Теперь d строго положительно.Т.к. песок закончился в часах, у которых N/2-|d|
Далее шаги будут такими
Собственно, получили в часах №1 8мин. Отмеряем их и ещё 16, получаем 24.
0 ; 0 ; 0
0 ; 0 ; @N
0 ; 0 ; 0
Для алгоритма важно, чтоб выполнялось условие N/2 > 3d. Т.е. d < 8/3 мин. По моему, достаточно для определения "на глаз", но кого не устраивает, предлагаю самостоятельно дополнить алгоритм несколькими условными шагами, для повышения точности.
Последовательность шагов подобрана. Поэтому думаю, что можно их и уменьшить, как с точки зрения количества шагов, так и с точки зрения общего времени подготовки до начала отсчета 24 мин. интервала. Данная последовательность позволяет гарантированно начать отсчет менее чем через 40 мин. Точнее, через 40 мин.- d.
Алгоритм лучше, чем через вычисление НОК, т.к. не требует от "пользователя часов" вычислений, а только повторения шагов. Гарантированно позволяет начать отсчет 24 мин интервала через 40 мин. Хотя временем переворачивания мы и пренебрегали, но на практике, точность данного алгоритма выше за счет меньшего числа переворачиваний часов.
Кто сможет улучшить алгоритм по "времени подготовки" и количеству шагов? Или доказать его оптимальность?
Здравствуйте, Нэчер, Вы писали:
Н>Пусть имеется трое одинаковых песочных часов на 16 минут каждые. Н>Как точно(не на глаз)отмерить 24 минуты?
Предложу сразу два решения:
1. Мат.ожидание
Включам часы 1 и 2, считаем про себя до Х и выкл 2 вкл 3, считаем про себя до Х и вкл 2 выкл 3, и т.д. до тех пор пока в часах 1 не закончится песок.
Тогда ждем пока в включенных в данный момент часах не закончится песок.
Длины интервалов вкл/выкл 2 и 3 нормально распределены вокруг некоторого значения (Х сек), их сумма имеет также нормальное распределение, и мат.ожидание суммы отличается от 8 минут не более чем на Х.
2. Прогрессия.
Тут нам потребуется 5 часов.
На определенном шаге прогрессии имеются часы в которых осталось песка меньше чем на 8 мин.
Создаем 3 таких же часов(1,2,3), эти в 0.
1 — эталон
2 и 3 запускаем в разные стороны, когда в одних закончтся песок в других останется в два раза больше чем от эталона до 8 мин.
Создаем 3 таких же часов(2,3,4), эти в 0.
Запускаем 2 и 3, когда в 3 визуально высыпалось половина выкл 3 вкл 4. Когда в 2 закончилось вкл 1(эталон) на досыпку и выкл их когда закончилось в 3 или 4 (что раньше)
В рез-те получаем часы в которых песка меньше (либо равно) чем на 8 мин но больше чем раньше