Числа и ввод · 28 из 37
Множество Мандельброта
Самая знаменитая картинка математики считается одной строкой: берут точку c на плоскости, начинают с z = 0 и повторяют z = z² + c. У одних точек z улетает в бесконечность, у других кружит рядом с нулём. Раскрась каждую точку по тому, как быстро она «убежала», — и выйдет множество Мандельброта с бесконечно сложной каймой.
Что сделать
Посчитайте для точки (x, y), за сколько шагов z = z² + c уходит дальше 2 от нуля; не ушла за predel шагов — верните predel.
Что приходит
xиy— точка плоскости: c = x + y·ipredel— сколько шагов считать самое большее
Что вернуть
Целое число — номер шага, после которого |z| стало больше 2, или predel.
Допишите функцию mandelbrot в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Точка (1, 1): после шага 0 z = 1 + 1i, |z| = 1,41 — ещё рядом; после шага 1 z = 1 + 3i, |z| = 3,16 — убежала. Ответ 1.
mandelbrot(1, 1, 50)
1
c = x + y·i, z = 0. Шаги n = 0, 1, …, predel − 1: z = z² + c; если после этого |z| > 2 — вернуть n. Все predel шагов |z| ≤ 2 — вернуть predel. Ровно 2 — ещё не «убежала»: |z| > 2, а не ≥ 2. Комплексные числа в Python есть: complex(x, y), z * z, abs(z). Можно и двумя дробными числами: (a + bi)² = a² − b² + 2ab·i.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.