c++ - if(rand()<p*RAND_MAX) 是在做什么筛选?
PHP中文网
PHP中文网 2017-04-17 15:02:57
0
2
1080
PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(2)
左手右手慢动作

拋磚引玉

rand()產生0RAND_MAX 之間的整數,那麼p*RAMD_MAX 相當於就是一個閾值,當「擲骰子」低於閾值時,當前迭代到的兩個點之間連起來。

小葫芦

完全圖中邊數與點數關係是: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)是否直連。不過這個是有向圖?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板