Estoy tratando de crear un script que calcule la probabilidad de 0-20 victorias en una temporada de 20 juegos, con los resultados en la Columna F de esta hoja de cálculo . 
Encontrar la probabilidad de 0 y 20 victorias es simple y rápido, porque solo hay una forma de lograr cada una. Calcular la probabilidad de 1:19 victorias es simple, pero lleva mucho más tiempo, porque hay 1 048 576 (2^20-2) formas diferentes de hacerlo. Hay una increíble solución de VBA/Excel para este problema aquí , pero me gustaría usar GAS.
Este es mi intento de GAS:
function multiplyArrays2() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sht = ss.getSheetByName("ProbWin"); var probs = sht.getRange("B3:C22").getValues(); for (var i = 0; i < 2^20-1; i++) { //2^20=total combinations var ctr = 0; //I deleted the duplicate of this exact line below var wk and VBA ran var wk = 1; //Added "var" for GAS for (var j; i < 20; i++) { if ix[j] = 1 { //this is the first line GAS underlines red. I don't know how to deal with the "x" wk = wk * probs[j, 1] //changed () to [] to deal with array ctr = ctr + 1 } else { wk = wk * probs[j, 2] } } var outprobs[ctr, 1] = outprobs[ctr, 1] + wk; //added "var" for (var j; i < 20; i++) { ix[j] = ix[j] + 1 //again, I don't know how to deal with the "x" if ix[j] = 1 { ix[j] = 0 } } } sht.getRange("F2:F22").setValues(outprobs); };Cualquier ayuda es muy apreciada.
En su situación, ¿qué tal la siguiente modificación?
function multiplyArrays2() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sht = ss.getSheetByName("ProbWin"); var probs = sht.getRange("B3:C22").getValues(); var ix = Array(20).fill(0); var outprobs = [...Array(21)].map(_ => [0]); for (var i = 0; i <= Math.pow(2, 20) - 1; i++) { var ctr = 0; var wk = 1; for (var j = 0; j < 20; j++) { if (ix[j] == 1) { wk *= probs[j][0]; ctr++; } else { wk *= probs[j][1]; } } outprobs[ctr][0] += wk; for (var j = 0; j < 20; j++) { ix[j]++; if (ix[j] == 1) break; ix[j] = 0; } } sht.getRange("F2:F22").setValues(outprobs); }Cuando se ejecuta este script para su hoja de cálculo de muestra, se obtiene el siguiente resultado.
ProbWin . Por favor tenga cuidado con esto.