@Override
        //public int getDistribution(double standardDeviation) 
        public int getDistribution() 
        {
            //*********************
            //mean = this.mean();
            //*********************
            
            //keeps track of packets created
            int PacketCounter = 0;
            
            int[] a =new int[inputbuffersize];
            
             int val;
            //for (int i=0;i<EDarray.length;i++)
            while (PacketCounter < NumberOfPackets)
            {   
                val = (int) Math.round((-mean) * Math.log(rand.nextDouble()));
                if (val >=0  && val<=inputbuffersize-1)
                {
                     //EDarray[i]=val;
                    //add each value to the distribution array
                    EDarray.add(val);
                     a[val] +=1;
                     //count packet 
                     PacketCounter += 1;
                }
                
              //  System.out.print(EDarray[i]+ " ");  
            }
            
            
            //for(Object x:EDarray)  
            //{
            //    System.out.print((int)x+" ");
            //}
            //System.out.println("\n-----------");
  

            
            
            
            //***************
            int total = 0;
            //***************
            
            for(int x:a)  
            //for(Object x:EDarray)  
            {
                //System.out.print(x+" ");
                q.add(x);
                //***************
                total += x;
                //***************
            }
            
            //***************
            //System.out.println("\n<Total>: "+total);
            //***************
            //System.out.println("<E N D>\n");
            /*
            List lst = Arrays.asList(a);
            q.addAll(lst);
            */
            
            //clear array distribution
            EDarray.clear();
            return -1;
        }