from numpy import *

N = 20
GPD = N/2
ND = 12
team = range(0,N)
A = zeros((N,N))
for k in range(0,ND):
    p = team
    random.shuffle(p)
    for i in range(0,GPD):
        score = random.random()
        if score>0.5:
            A[p[i],p[i+GPD]] = A[p[i],p[i+GPD]] + 1
        else:
            A[p[i+GPD],p[i]] = A[p[i+GPD],p[i]] + 1

A = A/ND

r0 = ones((N,1))
r1score = dot(A,r0)
r2score = dot(A,dot(A,r0))
r1rank = r1score.argsort(axis=0)
r2rank = r2score.argsort(axis=0)
w, v = linalg.eig(A)

idx_lambda = int(asarray((w==max(w)).nonzero()))
w[idx_lambda] 
r = abs(v[:,idx_lambda]);
rrank = r.argsort();
rrank = rrank.reshape(-1,1)

concatenate((r1rank,r2rank,rrank),axis=1)



