ホームページ  >  に質問  >  本文

c++ - if(rand()<p*RAND_MAX) 是在做什么筛选?

PHP中文网PHP中文网2713日前1022

全員に返信(2)返信します

  • ringa_lee

    ringa_lee2017-04-17 15:04:57

    抛砖引玉

    rand()生成 0RAND_MAX 之间的整数,那么 p*RAMD_MAX 相当于就是一个阈值,当“掷骰子”低于阈值时,当前迭代到的两个点之间连起来。

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 15:04:57

    完全图中边数与点数关系是:E = V (V-1) / 2,也就是每个点与剩下V-1个点都有边连接,p作为概率,满足了线性(要求的边数越大,则概率越大,则两点之间越可能有边相连,图越接近完全图)。假设rand()返回在[0, RAND_MAX]间,则E为0时p=0,E为V(V-1)/2时p=1。根据随机生成的rand决定当前(i,j)是否直连。不过这个是有向图?

    返事
    0
  • キャンセル返事