Esempio n. 1
0
        public void Launch(IActor resultActor)
        {
            MonteCarloActor <long> .Cast((simnum, iteration, result) =>
            {
                if (iteration <= 0)
                {
                    return;
                }
                Random random   = new Random((int)simnum);
                long population = 1;
                for (long i = 0; i < iteration; i++)
                {
                    long newPopulation = 0;

                    for (long p = 0; p < population; p++)
                    {
                        newPopulation += random.Next(4);
                    }
                    population = newPopulation;
                    if (population <= 0)
                    {
                        break;
                    }
                }
                result.SendMessage(population);
            }, 30, resultActor, 100000);
        }
Esempio n. 2
0
        public void Launch(long nbSimul)
        {
            MonteCarloActor <double> .Cast((simnum, itera, result) =>
            {
                if (itera <= 0)
                {
                    return;
                }
                Random random = new Random((int)simnum);

                double inDisc = 0;
                for (int i = 0; i <= itera; i++)
                {
                    var x = random.NextDouble();
                    var y = random.NextDouble();
                    if (x *x + y *y <= 1.0)
                    {
                        inDisc++;
                    }
                }

                result.SendMessage(itera, inDisc);
            }, 100000, this, nbSimul);
        }