На языке PYTHON Андрей изучает социальные сети и пытается определить скрытые атрибуты пользователей по их друзьям. Поскольку Андрей - профессиональный программист, то он хочет протестировать свою программу прежде чем верить ее результатам. Но для этого требуется много разных графов, похожих на социальные сети. Андрей хочет получать графы с разным количеством пользователей (т.е. вершин графа) и разными отношениями дружбы (т.е. ребрами графа). Отношение дружбы ненаправленное. В графе не должно быть петель и кратных ребер. Андрей будет задавать желаемое количество вершин и желаемое среднее количество ребер, инцидентных вершине. Его устроит даже граф, если эти его характеристики будут отличаться от заданных, но не более чем на 20%.
Ваша программа получает на вход 2 целых положительных числа - N - количество вершин и K - среднее количество ребер у вершины (1≤ N ≤ 200, 0 ≤ K ≤ N - 1)
Программа печатает граф описанного вида. В первой строке печатается количество вершин графа. Начиная со следующей строки, печатается матрица смежности графа по строкам. Вершины нумеруются последовательно, начиная с 0. Элемент матрицы смежности равен 1, если соответствующее ребро входит в граф, и 0, иначе. Элементы разделяются пробельными символами. Элементы главной диагонал матрицы смежности должны равняться 0. Если графа описанного вида не существует, программа ничего не печатает
Хотя слово «центнер» немецкого происхождения и означает «сто мер», традиционно в Германии в старину за меру веса принимали не килограмм, а фунт, который соответствует приблизительно 500 граммам. То есть 100 фунтов — 50 килограммов. Этой мерой веса в старину пользовались люди, занятые в сельском хозяйстве: например, центнер картофеля — полный мешок, 50 кг. В разных частях Германии центнер был разный: в Баварии, например, — 56 кг; в Брауншвейге — 46,77 кг; в Саксонии — 51,4 кг. Сейчас в Германии берётся усреднённая величина 50 кг[1].
:)
всего доброго
Из комбинаторики известно, что, в случае непозиционного кода, количество комбинаций (кодов) n-разрядного кода является числом сочетаний с повторениями, равно биномиальному коэффициенту:
{\displaystyle {n+k-1 \choose k}=(-1)^{k}{-n \choose k}={\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}}{n+k-1 \choose k}=(-1)^{k}{-n \choose k}={\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}, [возможных состояний (кодов)], где:
{\displaystyle n}n — количество элементов в данном множестве различных элементов (количество возможных состояний, цифр, кодов в разряде),
{\displaystyle k}k — количество элементов в наборе (количество разрядов).
В двоичной системе кодирования (n=2) количество возможных состояний (кодов) равно :
{\displaystyle {\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}={\frac {\left(2+k-1\right)!}{k!\left(2-1\right)!}}={\frac {\left(k+1\right)!}{k!1!}}=k+1}\frac{\left(n+k-1\right)!}{k!\left(n-1\right)!}=\frac{\left(2+k-1\right)!}{k!\left(2-1\right)!}=\frac{\left(k+1\right)!}{k!1!}=k+1, [возможных состояний (кодов)], то есть
описывается линейной функцией:
{\displaystyle N_{kp}(k)=k+1}N_{{kp}}(k)=k+1, [возможных состояний (кодов)], где
{\displaystyle k}k — количество двоичных разрядов.
Например, в одном 8-битном байте (k=8) количество возможных состояний (кодов) равно:
{\displaystyle N_{kp}(k)=k+1=8+1=9}N_{{kp}}(k)=k+1=8+1=9, [возможных состояний (кодов)].
В случае позиционного кода, число комбинаций (кодов) k-разрядного двоичного кода равно числу размещений с повторениями:
{\displaystyle N_{p}(k)={\bar {A}}(2,k)={\bar {A}}_{2}^{k}=2^{k}}N_{{p}}(k)={\bar {A}}(2,k)={\bar {A}}_{2}^{k}=2^{k}, где
{\displaystyle \ k}\ k — число разрядов двоичного кода.
Объяснение: