Решил задачу, и задача кода определить время, сколько секунд видит взрослый ребенка и наоборот,но каждый раз выводит 600 сек:
У ребенка хорошее зрение, он может заметить взрослого за 80 метров. А у взрослого зрение хуже, он может заметить ребенка за 40 метров. Нужно написать программу на Python которая позволит экспериментально определить (1) сколько секунд ребенок будет в поле зрения взрослого и (2) сколько секунд взрослый будет в поле зрения ребенка, если они будут 10 минут ходить по полю 300 х 300 метров. При этом в каждую секунду ребенок и взрослый может перемещать на один метр по горизонтали или вертикали.
Примечания:
В начале эксперимента взрослый и ребенок находятся в противоположных углах квадрата.
Если взрослый или ребенок выходит за пределы поля, то он появляется с противоположной его стороны
У ребенка хорошее зрение, он может заметить взрослого за 80 метров. А у взрослого зрение хуже, он может заметить ребенка за 40 метров. Нужно написать программу на Python которая позволит экспериментально определить (1) сколько секунд ребенок будет в поле зрения взрослого и (2) сколько секунд взрослый будет в поле зрения ребенка, если они будут 10 минут ходить по полю 300 х 300 метров. При этом в каждую секунду ребенок и взрослый может перемещать на один метр по горизонтали или вертикали.
Примечания:
В начале эксперимента взрослый и ребенок находятся в противоположных углах квадрата.
Если взрослый или ребенок выходит за пределы поля, то он появляется с противоположной его стороны
Код:
# Инициализируем переменные
# i - время
# r - секунды, когда взрослый находился в зоне видимости ребенка
# k - секунды, когда ребенок находился в зоне видимости взрослого
# reb - зона видимости ребенка
# vzr - зона видимости взрослого
# x1 - координата взрослого на оси X
# y1 - координата взрослого на оси Y
# х2 - координата ребенка на оси Х
# y2 - координата ребенка на оси Y
#1)Прибавляем к времени 1 секунду
#2)Рассматриваем вариант конца времени(tmax=t?)
#3)Сгенерируем число от 1 до 4(для ребенка и взрослого)
#4)Обновляем координаты, обращая внимание на направление
#5)Рассматриваем варианты выхода субъекта за территорию(для ребенка и взрослого)
#6)Вычисляем расстояние между взрослым и ребенком
#7)Варианты видимости ребенка взрослого и наоборот
from math import *
import random
import math
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)
#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 == 1:
x1 = x1 + 1
elif object1 == 3:
x1 = x1 - 1
if object1 == 2:
y1 = y1 - 1
elif object1 == 4:
y1 = y1 + 1
if object2 == 1:
x2 = x2 + 1
elif object2 == 3:
x2 = x2 - 1
if object2 == 2:
y2 = y2 - 1
elif object2 == 4:
y2 = y2 + 1
#5
if x1 >= 301:
x1 = 1
elif x1 <= 0:
x1 = 300
if y1 >= 301:
y1 = 1
elif y1 <= 0:
y1 = 300
if x2 >= 301:
x2 = 1
elif x2 <= 0:
x2 = 300
if y2 >= 301:
y2 = 1
elif y2 <= 0:
y2 = 300
#6
distance(x1, y1, x2, y2)
#7
if c <= reb:
r = r + 1
if c <= vzr:
k = k + 1
print(r)
print(k)
Последнее редактирование: