#include <sys/time.h>
#include <stdlib.h>
#include <iostream>
#include <set>
#include <hash_map>

int MAX = 100;

struct thrasher {
  int operator() (int x) {
    hash<int> H;

    return H(x) % (MAX*3);
  }
};
    
main(int argc, char* argv[])
{
  MAX = atoi(argv[1]);
  set<int> s;
  timeval tp;
  int hashnum;
  int collisions = 0;

  gettimeofday(&tp, NULL );
  srand(tp.tv_sec);

  for (int i=0; i< MAX; i++) {
    hashnum = thrasher()(rand());

    if (s.find(hashnum) != s.end())
      collisions++;
    else
      s.insert(hashnum);
  }
 
  cout << endl << "Collisions: " << collisions << endl;

}

