アットウィキロゴ

fr23

var p=new Array();
var group=new Array();
var count=new Array();
var px1,px2;
var number;
var rank=new Array();
 
function sample(){
 
number=10;
 
for(s=1;s<number+1;s++){
p[s]=Math.random();
}
 
f();
 
delta();
 
ranking();
 
s1=rank[1];
s2=rank[2];
s3=rank[3];
 
$("#memo").html(p[s1]+","+p[s2]+","+p[s3]);
 
 
 
}
 
function ranking(){
 
var s,sx;
var point=new Array();
 
for(s=1;s<number+1;s++){
p1=0;
for(sx=1;sx<number+1;sx++){
if(check(s,sx)==s)p1=p1+1;
}
point[s]=p1;
}
 
var maxp;
var chx=new Array();
for(s=1;s<number+1;s++){
chx[s]=0;
}
 
 
for(s=1;s<number+1;s++){
maxp=-99;
sxs=0;
for(sx=1;sx<number+1;sx++){
h=0;
if(point[sx]>maxp)h=h+1;
if(chx[sx]<50)h=h+1;
if(h==2)maxp=point[sx];
if(h==2)sxs=sx;
}
rank[s]=sxs;
chx[sxs]=100;
}
 
 
}
 
function check(s1,s2){
 
var s,ch,h,z,sx1,sx2;
z=0;
ch=0;
for(s=1;s<number+1;s++){
sx1=group[s][s1];
sx2=group[s][s2];
c1=count[s][sx1];
c2=count[s][sx2];
h=0;
if(c1>c2)h=h+1;
if(ch<50)h=h+1;
if(h==2)z=s1;
if(h==2)ch=100;
h=0;
if(c2>c1)h=h+1;
if(ch<50)h=h+1;
if(h==2)z=s2;
if(h==2)ch=100;
}
return z;
}
 
function delta(){
 
 
var s,sx,tx;
 
for(s=1;s<number+1;s++){
count[s]=new Array();
}
 
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
count[s][sx]=0;
}
}
 
for(s=1;s<number+1;s++){
for(sx=1;sx<number+1;sx++){
tx=group[s][sx];
count[s][tx]=count[s][tx]+1;
}
}
 
 
}
 
function f(){
 
for(s=1;s<number+1;s++){
group[s]=new Array();
}
 
 
for(s=1;s<number+1;s++){
group[number][s]=s;
}
 
var t,page;
 
for(t=1;t<number;t++){
 
page=number+1-t;
 
g(page);
 
var h,sx;
 
for(s=1;s<number+1;s++){
sx=group[page][s];
h=0;
if(sx==px2)h=100;
if(h<50)group[page-1][s]=group[page][s];
if(h>50)group[page-1][s]=px1;
}
 
}
 
}
 
 
 
function g(g1){
 
var s1,s2;
var d1,minx;
 
px1=0;
px2=0;
minx=9999;
for(s1=1;s1<number+1;s1++){
for(s2=1;s2<number+1;s2++){
d1=gdet(g1,s1,s2);
if(s1==s2)d1=9999;
if(d1<minx)px1=s1;
if(d1<minx)px2=s2;
if(d1<minx)minx=d1;
}
}
 
 
}
 
function gdet(g1,s1,s2){
 
var s,sx;
var n1,n2;
var t1,t2;
var subx=new Array();
var suby=new Array();
 
sx=0;
for(s=1;s<number+1;s++){
if(group[g1][s]==s1)sx=sx+1;
if(group[g1][s]==s1)subx[sx]=s;
}
 
n1=sx;
 
sx=0;
for(s=1;s<number+1;s++){
if(group[g1][s]==s2)sx=sx+1;
if(group[g1][s]==s2)suby[sx]=s;
}
 
n2=sx;
 
var d1,mind;
 
mind=9999;
for(s=1;s<n1+1;s++){
for(sx=1;sx<n2+1;sx++){
t1=subx[s];
t2=suby[sx];
d1=det(t1,t2);
if(d1<mind)mind=d1;
}
}
 
return mind;
}
 
function det(s1,s2){
var d1;
d1=p[s1]-p[s2];
d1=d1*d1;
return d1;
}
 
最終更新:2014年01月17日 01:37