var index=new Array();
var credit=new Array();
var point=new Array();
var rev=new Array();
var sol=new Array();
var a=new Array();
var y=new Array();
function myFunction() {
id="18E_SjHDbhxxuq5WQzzBANVoMakdjY3FWsUHV5oESMss";
ex = SpreadsheetApp.openById(id);
var sheet = ex.getSheetByName("data");
var v=sheet.getRange(1, 1,37,52).getValues();
fastline=5;
lastline=36;
for(s=fastline;s<lastline+1;s++){
index[s]=v[s][1];
}
creditx=2;
credity=38;
for(s=creditx;s<credity+1;s++){
credit[s]=v[4][s];
}
for(s=0;s<26;s++){
a[s]=new Array();
rev[s]=new Array();
}
for(s=0;s<26;s++){
for(sx=0;sx<26;sx++){
a[s][sx]="";
}}
for(s=1;s<26;s++){
y[s]=v[lastline][creditx+s-1];
for(sx=1;sx<26;sx++){
s1=fastline+s-1;
s2=creditx+sx-1;
a[s][sx]=v[s1][s2];
}}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
a[s][sx]=a[s][sx]/y[sx];
}}
for(tr=1;tr<26;tr++){
rev[tr][0]=index[fastline+tr-1];
rev[0][tr]=index[fastline+tr-1];
cal(tr);
for(s=1;s<26;s++){
rev[s][tr]=sol[s];
}
}
var shx = ex.getSheetByName("rev");
shx.getRange(1,1,26,26).setValues(rev);
}
function cal(tx){
var ax=new Array();
var bx=new Array();
for(s=1;s<26;s++){
bx[s]=0;
}
bx[tx]=1;
for(s=1;s<26;s++){
ax[s]=new Array();
}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
ax[s][sx]=0;
}}
for(s=1;s<26;s++){
ax[s][s]=1;
}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
ax[s][sx]=ax[s][sx]-a[s][sx];
}}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
z=ax[s][sx]/ax[s][s];
if(s==sx)z=0;
for(tx=1;tx<26;tx++){
ax[s][tx]=ax[s][tx]-z*a[sx][tx];
}
bx[sx]=bx[sx]-z*bx[s];
}
}
for(s=1;s<26;s++){
sol[s]=bx[s]/ax[s][s];
}
}
最終更新:2017年03月25日 01:21