public static ArrayList makeArrayListOFTimeBetweenArrivalDetermination(ArrayList timeBetweenArrivalFinalArrayList, int [] randomDigitForInterArrivalTimeArray)
        {
            ArrayList timeBetweenArrivalDeterminationArrayList = new ArrayList();

            //changed  1 to 0  and =
            for (int i = 1; i < randomDigitForInterArrivalTimeArray.Length; i++)
            {
                DeterminationForRandomDigitModel determinationForRandomDigitModel = new DeterminationForRandomDigitModel();
                determinationForRandomDigitModel.customer    = i + 1;
                determinationForRandomDigitModel.randomDigit = randomDigitForInterArrivalTimeArray[i - 1];//changed i-1 to i

                foreach (var first in timeBetweenArrivalFinalArrayList)
                {
                    RandomDigitAssignmentModel obj = new RandomDigitAssignmentModel();
                    obj = (RandomDigitAssignmentModel)first;
                    int random       = determinationForRandomDigitModel.randomDigit;
                    int randomStarts = obj.randomDigitAssignmentStarts;
                    int randomEnds   = obj.randomDigitAssignmentEnds;
                    if (randomStarts <= random && random <= randomEnds)
                    {
                        determinationForRandomDigitModel.time = obj.time;
                    }
                }

                timeBetweenArrivalDeterminationArrayList.Add(determinationForRandomDigitModel);
            }


            return(timeBetweenArrivalDeterminationArrayList);
        }
Esempio n. 2
0
        public static ArrayList makeArrayListOFTimeBetweenServiceDetermination(int[] randomDigitForServiceTimeArray, ArrayList serviceTimeFinalArrayList)
        {
            ArrayList serviceTimeDeterminationArrayList = new ArrayList();

            for (int i = 0; i < randomDigitForServiceTimeArray.Length; i++)
            {
                DeterminationForRandomDigitModel determinationForRandomDigitModel = new DeterminationForRandomDigitModel();
                determinationForRandomDigitModel.customer    = i + 1;
                determinationForRandomDigitModel.randomDigit = randomDigitForServiceTimeArray[i];

                foreach (var first in serviceTimeFinalArrayList)
                {
                    RandomDigitAssignmentModel obj = new RandomDigitAssignmentModel();
                    obj = (RandomDigitAssignmentModel)first;
                    int random       = determinationForRandomDigitModel.randomDigit;
                    int randomStarts = obj.randomDigitAssignmentStarts;
                    int randomEnds   = obj.randomDigitAssignmentEnds;
                    if (randomStarts <= random && random <= randomEnds)
                    {
                        determinationForRandomDigitModel.time = obj.time;
                    }
                }

                serviceTimeDeterminationArrayList.Add(determinationForRandomDigitModel);
            }


            return(serviceTimeDeterminationArrayList);
        }
