From 744a0b8410f88c6f4fd6652d960d1dd3bf75fe35 Mon Sep 17 00:00:00 2001 From: timur Date: Fri, 13 Oct 2023 17:07:25 +0300 Subject: [PATCH] TASK2 --- README.md | 0 Task2_excel.xlsx | Bin 0 -> 6955 bytes test_function1.py | 28 ++++++++++++++++++++++++++++ test_function2.py | 30 ++++++++++++++++++++++++++++++ test_function3.py | 24 ++++++++++++++++++++++++ 5 files changed, 82 insertions(+) create mode 100644 README.md create mode 100644 Task2_excel.xlsx create mode 100644 test_function1.py create mode 100644 test_function2.py create mode 100644 test_function3.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Task2_excel.xlsx b/Task2_excel.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..de3548ba9fd85627eae51d75c6cc1b994f10450a GIT binary patch literal 6955 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 VLWFMOFfeG)PZ~58di@Hd{{d?7$ix5u literal 0 HcmV?d00001 diff --git a/test_function1.py b/test_function1.py new file mode 100644 index 0000000..d46c227 --- /dev/null +++ b/test_function1.py @@ -0,0 +1,28 @@ +import time + +def linspace(start, stop, n): + if n == 1: + yield stop + return + h = (stop - start) / (n - 1) + for i in range(n): + yield start + h * i + +def mandelbrot(pmin = -2.5, pmax= 1.5, qmin = -2, qmax= 2, + ppoints = 200, qpoints = 200, max_iterations = 300, infinity_border = 100): + image = [[0 for i in range(qpoints)] for j in range(ppoints)] + for ip, p in enumerate(linspace(pmin, pmax, ppoints)): + for iq, q in enumerate(linspace(qmin, qmax, qpoints)): + c = p + 1j * q + z = 0 + for k in range(max_iterations): + z = z ** 2 + c + if abs(z) > infinity_border: + image[ip][iq] = 1 + break + return image + +tic = time.perf_counter_ns() +image = mandelbrot() +toc = time.perf_counter_ns() +print((toc - tic)/1_000_000_000, "s") diff --git a/test_function2.py b/test_function2.py new file mode 100644 index 0000000..3a17018 --- /dev/null +++ b/test_function2.py @@ -0,0 +1,30 @@ +import time + +def linspace(start, stop, n): + if n == 1: + yield stop + return + h = (stop - start) / (n - 1) + for i in range(n): + yield start + h * i + +def mandelbrot(pmin: float = -2.5, pmax: float = 1.5, qmin: float = -2, qmax: float = 2, + ppoints: int = 200, qpoints: int = 200, max_iterations: int = 300, infinity_border: float = 100) -> list[list[int]]: + + image: list[list[int]] = [[0 for i in range(qpoints)] for j in range(ppoints)] + for ip, p in enumerate(linspace(pmin, pmax, ppoints)): + for iq, q in enumerate(linspace(qmin, qmax, qpoints)): + c: complex = p + 1j * q + z: complex = 0 + for k in range(max_iterations): + z = z ** 2 + c + if abs(z) > infinity_border: + image[ip][iq] = 1 + break + return image + +tic = time.perf_counter_ns() +image = mandelbrot() +toc = time.perf_counter_ns() +print((toc - tic)/1_000_000_000, "s") + diff --git a/test_function3.py b/test_function3.py new file mode 100644 index 0000000..87ab01d --- /dev/null +++ b/test_function3.py @@ -0,0 +1,24 @@ +import time +import numpy as np + +def mandelbrot(pmin = -2.5, pmax = 1.5, qmin = -2, qmax = 2, + ppoints = 200, qpoints = 200, max_iterations = 300, infinity_border= 100): + + image = np.zeros((ppoints, qpoints)) + + for ip, p in enumerate(np.linspace(pmin, pmax, ppoints)): + for iq, q in enumerate(np.linspace(qmin, qmax, qpoints)): + c = p + 1j * q + z = 0 + for k in range(max_iterations): + z = z ** 2 + c + if abs(z) > infinity_border: + + image[ip, iq] = 1 + break + return image + +tic = time.perf_counter_ns() +image = mandelbrot() +toc = time.perf_counter_ns() +print((toc - tic)/1_000_000_000, "s")