Success Chance Plausibility Checker
JavaScript
let inputYourSuccessCount = 13;
let inputTestChances = [
20
,20
,20
,26
,26
,20
,26
,26
,26
,26
,20
,26
,26
,26
,26
,26
,20
,20
,32
,26
,20
,20
,26
,32
,26
,20
,26
,26
,26
,26
];
// Below here is the actual simulations code:
const NUM_SIMULATIONS = 1000000;
var outputHistogram = [];
for (let i = 0; i < inputTestChances.length + 1; i++)
outputHistogram.push(0);
for (let eachSimulation = 0; eachSimulation < NUM_SIMULATIONS; eachSimulation++)
{
let successesThisSimulation = 0;
for (let i = 0; i < inputTestChances.length; i++)
{
let thisTestSuccess = Math.random() < (inputTestChances[i] / 100.0);
if (thisTestSuccess)
successesThisSimulation++;
}
outputHistogram[successesThisSimulation]++;
}
// Add up the simulated success counts at your true succcess count or higher:
let cumulativeSuccessCountYoursOrHigher = 0.0;
for (let i = 0; i < outputHistogram.length; i++)
{
//Console.WriteLine($"{i},{outputHistogram[i]},{(outputHistogram[i]/(double)NUM_SIMULATIONS)}");
if (i >= inputYourSuccessCount)
cumulativeSuccessCountYoursOrHigher += outputHistogram[i];
}
// Print final result to screen:
let p = document.createElement("p");
p.innerText = "The chance of getting your success count (or more): " + (cumulativeSuccessCountYoursOrHigher/(1.0 * NUM_SIMULATIONS) * 100) + "% (p value)";
document.body.appendChild(p);
// Print table to screen:
let myTable = document.createElement("table");
document.body.appendChild(myTable);
let myHeader = document.createElement("tr");
myTable.appendChild(myHeader);
var th1 = document.createElement("th");
th1.innerText = "[Success Count]";
myHeader.appendChild(th1);
var th2 = document.createElement("th");
th2.innerText = "[Sims...