Итак, я выполнил несколько упражнений из экзамена на аттестат зрелости, и было одно, чтобы нарисовать дракона-хейвея.
Программа должна фокусироваться на двух парах переменных:
x '= -0,4 * x - 1
y' = -0,4 * y + 0,1
и
x '= 0,76 * x -0,4 * y
y '= 0,4 * x + 0,76 * y
В начале x = 1 и y = 1, затем подсчитайте новые x и y, используя формула случайно взятой пары, показанная выше (шанс 50/50) и отметьте точку (x, y) на графике. Все повторяют 5000 раз.
Итак, я попробовал его, используя python, но проблема в том, что когда я наконец нарисовал дракона, на графике я мог видеть, что это не был один постоянный рисунок, но у него были пустые области, как на фотографии ниже , Это все еще приемлемо или я допустил ошибку? Есть ли способ, чтобы он выглядел как правильный?
Мой график
Правильный для сравнения
Мой код:
import matplotlib.pyplot as plt
import random
x = 1
y = 1
sumx = 0
sumy = 0
max_x = 0
max_y = 0
for i in range(5000):
rand = random.randint(0, 1)
if rand == 0:
x = (-0.4 * x) - 1
y = (-0.4 * y) + 0.1
else:
x = (0.76 * x) - (0.4 * y)
y = (0.4 * x) + (0.76 * y)
if i >= 100:
sumx += x
sumy += y
plt.plot(x, y, c='black', marker='P', markersize=6)
if x > max_x:
max_x = x
if y > max_y:
max_y = y
plt.show()
avg_x = sumx / 5000
avg_y = sumy / 5000
print(round(avg_x, 1), round(avg_y, 1))
print('maximum x: ' + str(max_x) + ', maximum y: ' + str(max_y))