【问题标题】:Using php to generate random network graphs使用php生成随机网络图
【发布时间】:2015-07-30 16:39:55
【问题描述】:

我想知道如何在 PHP 中生成具有特定数量的节点和边的随机网络图。我不知疲倦地搜索了网络,甚至遇到了this SO question,但答案仅适用于 Javascript。
我还看到了this SO question,但它是针对 Java 的,我真的不是使用 PHP 重新创建该解决方案的 PHP 专家。

我稍后会使用GraphViz 可视化图表,如果这样可以让问题更清楚一点。

【问题讨论】:

    标签: php graph


    【解决方案1】:

    好的,所以我在某处看到了这个解决方案,但无法找到链接

    这是代码;

     <?php
    
    $maxNode = 100;
    $maxEdge = 500;
    //generate random edges
    
    $e =[];
    for ($n=1; $n <= $maxEdge; $n++) { 
    
        $e[] = [rand(1, $maxNode), rand(1, $maxNode)];
    }
    
    //remove duplicates and self-loops
    
    $dup = [];
    foreach ($e as $i => $v) {
    
        if ($v[0] == $v[1]) {
            unset($e[$i]);
        }
    
        $d = $v[0] .':' .$v[1];
        if (isset($dup[$d])) {
    
            unset($e[$i]);
        }
    
        else{
            $dup[$d] = true;
        }
    }
    
    
    
    
    $graph = <<<EOF
    digraph randomGraph {
    
        graph [ dpi = 300 ];
        size ="5,8"
        node [shape = circle];
    
    EOF;
    
        foreach ($e as $edge) {
    
            list($from, $to) = $edge;
            $graph .= "$from -> $to \n";
    
        }
    
        echo $graph;
    ?>
    

    感谢写这篇文章的人!

    【讨论】:

      猜你喜欢
      • 2018-04-09
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2014-12-27
      • 2014-05-26
      • 1970-01-01
      相关资源
      最近更新 更多