Числа и ввод · 34 из 43
Жюлиа в движении
У каждого числа c — своё множество Жюлиа: при одном c выходит «кролик», при другом — «дракон», при третьем — пыль. Если вести c медленно по кругу, картинка перетекает из одной формы в другую, и получается заставка, которую в девяностые крутили на выставках компьютерной графики. Нужен один кадр этой заставки — сетка чисел, а кадры по кругу соберёт показ.
Что сделать
Посчитайте кадр множества Жюлиа для данного c: для каждой точки сетки — сколько шагов z = z² + c она держится в круге радиуса 2.
Что приходит
cxиcy— действительная и мнимая части числа cshirinaиvysota— сколько точек в сетке по горизонтали и по вертикалиpredel— больше стольких шагов не считать
Что вернуть
Список из vysota рядов по shirina целых чисел, верхний ряд первым: в каждой точке — число шагов до вылета, но не больше predel.
Допишите функцию kadr_zhyulia в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
kadr_zhyulia(-1, 0, 4, 3, 20) — c = −1, сетка 4 × 3. Средний ряд лежит на оси x: его точки −1,2, −0,4, 0,4 и 1,2 не вылетают за 20 шагов — у всех 20. Точки верхнего и нижнего рядов улетают за два-три шага: [[2, 3, 3, 2], [20, 20, 20, 20], [2, 3, 3, 2]].
kadr_zhyulia(-1, 0, 4, 3, 20)
[[2, 3, 3, 2], [20, 20, 20, 20], [2, 3, 3, 2]]
Сетка покрывает прямоугольник: x — от −1,6 до 1,6, y — от 1 до −1 (сверху вниз). Точка берётся в середине своей клетки: x = −1,6 + 3,2 · (i + 0,5) / shirina, y = 1 − 2 · (j + 0,5) / vysota, где i — номер столбца, j — номер ряда, с нуля.
Для точки: z = x + yi. Пока шагов меньше predel и |z| ≤ 2, сделать шаг z = z² + c и прибавить один к счёту. Ответ для точки — счёт. Точка, которая не вылетела за predel шагов, получает predel.
Удобно взять комплексные числа Python: complex(x, y), abs(z).
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.