Генерация чисел с разными вероятностями повтора - C#

Узнай цену своей работы

Формулировка задачи:

Задача на на первый взгляд простая) Но скажите как реализовать. Задаётся диапазон чисел допустим 0 и 1 т.есть в генерированной последовательности должны присутствовать числа 0 и 1. и сделать возможность задать число, которое задает вероятность появления чисел в последовательности. Подскажете как это можно сделать?

Решение задачи: «Генерация чисел с разными вероятностями повтора»

textual
Листинг программы
  class RandomSequence
    {
        private readonly double[] _probabilities;
        private readonly Random _random = new Random();
 
        public double[] Probabilities
        {
            get
            {
                return (double[]) _probabilities.Clone();
            }
        }
 
        public RandomSequence(double[] probabilities)
        {
            if (Math.Abs(probabilities.Sum() - 1) > double.Epsilon)
                throw new ArgumentException("Total probability should be 1");
            _probabilities = probabilities;
        }
 
        public int Next()
        {
            var next = _random.NextDouble();
            double sum = 0;
            for (int i = 0;; i++)
            {
                sum += _probabilities[i];
                if (sum > next)
                    return i;
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы