?? b-a 小世界網絡 java生成代碼.txt
字號:
?private static void createBAlikeNetwork(){
??int m0 = 2;
??int idCount = 0;//specify new peer's id, MUST peers[k].id == k.
??//STEP1: create m0 disconnected peers
??for(int i=0; i<m0; i++){
???peers[idCount] = new RipplePeer(idCount);//here idCount == i
???idCount++;
??}
??
??//STEP2: create a new peer and connect to above peers
??peers[idCount] = new RipplePeer(idCount);??
??for(int i=0; i<m0; i++){
???peers[idCount].addNbr(peers[idCount-m0+i].peerID);//set new peer's nbrs
???peers[idCount-m0+i].addNbr(idCount);//set above peers's nbr
??}
??idCount++;
??
??//STEP3: start recursion
??//record used peers to choose different m0 nbrs for new peer in process below
??LinkedList<Integer> usedPeerList = new LinkedList<Integer>();
??while(idCount!=onlinePeerSum){
???//create a new peer
???peers[idCount] = new RipplePeer(idCount);
???for(int i=0; i<m0; i++){//create m0 nbrs for this peer and thus its degree is m0
????//randomly choose a peer to connect
????int toConnect = (int)(Math.random()*idCount);
????while(usedPeerList.contains(new Integer(toConnect))){//got a used one
?????toConnect = (int)(Math.random()*idCount);
????}
????usedPeerList.add(new Integer(toConnect));
????peers[toConnect].addNbr(idCount);
????peers[idCount].addNbr(toConnect);
???}???
???usedPeerList.clear();
???idCount++;
??}
?}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -