Обновить
0
0

Пользователь

Отправить сообщение
import time
import numpy as np
import matplotlib.pyplot as plt
from numba import jit, prange


@jit(nopython=True, parallel=True, fastmath=True)
def mandelbrot_numba(height, width, max_iter):
    output = np.zeros((height, width), dtype=np.int32)

    for i in prange(height):
        y0 = -1.5 + (i * 3.0) / height
        for j in range(width):
            x0 = -2.0 + (j * 3.0) / width
            x, y = 0.0, 0.0
            iteration = 0

            while (x * x + y * y <= 4.0) and (iteration < max_iter):
                xtemp = x * x - y * y + x0
                y = 2.0 * x * y + y0
                x = xtemp
                iteration += 1

            output[i, j] = iteration

    return output


if __name__ == "__main__":
    height, width = 2000, 2000
    max_iter = 100

    print("Начинаем расчёт фрактала с Numba...")
    start = time.time()
    image = mandelbrot_numba(height, width, max_iter)
    end = time.time()

    print(f"Расчёт занял: {end - start:.2f} секунд")

    plt.figure(figsize=(10, 6))
    plt.imshow(image, cmap='hot', origin='upper')
    plt.title("Множество Мандельброта (Python, наивная реализация)")
    plt.axis('off')
    plt.tight_layout()
    plt.show()

Код без оптимизации отработал за 20.60 секунд, но с оптимизацией (jit) за 1.25 секунд

Спасибо за ответ!

В этом видео Кирилл Маслеников, говорит, о том, что вселенная сжимается до размеров куба с гранями 10 световых лет, я правильно понимаю, что вещество там сжато до такой степени, что больше сжиматься не может, почему из этого вещества не образуется черная дыра, ведь оно там сжато до такой степени, что даже разрушаются нейтронные звезды, значит плотность еще выше или не на столько велика, чтобы образовалась черная дыра? Заранее спасибо за ответ.

Попытал openchat с релятивистскими скоростями сначала на русском:

и потом на английском:

после того как подсказал формулу расчета он почти справился) помогла вторая подсказка)

Информация

В рейтинге
4 776-й
Зарегистрирован
Активность