если в задаче стоит вопрос о наличии прямого угла, т.е. 90°, то решать её надо поделив циферблат (круг) на 360°. так же, часовая и минутная стрелки двигаются постоянно, просто с разными угловыми скоростями (мы сейчас не берём в пример электромеханические релейные часы).
Ты абсолютно прав! Движение стрелок надо принимать как постоянное, циклическое, периодическое. Вопрос в детерминированности. Что взять за минимальное dt, например. Круглые часы в вакууме не имеют "тика", а все остальные зависят от шестерёнок и их передаточного числа. И почему 360 градусов, а не 2*Пи? Поэтому я ввёл свои условия решения задачи для получения математического ответа. Причём эти условия вполне наглядны: 12 больших секторов по числу часов, и каждый из них разделен на 5 минутных. Можно попробовать подобрать такие начальные условия, что событий станет больше или не станет совсем.
# include < stdio.h > /* <- тут ЖЖ что-то пытается подгрузить автоматом. Поставил пробел после колодца и ><*/ main () { /*Логика программы следующая: * Всего 60 позиций на циферблате. * Каждые 12 минут часовая стрелка смещается на 1 позицию. 60 раз за оборот. * Каждые 60 секунд минутная стрелка смещается на 1 позицию. * Когда разница по модулю между этими двумя значениями достигает 15-ти, то образуется прямой угол. */ int hour, counter_1, counter_min, counter_hour, otvet; otvet=0; counter_hour = 0; hour = 0; printf("Start\n"); for (counter_1=0; counter_1<12; counter_1++) /*делаем оборот часовой стрелки*/ { for (counter_min=0; counter_min<60; counter_min++) /*делаем один оборот минутной стрелки
( ... )
Comments 9
если в задаче стоит вопрос о наличии прямого угла, т.е. 90°, то решать её надо поделив циферблат (круг) на 360°. так же, часовая и минутная стрелки двигаются постоянно, просто с разными угловыми скоростями (мы сейчас не берём в пример электромеханические релейные часы).
Reply
Поэтому я ввёл свои условия решения задачи для получения математического ответа. Причём эти условия вполне наглядны: 12 больших секторов по числу часов, и каждый из них разделен на 5 минутных. Можно попробовать подобрать такие начальные условия, что событий станет больше или не станет совсем.
Reply
То есть сорсы в студию. Люблю погвнять на чужой код :)
Reply
# include < stdio.h > /* <- тут ЖЖ что-то пытается подгрузить автоматом. Поставил пробел после колодца и ><*/
main ()
{
/*Логика программы следующая:
* Всего 60 позиций на циферблате.
* Каждые 12 минут часовая стрелка смещается на 1 позицию. 60 раз за оборот.
* Каждые 60 секунд минутная стрелка смещается на 1 позицию.
* Когда разница по модулю между этими двумя значениями достигает 15-ти, то образуется прямой угол.
*/
int hour, counter_1, counter_min, counter_hour, otvet;
otvet=0;
counter_hour = 0;
hour = 0;
printf("Start\n");
for (counter_1=0; counter_1<12; counter_1++) /*делаем оборот часовой стрелки*/
{
for (counter_min=0; counter_min<60; counter_min++) /*делаем один оборот минутной стрелки ( ... )
Reply
Reply
Reply
Leave a comment