Поделитесь своими знаниями, ответьте на вопрос:
Решите на python(алгоритм решения есть, осталось реализовать в коде) Андрей изучает социальные сети и пытается определить скрытые атрибуты пользователей по их друзьям. Поскольку Андрей - профессиональный программист, то он хочет протестировать свою программу прежде чем верить ее результатам. Но для этого требуется много разных графов, похожих на социальные сети. Андрей хочет получать графы с разным количеством пользователей (т. е. вершин графа) и разными отношениями дружбы (т. е. ребрами графа Отношение дружбы ненаправленное. В графе не должно быть петель и кратных ребер. Андрей будет задавать желаемое количество вершин и желаемое среднее количество ребер, инцидентных вершине. Его устроит даже граф, если эти его характеристики будут отличаться от заданных, но не более чем на 20%.Ваша программа получает на вход 2 целых положительных числа - N - количество вершин и K - среднее количество ребер у вершины (1≤ N ≤ 200, 0 ≤ K ≤ N - 1)Программа печатает граф описанного вида. В первой строке печатается количество вершин графа. Начиная со следующей строки, печатается матрица смежности графа по строкам. Вершины нумеруются последовательно, начиная с 0. Элемент матрицы смежности равен 1, если соответствующее ребро входит в граф, и 0, иначе. Элементы разделяются пробельными символами. Элементы главной диагонал матрицы смежности должны равняться 0. Если графа описанного вида не существует, программа ничего не печатает.Рассмотрим неориентированный граф с количеством вершин M и количеством ребер L. Такой граф точно существует, если 0<=L<=M(M-1)/2. Итого для целых чисел M и L должно выполняться0<=L<=M(M-1)/20.8K<=L<=1.2K0.8N<=M<=1.2NM и L можно найти простым перебором.Если найдены целые числа M и L, удовлетворяющие этим условиям, то строим граф с M вершинами и L ребрами.
var
a: array [1..30] of Word;
i, c, sum: Word;
begin
Randomize;
for i := 1 to 30 do
a[i] := Random (76);
for i := 1 to 30 do
Write (a[i], ' ');
WriteLn;
for i := 1 to 30 do
if (a[i] >= 10) and (a[i] <= 35) then begin
Inc (c);
sum := sum + a[i];
Write (a[i], ' ')
end;
WriteLn;
WriteLn ('Кол-во чисел из диапазона [10; 35]: ', c);
Write ('Сумма чисел из диапазона [10; 35]: ', sum);
end.