所有的树都有6个分支,距离为1。http://www2.math.su.se/~per/files/allTrees.pdf
所以,鉴于描述/表示,我想找到一些 算法 </跨度> 判断它是否是对称的真实 对应于Schroedinger方程中的特殊种类,它有很好的属性 量子 </跨度> 力学)。
由于您已经有一个算法来构造树的点集,您只需要确定点集是否具有翻转对称性。理想情况下,对于非理性点,您的集合是按符号计算的(并且以sin(theta),cos(theta)表示),这应该没问题,因为您似乎使用了Mathematica。
您现在想知道您的点集是否具有关于某个轴的对称性,因此将翻转/旋转变换表示为矩阵 的 一个 强> ,我们有{x'} = 的 一个 强> {X}。对后映像集{x'}进行排序(使用表达式而不是数值),并与原始点集{x}进行比较。如果没有1-1的对应关系,那么你没有对称性,否则你就没有对称性。
我认为有一个mathematica函数来查找集合中的唯一表达式(例如Unique [beforeImage] == Unique [afterImage])
你能否更好地定义树的对称性是什么意思?
你先说出来
“这些部门生活在这个综合体中 平面,对于n均匀,扇区0和 n / 2被实轴一分为二,并且 扇区间隔均匀。“
并且你想找到对称性
实际,想象和旋转180度
我会期望对称性将是纯粹几何的,但是你也会在对贾斯汀的答案的评论中说
绘制树也没有规范的方法, 而我的绘图算法并不尊重所有可能的 树可以拥有的对称性
如果不能在平面上唯一定义树顶点的位置,那么如何查找几何对称?此外,在你给出的许多图(N = 6,偶数)中,扇区0和3没有被x轴(实轴)一分为二,所以我认为你自己的图纸是错误的。
我没有时间实现这个,也许这里的某个人可能会更进一步:
首先按象限划分交叉点,这应该产生4棵树。 {Tpp,Tmp,Tmm,Tpm}(p表示加号,m表示负数)。现在检查对称性似乎是一个有向广度的第一次遍历:
我的mathematica已经有一段时间了,所以这些都不会编译
CheckRealFlip[T_] := And[TraverseCompare[Tpp[T], Tpm[T]], TraverseCompare[Tmp[T], Tmm[T]]; CheckImFlip[T_] := And[TraverseCompare[Tpp[T], Tmp[T]], TraverseCompare[Tpm[T], Tmm[T]];
TraverseCompare使用沿着一棵树的呼吸首先遍历检查树的结构,并且沿着另一棵树首先遍历逆序宽度。 (如下所示,但这不起作用)。
TraverseCompare[A_, B_] := Size[A] == Size[B] && Apply[TraverseCompare, Children[A], Reverse[Children[B]];