Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 12.08.2021
Сообщений: 2
1

Определить сколько секунд ребенок будет в поле зрения взрослого и сколько секунд взрослый будет в поле зрения ребенка

12.08.2021, 17:37. Показов 1258. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У ребенка хорошее зрение, он может заметить взрослого за 80 метров. А у взрослого зрение хуже, он может заметить ребенка за 40 метров. Нужно написать программу на С++ которая позволит экспериментально определить (1) сколько секунд ребенок будет в поле зрения взрослого и (2) сколько секунд взрослый будет в поле зрения ребенка, если они будут 10 минут ходить по полю 300 х 300 метров. При этом в каждую секунду ребенок и взрослый может перемещать на один метр по горизонтали или вертикали(рандомно).
Примечания:
В начале эксперимента взрослый и ребенок находятся в противоположных углах квадрата.
Если взрослый или ребенок выходит за пределы поля, то он появляется с противоположной его стороны
Повторить эксперимент 100 раз чтобы понять среднее время видимости


Прошу помочь с задачей, ниже условия выложу код на питоне, вдруг кому-то для примера понадобится

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
from math import sqrt
import random
def walk() :
# # Инициализируем переменные
# i - время
# r - секунды, когда взрослый находился в зоне видимости ребенка
# k - секунды, когда ребенок находился в зоне видимости взрослого
# reb - зона видимости ребенка
# vzr - зона видимости взрослого
# x1 - координата взрослого на оси X
# y1 - координата взрослого на оси Y
# х2 - координата ребенка на оси Х
# y2 - координата ребенка на оси Y
#1)Прибавляем к времени 1 секунду
#2)Рассматриваем вариант конца времени(tmax=t?)
#3)Сгенерируем число от 1 до 4(для ребенка и взрослого)
#4)Обновляем координаты, обращая внимание на направление
#5)Рассматриваем варианты выхода субъекта за территорию(для ребенка и взрослого)
#6)Вычисляем расстояние между взрослым и ребенком
#7)Варианты видимости ребенка взрослого и наоборот
 
    reb = 80
    vzr = 40
    r = 0
    k = 0
    x = 300
    y = 300
    x1 = 1
    x2 = 300
    y1 = 1
    y2 = 300
    c = 0
 
    def distance(x1, y1, x2, y2):
        c = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
    #print(c)
        return c
 
#1 и 2
    t = 1
    while t <= 600:
 
        t += 1
 
    #3
        object1 = random.randint(1, 4)
 
        object2 = random.randint(1, 4)
 
    #пусть 1- движение вправо, 2-вниз, 3-влево, 4-вверх. Далее в пункте 4 в зависимости от сгенерированного числа нужно
    #обновлять координаты с помощью заявления "if"
 
    #4
        if object1 % 2 == 1:
            x1 = x1 + 1
    #elif object1 == 3:
        #x1 = x1 - 1
 
        elif object1 % 2 == 0:
            y1 = y1 + 1
    #elif object1 == 4:
        #y1 = y1 + 1
 
        if object2%2 == 1:
            x2 = x2 - 1
    #elif object2 == 3:
        #x2 = x2 - 1
 
        elif object2%2 == 0:
            y2 = y2 - 1
    #elif object2 == 4:
        #y2 = y2 + 1
 
    #5
        if x1 == 301:
            x1 = 1
        elif x1 == -1:
            x1 = 299
        if y1 == 301:
            y1 = 1
        elif y1 == -1:
            y1 = 299
        if x2 == 301:
            x2 = 1
        elif x2 == -1:
            x2 = 299
        if y2 == 301:
            y2 = 1
        elif y2 == -1:
            y2 = 299
    #6
        c = distance(x1, y1, x2, y2)
    #7
 
        if c <= reb:
            r = r + 1
 
        if c <= vzr:
            k = k + 1
    
    return r, k
 
def fun() :
    
    # число экспериментов
    n = 100
    # символ плюс-минус
    ss = u'\u00B1' 
    # довер. интервал
    p = 0.95
    #постоянная Стьюдента
    ts = 1.644854
    
    midr = midk = rw2 = kw2 = 0
    
    for _ in range(n) :
        # время "видения" в эксперименте
        rw, kw = walk()
        # суммарное время "видения"
        midr += rw
        midk += kw
        
        rw2 += rw*rw 
        kw2 += kw*kw 
        
    # среднее время "видения"
    midr = midr / n 
    midk = midk / n 
    
    # оценка стандарта
    sr = sqrt((rw2 - n * midr*midr) / (n - 1))
    sk = sqrt((kw2 - n * midk*midk) / (n - 1))
    
    # довер. интервал
    pin_r = sr * ts / sqrt(n)
    pin_k = sk * ts / sqrt(n)
    
    print('В среднем при заданных условиях\n ребёнок видит взрослого \n{:.3f} {} {:.3f} минут\n '.format(midr, ss, pin_r))
    print('В среднем при заданных условиях\n взрослый видит ребёнка \n{:.3f} {} {:.3f} минут '.format(midk, ss, pin_k))
    
fun()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2021, 17:37
Ответы с готовыми решениями:

Определить, сколько секунд ребенок будет в поле зрения взрослого...
У ребенка хорошее зрение, он может заметить взрослого за 80 метров. А у взрослого зрение хуже, он...

Определить, сколько амеб будет через N секунд?
Через каждые пять секунд каждая амеба делиться на две амебы. Изначально была 1 амеба. Сколько амеб...

