public ZipfianGenerator(long min,long max,double _zipfianconstant,double _zetan){
  items=max - min + 1;
  base=min;
  zipfianconstant=_zipfianconstant;
  random=new Random();
  theta=zipfianconstant;
  zeta2theta=zeta(2,theta);
  alpha=1.0 / (1.0 - theta);
  zetan=_zetan;
  countforzeta=items;
  eta=(1 - Math.pow(2.0 / items,1 - theta)) / (1 - zeta2theta / zetan);
  nextInt();
}

public ZipfianGenerator ( long min , long max , double _zipfianconstant , double _zetan ) { items = max - min + 1 ; base = min ; zipfianconstant = _zipfianconstant ; random = new Random ( ) ; theta = zipfianconstant ; zeta2theta = zeta ( 2 , theta ) ; alpha = 1.0 / ( 1.0 - theta ) ; zetan = _zetan ; countforzeta = items ; eta = ( 1 - Math . pow ( 2.0 / items , 1 - theta ) ) / ( 1 - zeta2theta / zetan ) ; nextInt ( ) ; }
create a zipfian generator for items between min and max ( inclusive ) for the specified zipfian constant , using the precomputed value of zeta .
