与えられたn:頂点の数、n個の頂点を持つツリーをランダムに生成したい。 現在、random_shuffle()を使用して、n個の頂点のランダムシーケンスを生成し、線形ツリーのみを生成しています。しかし、C++で他のツリータイプを含めるにはどうすればそれをランダムに作ることができますか?あなたの目標を想定C++でn個の頂点を持つツリーをランダムに生成する方法は?
答えて
はn個の頂点を持つルートと標識された木の集合上均一確率分布に従う擬似乱数ツリーを生成することで、溶液は、いわゆるPrüferコードを生成することである、それは一様に生成されたランダムであります[1、n]内の(n-2) - タプルの数である。 ;
https://en.wikipedia.org/wiki/Pr%C3%BCfer_sequence
しかし、私は十分にそれがランダムな方法を行うことができます
なものは、「十分にランダム」としてありません。
のwikiの記事は、擬似コードを使用する準備ができていますは、ツリーの配布に必要なプロパティを指定する必要があります(そのような配布が複数存在する可能性があります)。 (頂点がn個のすべての木の集合などの)有限集合の特殊なケースでは、常に一様分布を一意に定義することができますが、これは決して「よりランダム」でも「より自然」でもなく、何か...それが正しい流通であるかどうかはあなた(そしてあなたの究極の目標)によって決まります。
これはまた、Pythonの[networkx](https://networkx.github.io/documentation/stable/reference/generated/networkx.generators.tree.random_tree.html#networkx.generators.tree.random_tree)で '' ' 'generators.tree.random_tree'''(それは実用的な重要性をいくらかサポートしています)。 – sascha
- 1. N個の非零要素を持つランダムなスパース行列を生成する
- 2. O(n + m)の有向グラフでマザー頂点を見つける方法は?
- 3. 頂点をプログラムで生成する
- 4. n個の子ノードを持つツリーを作成するにはどうすればよいですか?
- 5. 中間の頂点を生成する
- 6. C#でGridListControlでセルデータをランダムに生成する方法は?
- 7. 頂点iとjの間の最小パスを見つける方法それらの間に最大S個の頂点を持つ
- 8. ツリーの最小頂点カバー
- 9. k桁のn個の乱数を生成する方法
- 10. Igraphでドーナツ形状の頂点を持つネットワークを表現する方法は?
- 11. ポリゴンを作成する際に、頂点の間のn点を追加する方法
- 12. AVLツリーでサイズkの頂点を見つける
- 13. n個の頂点のグループごとのグラフ分割
- 14. N個のランダムなオブジェクトを削除する最速の方法
- 15. n個のAVLツリーをマージする
- 16. N個の配列をnumpyでランダムに混合する方法は?
- 17. 移動する頂点でポリゴンを作成する方法は?
- 18. Jinja2で変数を持つランダムなテキストを生成する方法は?
- 19. 各アイテムにn個の画像を持つ方法
- 20. 頂点の頂点を頂点で4.2で検証する
- 21. 値を持つJungのカラーリング頂点
- 22. 初期の頂点を持つJGraphxグラフエディタ
- 23. 頂点と法線を持つオブジェクトをレンダーする
- 24. バックアップスクリプト:最後のN個のエントリを保持する方法は?
- 25. c# - ランダムITINの生成方法
- 26. Cocos2d + Box2d:VertexHelperでクラッシュフリーの頂点生成を行うには?
- 27. Gremlin-特定のプロパティを持つ頂点のパーセンテージを計算する方法
- 28. pythonで頂点の数を指定した3つの通常のグラフをすべて生成する方法
- 29. JavaScript - m個の要素を持つn個の配列から組み合わせを生成する
- 30. 頂点からエッジプロパティの最大値を持つエッジを取得する方法
"純粋にランダムな"ツリーのようなものはありません。あなたは、n個の頂点を持つツリーのセットに対して、一様な確率分布に従う擬似ランダムツリーを生成する方法を意味しますか? –
@MassimilianoJanesはい。 – user3243499