Binomial Coefficient Percentage

by tcghyit

HTML

<div></div>

JavaScript

function FindPercentage(itemNum, totalItems, tries) {

    function BC(n, k) {
        var coeff = 1;
        for (var i = n-k+1; i <= n; i++) coeff *= i;
        for (var i = 1;     i <= k; i++) coeff /= i;
        return coeff;
    }
    
    var tmp = (itemNum < tries) ? itemNum : tries;
    console.log(tmp);
    for (var i = 0; i <= tmp; i++) {
        var v = (BC(totalItems - itemNum, tries - i) * BC(itemNum, i)) / BC(totalItems, tries);

        var ans = Math.round((i?v:1-v) * 10000) / 100 || '<0.01';
        
        if (i == 0) {
            $('div').append('total-' + ans + '%<br>');
        } else {
            $('div').append(i + ' picked -' + ans + '%<br>');
        }
        
        if(tmp==1) break;
    }
}

var sameItems = 3;
var totalItems = 100;
var tries = 3;
FindPercentage(sameItems, totalItems, tries);