var bus=new Array();
var credit=new Array();
var v=new Array();
var io=new Array();
var rev=new Array();
function sample() {
var id="1U2hfQGlTO5hesC7lEqfnUUpugVGw1_o_xNIgU0TSw7Y";
ex1 = SpreadsheetApp.openById(id);
var sheet = ex1.getSheetByName("data");
var shx = ex1.getSheetByName("io");
number=32;
for(s=1;s<number+1;s++){
bus[s]=sheet.getRange(s+5, 2).getValue();
}
creditnumber=37;
for(s=1;s<creditnumber+1;s++){
credit[s]=sheet.getRange(5, s+2).getValue();
}
for(s=1;s<number+1;s++){
shx.getRange(s+1, 1).setValue(bus[s]);
}
for(s=1;s<number+1;s++){
v[s]=new Array();
io[s]=new Array();
}
for(s=1;s<number+1;s++){
for(sx=1;sx<creditnumber+1;sx++){
v[s][sx]=sheet.getRange(5+s, sx+2).getValue();
}}
for(s=1;s<creditnumber+1;s++){
shx.getRange(1, s+1).setValue(credit[s]);
}
for(s=1;s<number+1;s++){
for(sx=1;sx<creditnumber+1;sx++){
shx.getRange(s+1, sx+1).setValue(v[s][sx]);
}}
var sh2 = ex1.getSheetByName("rev");
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
io[s][sx]=-v[s][sx]/v[number][sx];
}
}
for(s=1;s<26;s++){
io[s][s]=1+io[s][s];
}
for(s=1;s<26;s++){
rev[s]=new Array();
}
for(k=1;k<26;k++){
mat(k);
}
for(s=1;s<26;s++){
for(sx=1;sx<26;sx++){
sh2.getRange(s+1, sx+1).setValue(rev[s][sx]);
}}
for(s=1;s<26;s++){
sh2.getRange(1, s+1).setValue(credit[s]);
sh2.getRange(s+1, 1).setValue(bus[s]);
}
}
function mat(k){
var b=new Array();
var a=new Array();
for(s=1;s<26;s++){
b[s]=0;
}
b[k]=1;
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]=io[s][sx];
}
}
for(s=1;s<26;s++){
for(s1=1;s1<26;s1++){
z=a[s1][s]/a[s][s];
if(s1==s)z=0;
for(sx=1;sx<36;sx++){
a[s1][sx]=a[s1][sx]-z*a[s][sx];
}
b[s1]=b[s1]-z*b[s];
}
}
for(s=1;s<26;s++){
rev[s][k]=b[s]/a[s][s];
}
}
最終更新:2016年09月15日 18:53