Стандартная библиотека · 12 из 17
Круги на воде
Бросьте в пруд два камня — от каждого побегут круги, и там, где гребень встречает гребень, волна вдвое выше, а где гребень встречает впадину — вода стоит. Узор из таких полос называется интерференцией; на заставках его рисуют, складывая волны от каждого источника.
Что сделать
Сложите в точке (x, y) волны от всех источников: каждая — косинус от расстояния до своего источника.
Что приходит
xиy— точка, где смотрим на водуistochniki— список пар (x, y): куда упали камни; бывает пустымdlina— длина волны: расстояние между соседними гребнями
Что вернуть
Число — сумма волн в точке; без источников — 0.
Допишите функцию volny в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Источник один, в (0, 0), длина волны 10; точка (5, 0) — на полволны от источника: cos(2π · 5 / 10) = cos(π) = -1.0, впадина.
volny(0, 0, [(0, 0)], 10)
1.0
Волна от источника (a, b) в точке (x, y): cos(2π · r / dlina), где r = √((x − a)² + (y − b)²) — расстояние. Ответ — сумма по всем источникам. Без источников — 0. π — math.pi; расстояние — math.hypot(x − a, y − b) или через корень.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.