 |
16-01-2006, 00:15
|
#1
|
|
Модератор
Сообщений: 3,198
Проживание: Эспоо
Регистрация: 30-10-2005
Status: Offline
Репутация: 0
|
Задачка
Решена.
Спасибо.
А как Вам Сахаровская задачка?
Из пункта А в одном направлении двигаются Мальчик со скоростью 7 км/ч и Девочка со скоростью 5км/ч,
между ними постоянно бегает Собачка со скоростью 11 км/ч.
Определить расстояние от п.А до собачки по прошествии 2 часов?
Последнее редактирование от matematik : 16-01-2006 в 00:35.
|
|
|
|
16-01-2006, 00:17
|
#2
|
|
самый лучший ангел
Сообщений: 16,134
Проживание: лучшая в мире страна
Регистрация: 17-08-2004
Status: Offline
Репутация: 0
|
Пошукай по форуму, эта загадка уже была. И по моему 98% ее разгадали. 
-----------------
"Мне наплевать, что вы обо мне думаете. Я о вас не думаю вообще." К. Шанель
"Если ты в меньшинстве — и даже в единственном числе, — это не значит, что ты безумен." Дж. Оруэлл
|
|
|
|
16-01-2006, 00:18
|
#3
|
|
Veropakolainen
Сообщений: 305
Проживание: Pusula
Регистрация: 30-10-2005
Status: Offline
Репутация: 0
|
Было уже.
Не далее, как в прошлом году.
|
|
|
|
16-01-2006, 00:37
|
#4
|
|
Модератор
Сообщений: 3,198
Проживание: Эспоо
Регистрация: 30-10-2005
Status: Offline
Репутация: 0
|
Цитата:
|
Сообщение от tigrazoid
Было.
|
Еще раз спасибо.
А теперь?
|
|
|
|
16-01-2006, 00:44
|
#5
|
|
Гость
Сообщений: n/a
Проживание:
Регистрация:
Status:
|
12км (погрешност +/-2км), если собачка конечно не сдохла от такой беготни ранше чем через 2 часа
|
|
|
|
17-01-2006, 10:57
|
#6
|
|
Гость
Сообщений: n/a
Проживание:
Регистрация:
Status:
|
11.76 km. Pravilno?
|
|
|
|
17-01-2006, 12:35
|
#7
|
|
Модератор
Сообщений: 3,198
Проживание: Эспоо
Регистрация: 30-10-2005
Status: Offline
Репутация: 0
|
Цитата:
|
Сообщение от TOR
11.76 km. Pravilno?
|
По-моему - это ОДИН ИЗ возможных ответов
|
|
|
|
17-01-2006, 14:15
|
#8
|
|
Registered User
Сообщений: 318
Проживание: Санкт-Петербург
Регистрация: 24-05-2004
Status: Offline
Репутация: 10
|
Я тоже предложу свой вариант ответа - 13,89 км.
только не спрашивайте как я его получил :-)))
интересно, а какой ответ правильный?
|
|
|
|
17-01-2006, 14:41
|
#9
|
|
Гость
Сообщений: n/a
Проживание:
Регистрация:
Status:
|
10000...14000 м
Ё!
|
|
|
|
17-01-2006, 15:07
|
#10
|
|
зеленый и колючий
Сообщений: 1,379
Проживание:
Регистрация: 25-06-2003
Status: Offline
Репутация: 10
|
Вот прикинусь школьником и выдам...
У собачки в начальный момент неопределенность скорости, точнее, ее направления. Поэтому самый правильный ответ у Хрюши и у Елок с Палками  .
Можно пойти с другого бока: А пусть через 2 часа собачка будет в любой точке между 10 и 14 км, и это кино мы будем мотать назад. Человеки и собачка побегут задом наперед. Как бы собачка ни бегала, она окажется в пункте А.
Угадал?
|
|
|
|
17-01-2006, 15:59
|
#11
|
|
[Mon]
Сообщений: 10,259
Проживание: virtual
Регистрация: 06-02-2004
Status: Offline
Репутация: 42
|
У меня получается 10.467 км , надо проверить еше, правда.
П.С. да... проверка говорит, что собака пробежала 21.997 км 
-----------------
-=*=-
Последнее редактирование от zuber : 17-01-2006 в 16:06.
|
|
|
|
17-01-2006, 16:04
|
#12
|
|
Hej, sokoly
Сообщений: 53,589
Проживание: город-курорт
Регистрация: 31-07-2005
Status: Offline
Репутация: 0
|
"Гринписа" на вас нету! Натравлю общество защиты животных и Брибжит Бардо в частности! Так собачку мучать, изверги!
|
|
|
|
17-01-2006, 16:05
|
#13
|
|
Hej, sokoly
Сообщений: 53,589
Проживание: город-курорт
Регистрация: 31-07-2005
Status: Offline
Репутация: 0
|
А мальчик когда вышел? Дня на три раньше девочки? Ну и участь у собачки...
|
|
|
|
17-01-2006, 16:09
|
#14
|
|
[Mon]
Сообщений: 10,259
Проживание: virtual
Регистрация: 06-02-2004
Status: Offline
Репутация: 42
|
[pre]/* U popa byla sobaka
* created by Zuber
*/
#include <stdlib.h>
#include <stdio.h>
#define BOY_SPEED 7.0
#define GIRL_SPEED 5.0
#define DOG_SPEED 11.0
// step is one second
#define TIMER_STEP 1
// 2 hours
#define TIME_UNITS 60*60
#define MAX_TIME 2 * TIME_UNITS
#define TO_BOY 1
#define TO_GIRL 2
int main(void){
int timer;
double boy_pos = 0.0;
double girl_pos = 0.0;
double dog_pos = 0.0;
int dog_runs_to = TO_GIRL;
double tmp_distance;
double distance_to_run;
double part_distance_to_run;
// report counters
int total_oscillations;
double total_trek = 0.0;
for(timer = 0; timer < MAX_TIME; timer ++){
if( boy_pos != girl_pos ){ // only if not at the same place
// NOTE, girl_pos is always less then a boy pos due to speed diff
tmp_distance = boy_pos - girl_pos;
// NOTE: since we have a somewhat descreet values, there could be small glitches in the beginning,
// when dog is actually catching up with the girl
distance_to_run = DOG_SPEED/((double)TIME_UNITS);
total_trek = total_trek + distance_to_run;
while(distance_to_run != 0){
switch(dog_runs_to){
case TO_BOY:
part_distance_to_run = boy_pos - dog_pos;
if( part_distance_to_run < 0){
printf("BUG! Dog is infront! \n");
exit(0);
}else if( part_distance_to_run == 0 ){
// same position, dog reverses
dog_runs_to = TO_GIRL;
total_oscillations++;
}else{
if(distance_to_run <= part_distance_to_run){
dog_pos = dog_pos + distance_to_run;
distance_to_run = 0.0;
}else{
dog_pos = boy_pos;
distance_to_run = distance_to_run - part_distance_to_run;
}
} // end of if(part_distance_to_run)
break; // TO_BOY
case TO_GIRL:
part_distance_to_run = dog_pos - girl_pos;
if( part_distance_to_run < 0){
// starting feature... have to catch up
dog_pos = girl_pos;
distance_to_run = distance_to_run - part_distance_to_run;
break;
}else if( part_distance_to_run == 0 ){
// same position, dog reverses
dog_runs_to = TO_BOY;
total_oscillations++;
}else{
if(distance_to_run <= part_distance_to_run){
dog_pos = dog_pos - distance_to_run;
distance_to_run = 0.0;
}else{
dog_pos = girl_pos;
distance_to_run = distance_to_run - part_distance_to_run;
}
} // end of if(part_distance_to_run)
break; // TO_GIRL
default:
printf("BUG! Nowhere to RUN! \n");
exit(0);
}
}
} // end if boy != girl
boy_pos = boy_pos + BOY_SPEED/((double)TIME_UNITS);
girl_pos = girl_pos + GIRL_SPEED/((double)TIME_UNITS);
} // end timer loop
// PRINTING RESULTS
printf("Resulting positions (in km)\n");
printf("Boy: %2.3f\n", boy_pos);
printf("Girl: %2.3f\n", girl_pos);
printf("Dog: %2.3f\n", dog_pos);
printf("Total DOG travel: %2.3f\n",total_trek);
printf("Total oscillations: %d\n", total_oscillations);
return 0;
}
[/pre]
-----------------
-=*=-
|
|
|
|
17-01-2006, 16:26
|
#15
|
|
просто зверь
Сообщений: 6,244
Проживание:
Регистрация: 28-07-2004
Status: Offline
Репутация: 14
|
Цитата:
|
Сообщение от Kaktus
Человеки и собачка побегут задом наперед. Как бы собачка ни бегала, она окажется в пункте А.
Угадал?
|
Вот что значит фундаментальное образование!
Уважаю!
|
|
|
|
17-01-2006, 17:27
|
#16
|
|
зеленый и колючий
Сообщений: 1,379
Проживание:
Регистрация: 25-06-2003
Status: Offline
Репутация: 10
|
Zuber
Ехидное замечание с места. Время свободного пробега собачки должно быть много больше шага таймера (поначалу это не выполняется). Иначе направление бега собачки можно и не угадать. Вот если бы собачка выскочила из своей будки с задержкой, типа спохватилась. Вот тогда можно и программулю нкаваять. А так, какая-то неопределенность получается, как у Гейзенберга. Непонятно, в какую сторону собачка бежит, расстояние-то между человеками 0, приходится в препятствие утыкаться
|
|
|
|
17-01-2006, 17:35
|
#17
|
|
[Mon]
Сообщений: 10,259
Проживание: virtual
Регистрация: 06-02-2004
Status: Offline
Репутация: 42
|
Цитата:
|
Сообщение от Kaktus
Зубер
Ехидное замечание с места. Время свободного пробега собачки должно быть много больше шага таймера (поначалу это не выполняется). Иначе направление бега собачки можно и не угадать. Вот если бы собачка выскочила из своей будки с задержкой, типа спохватилась. Вот тогда можно и программулю нкаваять. А так, какая-то неопределенность получается, как у Гейзенберга. Непонятно, в какую сторону собачка бежит, расстояние-то между человеками 0, приходится в препятствие утыкаться
|
А в программе первый шаг собачки пропушен. Она начинает бегать только через секунду. Что приводит к тому, что в какой-то момент она может догонять девочку. (тама в коментах сказанно). Что, впрочем не сильно влияет на определение местоположения собачки, т.к. при шаге времени стремяшимся к нулю, погрешность стремится к нулю. Через одну секунду, мальчик и девочка будут на расстоянии 56 сантиметров друг от друга.  Думаю, мой результат +- 1 метр.
-----------------
-=*=-
|
|
|
|
17-01-2006, 18:32
|
#18
|
|
зеленый и колючий
Сообщений: 1,379
Проживание:
Регистрация: 25-06-2003
Status: Offline
Репутация: 10
|
Извиняюсь, сразу в твой код не врубился, да и не силен. Так вот что такое catch up  Подозревал, что ты кого-то придерживаешь. Я что подозреваю. Погрешность-то поначалу к нулю стремится, но потом-то погрешность накапливается. А существует ли предел? Смена направления бега собачки будет сильно в другие моменты времени. Собачка-то свои километры набегает...
Предлагаю собачку придержать на 100 микросекунд секунд, отсчитывать микросекунды, а потом сокращать время придерживания собачки и смотреть, к чему это дело стремится.
|
|
|
|
17-01-2006, 19:14
|
#19
|
|
[Mon]
Сообщений: 10,259
Проживание: virtual
Регистрация: 06-02-2004
Status: Offline
Репутация: 42
|
Цитата:
|
Сообщение от Kaktus
Извиняюсь, сразу в твой код не врубился, да и не силен. Так вот что такое цатч уп  Подозревал, что ты кого-то придерживаешь. Я что подозреваю. Погрешность-то поначалу к нулю стремится, но потом-то погрешность накапливается. А существует ли предел? Смена направления бега собачки будет сильно в другие моменты времени. Собачка-то свои километры набегает...
Предлагаю собачку придержать на 100 микросекунд секунд, отсчитывать микросекунды, а потом сокращать время придерживания собачки и смотреть, к чему это дело стремится.
|
Ого... очень интересные результаты. Взависимости от временного шага, при 10 микросекундах собака будет в 11.622. При 1 микросекунде, собака будет в 10.576
-----------------
-=*=-
|
|
|
|
17-01-2006, 19:30
|
#20
|
|
зеленый и колючий
Сообщений: 1,379
Проживание:
Регистрация: 25-06-2003
Status: Offline
Репутация: 10
|
Как бы не оказалось, что предела не существует. Какой-нибудь sin(1/x), x-->0. Бывает же такое
|
|
|
|
17-01-2006, 19:40
|
#21
|
|
[Mon]
Сообщений: 10,259
Проживание: virtual
Регистрация: 06-02-2004
Status: Offline
Репутация: 42
|
Да, но, практически, данный результат программы означает, что без аналитечиского решения через формулу предела точное местоположение определить крайне сложно.
-----------------
-=*=-
|
|
|
|
17-01-2006, 19:41
|
#22
|
|
зеленый и колючий
Сообщений: 1,379
Проживание:
Регистрация: 25-06-2003
Status: Offline
Репутация: 10
|
А ты сперва докажи, что предел существует
|
|
|
|
17-01-2006, 19:47
|
#23
|
|
просто зверь
Сообщений: 6,244
Проживание:
Регистрация: 28-07-2004
Status: Offline
Репутация: 14
|
zuber,
есть такие понятия "устойчивое решение" и "неустойчивое решение". Вполне применимы к численным методам решений, в частности к этому.
Последнее редактирование от ank : 17-01-2006 в 19:58.
|
|
|
|
| Опции темы |
Поиск в этой теме |
|
|
|
| Опции просмотра |
Оценка этой теме |
Линейный вид
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
|
|
|