var a=new Array();
var delta=new Array();
var ex1;
var sol=new Array();
var sig=new Array();
var bus=new Array();
function sample(){
var id="1zk_WTDVJzpDNYU6kVUYzUo7QrkDqiV_S7fa_VNVecEo";
getdata();
rev();
paint();
}
function paint(){
var x1=new Array();
var x2=new Array();
for(s=1;s<26;s++){
z1=0;
for(sx=1;sx<26;sx++){
z1=z1+sig[sx][s];
}
x1[s]=z1;
}
for(s=1;s<26;s++){
z1=0;
for(sx=1;sx<26;sx++){
z1=z1+sig[s][sx];
}
x2[s]=z1;
}
var shx = ex1.getSheetByName("p");
for(s=1;s<26;s++){
shx.getRange(s, 2).setValue(x1[s]);
}
for(s=1;s<26;s++){
shx.getRange(s, 3).setValue(x2[s]);
}
for(s=1;s<26;s++){
shx.getRange(s, 1).setValue(bus[s]);
}
}
function rev(){
var shx = ex1.getSheetByName("io");
for(s=1;s<26;s++){
delta[s]=new Array();
}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
delta[s][sx]=-1*a[s][sx];
}}
for(s=1;s<26;s++){
delta[s][s]=1+delta[s][s];
}
for(s=1;s<26;s++){
sig[s]=new Array();
}
for(n=1;n<26;n++){
cal(n);
for(s=1;s<26;s++){
sig[s][n]=sol[s];
}
}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
shx.getRange(s, sx).setValue(sig[s][sx]);
}}
}
function cal(n){
var beta=new Array();
var alpha=new Array();
for(s=1;s<26;s++){
alpha[s]=new Array();
}
for(s=1;s<26;s++){
beta[s]=0;
}
beta[n]=1;
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
alpha[s][sx]=delta[s][sx];
}}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
z=alpha[sx][s]/alpha[s][s];
if(s==sx)z=0;
for(tx=1;tx<26;tx++){
alpha[sx][tx]=alpha[sx][tx]-z*alpha[s][tx];
}
beta[sx]=beta[sx]-z*beta[s];
}
}
for(s=1;s<26;s++){
sol[s]=beta[s]/alpha[s][s];
}
}
function getdata() {
var id="1zk_WTDVJzpDNYU6kVUYzUo7QrkDqiV_S7fa_VNVecEo";
ex1 = SpreadsheetApp.openById(id);
var sheet = ex1.getSheetByName("data");
var y=new Array();
for(s=1;s<26;s++){
a[s]=new Array();
}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
a[s][sx]=sheet.getRange(s+5, sx+2).getValue();
}}
for(sx=1;sx<26;sx++){
y[sx]=sheet.getRange(37, sx+2).getValue();
}
for(s=1;s<26;s++){
bus[s]=sheet.getRange(s+5, 2).getValue();
}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
a[s][sx]=a[s][sx]/y[sx];
}
}
}
最終更新:2016年06月04日 00:43