Определить, сколько секунд будет работать проверка на всех возможных перемешиваниях колоды
Вася очень любил играть в карты. Однажды он решил написать программу, которая за него будет...

Узнать сколько времени будет через 40 секунд
Здравствуйте. Мне нужно сделать структуру, в которой я ввожу данные разного типа...

1
0 / 0 / 0
Регистрация: 12.08.2021
Сообщений: 2
13.08.2021, 12:07  [ТС] 2
Почему-то неправильно работает программа.
Условие задачи:
У ребенка хорошее зрение, он может заметить взрослого за 80 метров. А у взрослого зрение хуже, он может заметить ребенка за 40 метров. Нужно написать программу на С++ которая позволит экспериментально определить (1) сколько секунд ребенок будет в поле зрения взрослого и (2) сколько секунд взрослый будет в поле зрения ребенка, если они будут 10 минут ходить по полю 300 х 300 метров. При этом в каждую секунду ребенок и взрослый может перемещать на один метр по горизонтали или вертикали(рандомно).
Примечания:
В начале эксперимента взрослый и ребенок находятся в противоположных углах квадрата.
Если взрослый или ребенок выходит за пределы поля, то он появляется с противоположной его стороны
Повторить эксперимент 100 раз чтобы понять среднее время видимости



Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <algorithm>
#include <ctime>
using namespace std;
 
 
/*
# # Инициализируем переменные
# i - время
# r - секунды, когда взрослый находился в зоне видимости ребенка
# k - секунды, когда ребенок находился в зоне видимости взрослого
# reb - зона видимости ребенка
# vzr - зона видимости взрослого
# x1 - координата взрослого на оси X
# y1 - координата взрослого на оси Y
# х2 - координата ребенка на оси Х
# y2 - координата ребенка на оси Y
#1)Прибавляем к времени 1 секунду
#2)Рассматриваем вариант конца времени(tmax=t?)
#3)Сгенерируем число от 1 до 4(для ребенка и взрослого)
#4)Обновляем координаты, обращая внимание на направление
#5)Рассматриваем варианты выхода субъекта за территорию(для ребенка и взрослого)
#6)Вычисляем расстояние между взрослым и ребенком
#7)Варианты видимости ребенка взрослого и наоборот
*/
 
double length( int x1, int y1, int x2, int y2 )
{
    return sqrt( (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) );
}
 
int walk(){
    int i=0, r=0, k=0, reb =80,vzr =40,x=300,y=300,x1=1,x2=300,y1=1,y2=300,c=0;
    int t = 1;
    while (t <= 600){
        t += 1;
 
        srand(time(0));
        int object1 = rand() % 4 +1;
        srand(time(0));
        int object2 = rand() % 4 +1;
 
        //4
        if (object1 % 2 == 1){
        x1 = x1 + 1;}
 
        else if (object1 % 2 == 0){
        y1 = y1 + 1;}
 
        if (object2 % 2 == 1){
        x2 = x2 - 1;}
 
        else if (object2 % 2 == 0){
        y2 = y2 - 1;}
        //5
        if (x1 == 301){
        x1 = 1;}
        else if (x1 == -1){
        x1 = 299;}
        if (y1 == 301){
        y1 = 1;}
        else if (y1 == -1){
        y1 = 299;}
        if (x2 == 301){
        x2 = 1;}
        else if (x2 == -1){
        x2 = 299;}
        if (y2 == 301){
        y2 = 1;}
        else if (y2 == -1){
        y2 = 299;}
 
        //6
        c = length(x1, y1, x2, y2);
 
        //7
        if (c <= reb){
        r = r + 1;}
        else {return r;}
 
        if (c <= vzr){
        k = k + 1;}
        else {return k;}
 
    }
}
int main(){
    int n = 100, p=0.95,ts = 1.644854;
    int midr=0,midk=0,rw2=0,kw2=0;
    for(int l=0;l<=n;n++){
        int rw = walk(), kw = walk();
        midr += rw;
        midk += kw;
        rw2 += rw*rw;
        kw2 += kw*kw;
    }
    midr = midr / n;
    midk = midk / n;
    int sr = sqrt((rw2 - n * midr*midr) / (n - 1));
    int sk = sqrt((kw2 - n * midk*midk) / (n - 1));
    int pin_r = sr * ts / sqrt(n);
    int pin_k = sk * ts / sqrt(n);
    cout << midr << "+-" << pin_r;
    cout << midk << "+-" << pin_k;
    return 0;
}
0
13.08.2021, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2021, 12:07
Помогаю со студенческими работами здесь

Считая, что прошло T секунд от начала суток, определить, сколько полных часов (H), минут (M) и секунд (S) прошло
Можете пожалуйста написать решение на ассемблере. Желательно под emu 8086 1) Пусть T -...

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

Field Of view (поле зрения)
Добрый день. Есть 2 скрипта которые по разному создают поле зрения для ИИ-врага в игре. Первый...

Алгоритм Хаффмана. Определить, сколько будет будет бит после кодирования
жужжит нaд жимолостью жук тяжелый нa жуке кожух Пробелы тоже кодируются.

Поле зрения игрока в виде сверху
Как сделать чтобы предметы находящиеся за препятствиями или вне поля зрения (сзади например) были...

Определить, на какой высоте мяч будет через T секунд
Помогите пожалуйста с задачей: Футболист ударом ноги посылает мяч вертикально вверх м высоты 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru