Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Dialkord228
5 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 91
Завершенные тесты: 1
#1

Генерация непрерывной случайной величины - C#

07.03.2017, 17:38. Просмотров 173. Ответов 2
Метки нет (Все метки)

Нужно сгенерировать методом фон Неймана(методом исключений) непрерывную случайную величину с плотностью как на прикрепленном фото. Нужно сделать на формах. Буду рад любой помощи, почитал литературу и ничего не понял... Надеюсь на вас!
0
Миниатюры
Генерация непрерывной случайной величины  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2017, 17:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генерация непрерывной случайной величины (C#):

Законы распределения случайной величины - C#
Здравствуйте. Возник вопрос: есть ли стандартные методы генерации нормального, логнормального, биномиального, Пуассоновского и прочих...

Генерация случайной последовательности - C#
Ребят, как сделать генерацию случайной последовательности пароля, учитывая, что код имеет постоянную составляющую, например X6J и разбит на...

Генерация случайной буквы от A до я - C#
Как получить случайную букву от A до z?когда делаю такой код: bykva=(char)rand.Next(0x0041 , 0x007A) может создать цифру или знак

Как создать ступенчатый массив случайной величины - C#
как создать ступенчатый массив случайной величины?

Реализовать алгоритм генерации случайной величины распределенной по нормальному закону Гаусса - C#
Здравствуйте. Хотелось бы узнать как можно на visual c# реализовать алгоритм генерации случайной величины распределенной по нормальному...

.NET 4.x Распределение (не совсем)случайной величины - C#
Здравствуйте. Возникла идея визуального отображение функции, которая представляет собой зависимость некой интенсивности от 2-х координат....

2
TopLayer
685 / 508 / 194
Регистрация: 23.10.2016
Сообщений: 1,206
Завершенные тесты: 7
07.03.2017, 18:35 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
class MainForm : Form
{
    private Chart _chart;
    
    public MainForm()
    {
        _chart = new Chart { Parent = this, Dock = DockStyle.Fill };
 
        var values = new List<float>();
        var random = new Random();
 
        for (int i = 0; i < 100000; i++)
            values.Add(NextRandom(random, Distribution, 0, 8, 0.25f));
 
        var x = Enumerable.Range(0, 1000).Select(i => 8f / 1000 * i).ToList();
        var y = x.Select(e => values.Count(v => v >= e && v <= e + 8f / 1000)).ToList();
 
        var name = "res";
        _chart.ChartAreas.Add(name);
        _chart.Series.Add(name);
        _chart.Series[name].ChartType = SeriesChartType.Spline;
        _chart.Series[name].Color = Color.Red;
        _chart.Series[name].Points.DataBindXY(x, y);
 
        AddSeries("prob", Color.Blue, Distribution, 0, 8);
    }
    
    private void AddSeries(string name, Color color, Func<float, float> f, float left, float right, float step = 1e-2f)
    {
        _chart.ChartAreas.Add(name);
        _chart.Series.Add(name);
        _chart.Series[name].ChartType = SeriesChartType.Spline;
        _chart.Series[name].Color = color;
        
        var x = new List<float>();
        var y = new List<float>();
        
        for (;left <= right; left += step)
        {
            x.Add(left);
            y.Add(f(left));
        }
        
        _chart.Series[name].Points.DataBindXY(x, y);
    }
    
    private float Distribution(float value)
    {
        value %= 2;
        return value * 0.25f / 2;
    }
    
    private float NextRandom(Random random, Func<float, float> distribution, float min, float max, float maxDistribution)
    {
        while (true)
        {
            var k1 = (float)random.NextDouble();
            var k2 = (float)random.NextDouble();
            
            var derivedK1 = min + (max - min) * k1;
            var derivedK2 = maxDistribution * k2;
            
            if (derivedK2 <= distribution(derivedK1))
                return derivedK1;
        }
    }
}
 
void Main()
{
    Application.Run(new MainForm());
}
1
Миниатюры
Генерация непрерывной случайной величины  
Dialkord228
5 / 5 / 3
Регистрация: 30.11.2015
Сообщений: 91
Завершенные тесты: 1
07.03.2017, 20:21  [ТС] #3
TopLayer, а это WindowsForms или WPF?

Добавлено через 22 минуты
TopLayer, все, разобрался, спасибо! А скажите еще, а можно ли сделать так чтобы когда я запускаю программу у меня выводился список этих сгенерированых случайных чисел в каком-то листбоксе, и как-то засунуть гистограмму в кнопку, чтобы при открытии программы показывало эти числа, а как на кновку нажму, то в дочерней форме гистограмма вылезет? Пойду пока-что сам попробую это реализовать, но буду благодарен, если что-нибудь посоветуете!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2017, 20:21
Привет! Вот еще темы с ответами:

Система непрерывной интеграции CI - C#
Доброго времени суток! Уважаемые форумчане, помогите разобраться с CI! На данный момент я разбираюсь с Jenkins, проект мой на (С#)...

Плотность непрерывной случайной величины - Теория вероятностей
Здравствуйте!

Дисперсия непрерывной случайной величины - Теория вероятностей
Здравствуйте, не могу найти дисперсию. Мат. ожидание нашёл - ответ верный. M(X)=(pi-2)/4 D(X)=int от 0 до pi/4 - ((pi-2/4)^2 ...

Плотность распределения непрерывной случайной величины - Теория вероятностей
Плотность распределения непрерывной случайной величины X имеет вид Видел подобную тему, но мой квадрат косинуса все портит, не знаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru