Mathematica 中的约翰逊图

Johnson graphs in Mathematica

我有一个关于在 Mathematica 软件中定义 Johnson 图的问题。我在 Whosebug 中找到了它并且有效:

johnsonmatrix[n_, k_] := 
 Module[{s = Select[Subsets[Range[n]], Length[#] == k &]}, {s, 
    MatrixForm[
    Table[If[Length[Intersection[s[[i]], s[[j]]]] == k - 1, 1, 0], {i,
       Length[s]}, {j, Length[s]}]]}]

但是我不能使用它的矩阵。我怎么只能有这个roll的邻接矩阵?事实上,我想在 Mathematica 软件中定义 Johnson 图,然后找到这个图的一些属性,比如它的谱。如果有人能帮助我,我将不胜感激。

除非您足够了解其含义,否则大多数时候使用任何 *Form 函数,如 MatrixFormDisplayForm 等等,等等,只是为了转换一些东西可以用来计算一些漂亮的东西,但不能用于任何进一步的计算。

尝试摆脱 MatrixForm,看看这是否会给您一些想法。

johnsonmatrix[n_,k_]:=Module[{s=Select[Subsets[Range[n]],Length[#]==k&]},
 {s,
  matrix=Table[If[Length[Intersection[s[[i]],s[[j]]]]==k-1,1,0],{i,Length[s]},{j,Length[s]}],
  adjacencygraph=AdjacencyGraph[matrix],
  adjacencymatrix=AdjacencyMatrix[adjacencygraph];Normal[adjacencymatrix],
  eigenvalues=Eigenvalues[adjacencymatrix],
  spectrum=Max@@Abs[eigenvalues]
}]
johnsonmatrix[5,3]

请仔细检查每一个细节,以确保我没有犯错。