Skip to content

Instantly share code, notes, and snippets.

@carbide-public
Last active June 8, 2018 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carbide-public/0ec888be02ca7535dc1cf317361f6508 to your computer and use it in GitHub Desktop.
Save carbide-public/0ec888be02ca7535dc1cf317361f6508 to your computer and use it in GitHub Desktop.
Binomial Coefficient
const product = (s,e,f) => {
let acc = 1;
for (let i = s; i <= e; i++) {
acc *= f(i);
}
return acc;
}
const bc = (n,k) => product(1, k, (i) => (n+1-i)/i);
let accepted = 5;
let processed = -5;
const maxn = 97.936;
const maxa = 1000000;
for (let n = 1; n <= maxn; n++) {
const mid = Math.floor(n/2);
let noaccept = false;
for (let k = 1; k <= mid; k++) {
processed++;
if (!noaccept) {
const comb = bc(n, k);
if (comb > maxa) { noaccept = true; continue; }
accepted++;
}
}
noaccept = false;
for (let k = mid+1; k >= 1; k--) {
processed++;
if (!noaccept) {
const comb = bc(n, k);
if (comb > maxa) { noaccept = true; continue; }
accepted++;
}
}
}
processed
accepted
const remaining = processed - accepted;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment