コード例 #1
0
        public NumberOfErrorsProbabilityScale(NumberOfErrorsProbabilityCalculator calculator, double accuracy)
        {
            List <double> scale          = new List <double>();
            List <double> probabilities  = new List <double>();
            double        sum            = 0;
            int           numberOfErrors = 0;

            while (1 - sum > accuracy && numberOfErrors <= calculator.BitsPerBlock)
            {
                var probabability = calculator.GetProbabilityOfOccuringErrorsInQuantity(numberOfErrors);
                probabilities.Add(probabability);
                sum += probabability;
                scale.Add(sum);
                numberOfErrors++;
            }
            _scale         = scale.ToArray();
            _probabilities = probabilities.ToArray();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            var pSet           = new NumberOfErrorsProbabilityCalculator(1000, 0.01);
            var pScale         = new NumberOfErrorsProbabilityScale(pSet, 0.001);
            var experimentator = new Experimentator(pScale);

            foreach (int n in experimentator.MakeExperiments_ReturnNumberOfErrors(50000))
            {
                Console.WriteLine(n);
            }



            /*
             * foreach (var p in pScale.Probabilities)
             * {
             *  Console.WriteLine(p);
             * }
             */
        }