産婦人科フクロウ blog 〜PhDからプロの研究者を目指して〜人のまねをせずに、その身に応じ、武器は自分の使いやすいものでなければならぬ

基礎の発生学、細胞物理学について勉強したことを載せていきます。古武道鍛錬中。GitHub;hidem1990

次数のグラフ化

色々重ねていったら、とても簡単に出来た。

f:id:hide_m_1990:20130404153303j:plain

 

 

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

}

 

でも、臨界点らしきところは作れなかった。

どっか勘違いしてるのかなー