Числа и ввод · 31 из 37
Планета, которая не улетает
Аркадий Семёнович обещал кружку солнечную систему на проекторе. Звезда стоит в середине, планета летит вокруг, и всё, что её держит, — притяжение, обратное квадрату расстояния. Числа подобраны так, чтобы сила тяготения звезды была ровно единицей: никаких 6,67 · 10⁻¹¹.
Что сделать
Сделайте один шаг полёта планеты вокруг звезды, неподвижной в точке (0, 0).
Что приходит
xиy— где планетаvxиvy— её скорость по осямdt— шаг времени
Что вернуть
Четвёрку (x, y, vx, vy) через dt: сначала скорость прибавляет ускорение −x / r³ и −y / r³, потом положение — новой скоростью.
Допишите функцию shag_orbity в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Планета в точке (1, 0) летит вверх со скоростью 1, шаг 0,01. До звезды r = 1, ускорение — (−1, 0), и скорость становится (−0,01, 1). Положение сдвигается уже ею: x = 1 − 0,0001, y = 0,01. Ответ — (0.9999, 0.01, -0.01, 1.0).
shag_orbity(1.0, 0.0, 0.0, 1.0, 0.01)
(0.9999, 0.01, -0.01, 1.0)
Звезда неподвижна в точке (0, 0). Функция принимает положение планеты x, y, её скорость vx, vy и шаг времени dt (дробные числа). Возвращает кортеж (x, y, vx, vy) через dt:
- r — расстояние от звезды: корень из x² + y²;
- ускорение: ax = −x / r³, ay = −y / r³;
- сначала скорость: vx += ax · dt, vy += ay · dt;
- потом положение — НОВОЙ скоростью: x += vx · dt, y += vy · dt. Планета в звезду не попадает: r всегда больше нуля.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.