Автор оригинала: Robin Andrews.
Случайные графики в Python для уровня компьютерной науки и за пределами
Ноутбук Jupyter ниже показывает реализацию алгоритма для генерации случайного неопрященного, невосстановленного графика. Алгоритм использует Erdős-Rényi Model , Но вам не нужно знать об этом, чтобы понять, как он работает – Pseudo Come Take совершенно ясен, хотя вам, возможно, понадобится потратить немного времени, понимая именно то, что он передает. Это может быть, что смотреть на код Pythone сначала даст вам больше понимания из-за чудесной ясности синтаксиса Python.
Если вы не используете ноутбуки Jupyter, не беспокойтесь, код будет работать просто от вашего обычного IDE, до тех пор, пока вы устанавливаете ettewxx
пакет и удалить %
команды (например, % matplotlib inline
) для информации о установке пакетов Python см. здесь Отказ
Основная цель этой статьи состоит в том, чтобы получить вас и запустить создание случайных графиков, чтобы помочь вам с изучением или преподаванию алгоритмов для О уровень информатики и за пределами Отказ Вы можете использовать код для создания образцов графиков, чтобы углубить ваше понимание алгоритмов графов, таких как Алгоритм Dijkstra и Звездный алгоритм или генерировать вопросы для ваших студентов.
С точки зрения Уровень компьютерной науки Это будет более актуальным для тех, кто учится или обучает ОКР или AQA Силлабус, чем Кембриджский.
Обратите внимание, в код, N
требуемое количество узлов и P
Это вероятность того, что край существует между заданной парой узлов.
%load_ext nb_black
%matplotlib inline import matplotlib.pyplot as plt import networkx as nx from itertools import combinations from random import random def ER(n, p): V = set([v for v in range(n)]) E = set() for combination in combinations(V, 2): a = random() if a < p: E.add(combination) g = nx.Graph() g.add_nodes_from(V) g.add_edges_from(E) return g n = 10 p = 0.4 G = ER(n, p) pos = nx.spring_layout(G) nx.draw_networkx(G, pos) plt.title("Random Graph Generation Example") plt.show()
Есть больше статей/видео на работе с Графики и/или Jupyter ноутбуки В Python здесь на блоге Compuzucademy. Например
- Графики в Python для уровня компьютерной науки
- https://compucademy.net/python-for-gcse-science-and-maths/