2016-04-24 12 views
5

n-炭素脂肪族アルカンは、各ノードの次数が4であるn個のノードからなる非ルーテッドツリーである。例として、see thisは、いくつかの低い値の列挙のリストn。異性体n-炭素脂肪族アルカンの計数

私はこのようなn-炭素脂肪族アルカンの数を計算するためのアルゴリズムを探しています。

私はseen thisを既に化学スタックエクスチェンジで持っています。ダイナミックプログラミング、つまり小さなコンポーネントから大きなグラフを作成することも考えましたが、同じ異性体を過大に扱うことはできません。

明確化:炭素は単なるメタファーです。私はC16とC17の不安定性を考慮する必要もなく、立体異性体も気にしません

+0

これは非常にクールなアルゴリズム問題です。しかし、コードについて直接的なものではないし、すでに試したことを説明するために多くのことをしていないので、あなたの質問に投票する要素があります。数学の交換も考慮する必要があります。 – Gene

+0

@Geneこれはコードではなくアルゴリズムに関するものです。 StackOverflowでは、アルゴリズムに関する質問が受け入れられると思いました。これをcs.stackexchangeに移すことで私が利益を得ると思いますか? –

+2

ここにアルゴリズムが(大きな)場所を持っていることに同意します。最近、コードを含まないアルゴリズムのみの質問を投票する傾向があるようです。何が起こるか見る。もし私が役に立つ答えを考え出すことができたら、私は何かを投稿します。 – Gene

答えて

3

したがって、標準的なアプローチはPolyaの列挙定理とも呼ばれるRedfield–Pólya Theoremを使用することです。しかしそれはあまりアルゴリズム的ではありません - コードlike this(Mathematica、Haskell、またはPythonバージョンの1つ)を持っています。

rosettacodeページには、重複を避けるためにcanonical checkingを使用するより直接的な方法も記載されています。このアルゴリズムは、エッジカラーの頂点を持たず、4の最大価数を持たないツリーに対してのみ機能する規則正しい世代の特殊な形式です(私は思う)。

関連する問題