簡體   English   中英

使用BGL實現random_spanning_tree

[英]Implementation of random_spanning_tree using BGL

我在實現random_spanning_tree時遇到一些問題。

如何初始化隨機數生成器?

   boost::uniform_int<> rng(0,9);
   boost::random::random_number_generator <boost::uniform_int<>, long> 
                                        gen(rng);

   boost::random_spanning_tree(g, gen,
                          boost::root_vertex(1).predecessor_map(&p[0])
                         ) ; 

這是鏈接: https : //www.boost.org/doc/libs/1_64_0/libs/graph/doc/random_spanning_tree.html
gen參數的模型運行該函數應該是什么?
在此先感謝您的幫助。

在我看來,您應該只使用引擎作為發電機。

生活在Coliru

#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/random_spanning_tree.hpp>
#include <random>

int main() {
    using G = boost::adjacency_list<>;

    std::mt19937 gen;
    //std::uniform_int_distribution<> rng(0,9);

    G g(10);
    add_edge(1, 2, g);
    add_edge(2, 3, g);
    add_edge(2, 6, g);
    add_edge(6, 4, g);
    std::vector<G::vertex_descriptor> p(num_vertices(g));

    boost::random_spanning_tree(g, gen, boost::root_vertex(1).predecessor_map(&p[0])); 
}

通過boost::loop_erased_random_walk_stuck異常可預見的失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM