Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- # Введём значения координат полёта снаряда вручную
- x_list = input()
- y_list = input()
- x_target = float(input())
- y_target = float(input())
- # Переведем эти значения в массив вещественных чисел, внутри переведя в список вещественных чисел
- x_array = np.array([float(i) for i in x_list.split()])
- y_array = np.array([float(i) for i in y_list.split()])
- # 3. Построим тракторию движения снаряда, используя в качестве линии тренда полином второй степени,
- # Найдём его коэффициенты:
- a = np.polyfit(x_array, y_array, 2) # на выходе массив
- # 4. Cоздадим ф-цию для вычисления значений полинома второй степени в точке x, разместим её в начале программы, после импорта модуля:
- def get_trand(x, a):
- y = a[0] * x ** 2 + a[1] * x + a[2] # подставляем элементы массива сразу в формулу
- return y
- # 5. C помощью полученного тренда узнаем, на какой высоте находилась пушка в момент выстрела
- # Т.е. в точке 0 по оси ОХ.
- # Мы можем это узнать, т.к. полином позволяет прогнозирование в обе стороны
- h_zero = get_trand(0, a)
- # 6. Вычислим, на какой высоте будет находится снаряд в точке по оси OX, где расположена мишень
- h_target = get_trand(x_target, a) # из функции тренда получим высоту нахождения мишени
- #Затем сравним полученный результат с с радиусом мишени и --->
- delta_h = abs(y_target - h_target)
- # Выведем на экран полученный результат c форматным выводом:
- if delta_h <= 0.5:
- print("h0 = %6.2f, %2s" % (h_zero, 'yes'))
- else:
- print("h0 = %6.2f, %2s" % (h_zero, 'no'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement