smallworld.java
来自「复杂网络中的小世界网络模型 用于实现小世界网络的模拟使用」· Java 代码 · 共 116 行
JAVA
116 行
import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
public class Smallworld {
public static void main(String[] args) {
System.out.print("please enter the number of the node:");
Scanner in1 = new Scanner(System.in);
int N0 = in1.nextInt();
System.out.println("the number of the node is:" + N0);
int[][] w = new int[N0][N0];
float[] N = new float[N0];
float[] Nj = new float[N0];
int[] min = new int[3];
float[][] Ni = new float[N0][N0];
int i, j, l;
float X;
for (i = 0; i < N0; i++) {
for (j = 0; j < N0; j++) {
if ((i + 1) % N0 == j | (i + 2) % N0 == j)
w[i][j] = 1;
else
w[i][j] = 0;
}
}
for (i = 0; i < N0; i++) {
for (j = 0; j < N0; j++) {
if (w[i][j] == 1)
w[j][i] = 1;
}
}
/*
* for(i=0;i<N0;i++){ for(j=0;j<N0;j++){ if(j%N0==N0-1){
* System.out.print(w[i][j]); System.out.println(); } else
* System.out.print(w[i][j]); } }
*/
System.out.print("please enter the Multiples of link:");
Scanner in2 = new Scanner(System.in);
int S = in2.nextInt();
// System.out.println("the Multiples is:"+S);
for (i = 0; i < N0; i++) {
Random n = new Random();
N[i] = n.nextFloat();
}
/*
* for (i=0;i<N0;i++){ System.out.print(N[i]); System.out.print(","); }
*/
for (l = 0; l < S; l++) {
for (i = 0; i < N0; i++) {
for (j = 0; j < N0; j++) {
if (i == j)
Ni[i][j] = 1;
else if (N[i] > N[j])
Ni[i][j] = N[i] - N[j];
else if (N[i] < N[j])
Ni[i][j] = N[j] - N[i];
}
}
/*
* for (i=0;i<N0;i++){ System.out.println(); for(j=0;j<N0;j++){
* System.out.print(Ni[i][j]); System.out.print(","); } }
*/
for (i = 0; i < N0; i++) {
for (j = 0; j < N0; j++)
Nj[j] = Ni[i][j];
Arrays.sort(Ni[i]);
Random x = new Random();
X = x.nextFloat();
for (int m = 0; m < 3; m++) {
for (int n = 0; n < N0; n++) {
if (Ni[i][m] == Nj[n]) {
min[m] = n;
// System.out.println(n);
}
}
}
if (X >= 0 && X <= 0.5) {
w[i][min[0]] += 1;
w[min[0]][i] = w[i][min[0]];
} else if (X >= 0.5 && X <= 0.8) {
w[i][min[1]] += 1;
w[min[1]][i] = w[i][min[1]];
} else if (X >= 0.8 && X <= 1) {
w[i][min[2]] += 1;
w[min[2]][i] = w[i][min[2]];
}
}
/*
* for (i=0;i<N0;i++){ System.out.println(); for(j=0;j<N0;j++){
* System.out.print(Ni[i][j]); System.out.print(","); } }
*/
}
for (i = 0; i < N0; i++) {
for (j = 0; j < N0; j++) {
if (j % N0 == N0 - 1) {
System.out.print(w[i][j]);
System.out.println();
} else {
System.out.print(w[i][j]);
System.out.print(",");
}
}
}
Attribute sw = new Attribute(N0, w);
sw.cluster();
sw.avepath();
sw.distribute();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?