关键词不能为空

当前您在: 主页 > 英语 >

ER随机图

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:20
tags:

-

2021年2月1日发(作者:服装英语)


ER


随即图生成程序



2012-07-14 11:14:19|


分类:



复杂网络研究


|


举报


|


字号



订阅



#include





#include





#include





#include





#include





using



namespace


std


;



vector


<


list



>< /p>


g


;


//


邻接 表存储网络



vector



pp< /p>


;


//


存放概率的向量

< br>


int


edge


;



struct


p_point


{




int


x


;




int


y


;



};



vector



c on


;


//


为了方便写入文件



int



creat e_random


(


int



c_begin


,


int



c_end


){


//


产生



c_begin


到< /p>


c_end


之间的任意正数


,

< p>
包括


c_begin



c _end




time_t


t


;




Sl eep


(


500


);

< br>


srand


((


unsig ned


)


time


(&


t


));




int


kiss


=

< br>rand


()%(


c_end


-


c_begin


+


1

< br>)+


c_begin


;




return


kiss


;



}



int


create_random_also


(


int


cc_begin


,


int



cc_end


){




time_t


t


;




Sl eep


(


200


);

< br>


srand


((


unsig ned


)


time


(&


t


));




int


kiss


=

< br>rand


()%(


cc_begin

-


cc_end


+


1


)+


cc_begin


;




return


kiss


;



}



p_point create_ different


(


int


diff_begin


,


int



diff_end


){


//


产生两个从


diff_begin


< br>diff_end



间的数,包括




//

包括


diff_begin



di ff_end,



且保证两者不同



p_point pc


;



pc


.


x


=


create_random


(


dif f_begin


,


diff_end


) ;




int


cp


=


0


;




do





{



c p


=


create_random_also

< br>(


diff_begin


,


di ff_end


);




}



while



(


pc


.


x


==


cp


);



pc

< br>.


y


=


cp

;




return


pc


;



}



void



Read_python_ file


(


int


edge


)


//pp


向量用来存


放程序所需要的概率,



python


文件中生成的


,pp



全局变量



{



FILE


*


ptr


;




float


a


;



ptr


=


fopen


(


,



);




for


(


int


i


=


0


;


i


<


edge


;


i


++)




{



fscanf


(


ptr


,


< br>,&


a


);



pp


.


push_back


(


a


);




}





}



bool



Find_in_netw ork


(


int


a


,


int


b


){


//


查找


b

是否


已经和


a


相连接了,


连接了返回


true



反之返回


false




for


(


list



::


iterator


it


=


g


[


a

< p>
].


begin


();


i t


!=


g


[


a


].


end


();++


it


){




if


((*


it


)==


b


)




return



true


;




}




return



false


;



}



void



Create_ER_random


(


int



N


,


float



p


){

< br>//


产生的概


率如果比我手动输入的概率小的话就连接< /p>



g


.


assi gn


(


N


+


1


,


list



());



g


[


0


].


push_back


(


0


);



e dge


=


p


*


N


*(


N


-


1


)/


2


;


< /p>


cout


<<



< <


edge


;



Read_python_file


(


65534

< p>
);



int


ii


=


0


;


//


概率向量指示器



int


c


=


0


;



p_point node


;



int


i


=


0


;


//


节点指示器

< br>


while


(


i


<


edge


){


//


在成功加入一个节点后,把


i


的值

< p>


1



node


=


create_different


(


1


,


N


);



while


(!


Fi nd_in_network


(


node


.


x


,


node

.


y


)&&


pp

< br>[


ii


]<


p

< br>&&


i


<


N

+


1


){


-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:20,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595147.html

ER随机图的相关文章