Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

262
Views
¿Qué es un script de Google Apps para calcular la probabilidad de eventos independientes?

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 . ingrese la descripción de la imagen aquí

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.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En su situación, ¿qué tal la siguiente modificación?

Guión modificado:

 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); }

Resultado:

Cuando se ejecuta este script para su hoja de cálculo de muestra, se obtiene el siguiente resultado.

ingrese la descripción de la imagen aquí

Nota:

  • Cuando vi su hoja de cálculo de muestra, el nombre de la hoja es ProbWin . Por favor tenga cuidado con esto.
  • Este script modificado es para su hoja de cálculo de muestra. Entonces, cuando cambió la hoja de cálculo, es posible que no se pueda usar este script. Por favor tenga cuidado con esto.
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!