Esempio n. 3
0
        public static ArrayList makeArrayListOFServiceTimeDistribution(int from, int to, Dictionary <int, string> diction)
        {
            dictionary = diction;
            //double probabilityFinal = Convert.ToDouble(((double)from / (double)to));//0.125
            //static double probabilityVariable = probabilityVariable+ probabilityFinal;
            int    decimalCount = dictionary[1].ToString().Split('.')[1].Length;
            double multiplyWith = Math.Pow(10, decimalCount);

            Stack <double> cuProbStack                  = new Stack <double>();
            Stack <double> randDigStartStack            = new Stack <double>();
            Stack <double> randDigEndStack              = new Stack <double>();
            ArrayList      timeBetweenArrivalaArraylist = new ArrayList();

            for (int i = 1; i <= dictionary.Count; i++)
            {
                RandomDigitAssignmentModel obj = new RandomDigitAssignmentModel();
                if (cuProbStack.Count == 0)
                {
                    obj.time                  = i;
                    obj.probability           = Convert.ToDouble(dictionary[i]);
                    obj.cumulativeProbability = Convert.ToDouble(dictionary[i]);
                    obj.cumulativeProbability = obj.probability;
                    cuProbStack.Push(obj.cumulativeProbability);
                    obj.randomDigitAssignmentStarts = 1;                                                       //126
                    randDigStartStack.Push(obj.randomDigitAssignmentStarts);
                    obj.randomDigitAssignmentEnds = Convert.ToInt32(obj.cumulativeProbability * multiplyWith); //250
                    randDigEndStack.Push(obj.randomDigitAssignmentEnds);
                }
                else
                {
                    obj.time                  = i;
                    obj.probability           = Convert.ToDouble(dictionary[i]);
                    obj.cumulativeProbability = Convert.ToDouble(dictionary[i]);
                    obj.cumulativeProbability = Convert.ToDouble((cuProbStack.Peek() + obj.probability));
                    cuProbStack.Push(obj.cumulativeProbability);
                    obj.randomDigitAssignmentStarts = Convert.ToInt32(randDigEndStack.Peek() + 1);             //126
                    randDigStartStack.Push(obj.randomDigitAssignmentStarts);
                    obj.randomDigitAssignmentEnds = Convert.ToInt32(obj.cumulativeProbability * multiplyWith); //250
                    randDigEndStack.Push(obj.randomDigitAssignmentEnds);
                }

                timeBetweenArrivalaArraylist.Add(obj);
            }

            return(timeBetweenArrivalaArraylist);
        }
        public static ArrayList makeArrayListOFTimeBetweenArrivalDistribution(int from, int to)
        {
            double probabilityFinal = Convert.ToDouble(((double)from / (double)to)); //0.125
                                                                                     //static double probabilityVariable = probabilityVariable+ probabilityFinal;
            int    decimalCount = probabilityFinal.ToString().Split('.')[1].Length;
            double multiplyWith = Math.Pow(10, decimalCount);

            Stack <double> cuProbStack                  = new Stack <double>();
            Stack <double> randDigStartStack            = new Stack <double>();
            Stack <double> randDigEndStack              = new Stack <double>();
            ArrayList      timeBetweenArrivalaArraylist = new ArrayList();

            for (int i = from; i <= to; i++)
            {
                RandomDigitAssignmentModel obj = new RandomDigitAssignmentModel();

                if (timeBetweenArrivalaArraylist.Count.Equals(0))
                {
                    obj.time                  = i;                                                   //1
                    obj.probability           = Convert.ToDouble(probabilityFinal);                  //0.125
                    obj.cumulativeProbability = probabilityFinal;                                    //0.125
                    cuProbStack.Push(probabilityFinal);                                              //0.125
                    obj.randomDigitAssignmentStarts = 1;
                    randDigStartStack.Push(obj.randomDigitAssignmentStarts);                         //1
                    obj.randomDigitAssignmentEnds = (int)(obj.cumulativeProbability * multiplyWith); //125
                    randDigEndStack.Push(obj.randomDigitAssignmentEnds);                             //125
                }
                else
                {
                    obj.time        = i;                                                                       //2
                    obj.probability = probabilityFinal;                                                        //0.125
                    //obj.cumulativeProbability=probabilityVariable
                    obj.cumulativeProbability = Convert.ToDouble((cuProbStack.Peek() + probabilityFinal));     //0.250
                    cuProbStack.Push(obj.cumulativeProbability);                                               //0.250
                    obj.randomDigitAssignmentStarts = Convert.ToInt32(randDigEndStack.Peek() + 1);             //126
                    randDigStartStack.Push(obj.randomDigitAssignmentStarts);
                    obj.randomDigitAssignmentEnds = Convert.ToInt32(obj.cumulativeProbability * multiplyWith); //250
                    randDigEndStack.Push(obj.randomDigitAssignmentEnds);
                }
                timeBetweenArrivalaArraylist.Add(obj);
            }

            return(timeBetweenArrivalaArraylist);
        }