次数のグラフ化
色々重ねていったら、とても簡単に出来た。
n<-50
N<-n*n
kaisu <- 6
all.g.deg <- matrix( 0, kaisu, n)
#隣接行列の作成
p <- sample(1:N, n*n, replace=T )
adj <- matrix( p , n, n )
diag(adj) <- n*n+1
adj [upper.tri( adj )] <- 0
adj.u <- t( adj )
adj.n <- adj +adj.u
#各辺の生成確率をいれる
for( m in 1: kaisu){
prob <- c(250, 200, 150, 100, 50, 10)
a <- prob[ m ]
adj.g <- matrix( 0 , n, n)
for( i in 1:n){
for( j in 1:n){
p <- adj.n[ i, j ]
if( p<= a){ adj.g[ i, j ] <- 1}
else {adj.g[ i, j ] <- 0 }
}
}
adj.deg <- adj.g
for( l in 1:n){
for( i in 1:n){
for( j in 1:n){
for( k in 1:n){
a <- adj.deg[ i, j]
b <- adj.deg[ j, k ]
c <-a+b
d <-adj.deg[ i ,k ]
if(a !=0 ){
if (b !=0 ){
if( d==0 ){ adj.deg[ i, k] <- c }
else{adj.deg[ i, k] <- min( c, d )}
}
}
}
}
}
}
diag(adj.deg) <- 0
#グラフの次数一覧
g.deg <-tabulate(adj.deg,n/10)/2
par(new=T)
plot (g.deg, type="l", col=m,ylim=c(1,n*(n-1)/2))
all.g.deg [m, ] <- g.deg
}
でも、臨界点らしきところは作れなかった。
どっか勘違いしてるのかなー