Генерация чисел с разными вероятностями повтора - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д