n-碳脂肪族烷烃是一棵由 n 个节点组成的无根树,其中每个节点的度数最多为 4。例如,see this对于一些 n 的低值的枚举列表。
我正在寻找一种算法,在给定 n 的情况下计算此类 n-碳脂肪族烷烃的数量。
我有seen this已经在化学堆栈交换中。我还想到了动态规划,即从较小的组件构建更大的图,但我无法处理对相同异构体的过度计数。
澄清:碳只是一个比喻。我不想考虑C16和C17的不稳定性,也不关心立体异构
最佳答案
所以标准方法是使用 Redfield–Pólya Theorem也称为 Pólya 枚举定理。然而,它不是很“算法”——你有代码 like this (Mathematica、Haskell 或其中一种 Python 版本)。
rosettacode 页面还描述了一种使用 canonical checking 的更直接的方法以避免重复。该算法是有序生成的一种特殊形式(我认为),仅适用于没有边颜色顶点和最大价数为 4 的树。
关于algorithm - 计算正碳脂肪族烷烃的异构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36825918/