5M Pick 10K, # of duplicates?

by skibulk

JavaScript

console.clear();

function run(pool, picks){
  var results = [];
  
  for(var i=0; i<100; i++){
    var cards = [];

    // Pick 10K cards
    for(var j=0; j<picks; j++){

      // From a pool of 5M cards
      cards.push(Math.round(Math.random()*pool));
    }

    // Remove Duplicates
    cards = [...new Set(cards)];

    // How many duplicates were there?
    results.push(picks - cards.length);
  }

  console.log(pool, picks, results.reduce((a, b) => a + b) / results.length);
}

// 1 Million
var mil = 1000000;

// Duplicate Cards between multiple packs
run(mil, 10000);

// Duplicate Cards within a single pack
run(mil, 500);

// Duplicate Pack IDs
run(80 * mil, 5000);

// Chance of guessing a card ID
run(200000, 20);

// Duplicate Frame Designs
run(801900, 5000);

console.log("done");