Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.09.2019
Сообщений: 8

Случайное распределение с областью. рандом

21.12.2022, 23:18. Показов 378. Ответов 5

Студворк — интернет-сервис помощи студентам
Добрый день.

Вопрос по выборке значений из функции рандом.

Если я наберу данную функцию N раз, то количество всех возможных значений будет приблизительно равно.
C#
1
rand.Next(0,20)
Я хочу сделать так, чтобы бОльшее кол-во значений выпадало на 20 или на 10 и т.д. И контролировать "процент выпадения" или "процент удаленности" от целевого значения.

Прошу подсказать в какую сторону копать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2022, 23:18
Ответы с готовыми решениями:

Можно ли, используя рандом, сгенерировать случайное число в диапазоне [48,57] U [65,90] U [97-122]
Уважаемые форумчане Можно ли используя рандом сгенерить случ число в диапазоне U U Или написать 4 рандома придется? цель сгенерить...

Случайное распределение переменных по парам
Здравствуйте, как реализовать подобное. Даны 6 переменных, (например: p1, p2, p3, p4, p5, p6 ) Которые посредством textbox'ов...

Рандом слов, случайное слово
Всем привет, на днях появилась задача из edit'ов брать слова и их случайным образом мешать и должно получиться одно слово. Предлагаю ниже...

5
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
21.12.2022, 23:25
Не совсем ясна задача
Я так понимаю у вас есть цикл, в котором вы генерируете значения
Тогда цикл пусть и регулирует в каком интервале и с каким процентом это надо делать
0
21.12.2022, 23:28

Не по теме:

https://hsto.org/extt/61/4e/85/614e8511e728b526143426.png

0
0 / 0 / 0
Регистрация: 30.09.2019
Сообщений: 8
21.12.2022, 23:32  [ТС]
Цитата Сообщение от brian778 Посмотреть сообщение
Не совсем ясна задача
Я так понимаю у вас есть цикл, в котором вы генерируете значения
Тогда цикл пусть и регулирует в каком интервале и с каким процентом это надо делать
Ну допустим я прогоню 100 раз.
C#
1
rand.Next(0,10)
тогда у меня каждое возможное значение повторится 10 раз (условно говоря). Десять нулей, десять единиц и т.д

Я хочу например, чтобы значения ближе к 10 выпадали чаще чем удаленные.
Например: одна единица, две двойки, три тройки... пятьдесят девяток. Опять же условно.
Как это лучше сделать? Чтобы можно было выбрать значение, которое должно выпадать чаще и распределение других значений.
0
419 / 311 / 107
Регистрация: 30.08.2022
Сообщений: 1,195
21.12.2022, 23:40
Задачи разные
Если вам нужно это
Цитата Сообщение от Inkvee Посмотреть сообщение
бОльшее кол-во значений выпадало на 20 или на 10
То вы просто в цикле решаете пора ли использовать интервал 0,10 либо 10,20

А это
Цитата Сообщение от Inkvee Посмотреть сообщение
одна единица, две двойки, три тройки... пятьдесят десяток
Вообще не требует генератора

Добавлено через 3 минуты
Но вообще чтоб изменить мат ожидание есть способы. Но я их не помню. Можете покапать в эту сторону
0
22 / 17 / 5
Регистрация: 03.03.2022
Сообщений: 77
22.12.2022, 00:43
Цитата Сообщение от Inkvee Посмотреть сообщение
Я хочу сделать так, чтобы бОльшее кол-во значений выпадало на 20 или на 10 и т.д. И контролировать "процент выпадения" или "процент удаленности" от целевого значения.
Оригинальный код нашёл здесь Шанс. Создать шанс
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
const int n = 20;
            int shans = 0;
            int value = 0;
            int range = 0;
            Console.Write("Введите желаемое значение -> ");
            var r = new Random();
            int.TryParse(Console.ReadLine(), out value);
            Console.Write("Введите диапозон отдалённости от желаемого значение -> ");
            int.TryParse(Console.ReadLine(), out range);
            Console.Write("Введите % успеха для желаемого значение -> ");
            int.TryParse(Console.ReadLine(), out shans);
            double res = shans / 100.0; 
            int dealcount = 0, notdealcount = 0;
            bool MinMax = false;
            for (int i = 0; i < n; i++)
            {
                if (range > 0)
                {
                    if(range <= value)
                    {
                        if (r.NextDouble() < res)
                        {
                            Console.WriteLine(r.Next(value - range, value + range +1));
                            dealcount++;
                        }
                        else
                        {
                            Console.WriteLine(r.Next(0, value - range));
                            if(range == value)
                            {
                                dealcount++;
                                continue;
                            }
                            notdealcount++;
                        }
                    }
                    else
                    {
                        MinMax = true;
                    }
                    while (MinMax)
                    {
                        Console.WriteLine("Диапозон отдалённости больше желаемого значения. Введите снова корректный диапозон");
                        int.TryParse(Console.ReadLine(), out range);
                        if (range <= value)
                        {
                            MinMax = false;
                        }
                    }
                }
                else
                {
                    if (r.NextDouble() < res)
                    {
                        Console.WriteLine(value);
                        dealcount++;
                        continue;
                    }
                    else
                    {
                        Console.WriteLine(r.Next(0, value));
                        notdealcount++;
                    }
                }
            }
            Console.WriteLine("Количество желаемого значения и приближённых к нему значений - {0}\tКоличество отдалённых значений от желаемого - {1}", dealcount, notdealcount);
            Console.ReadKey();
Возможно, присутствуют баги, если вы их нашли - прошу оповестить меня о них
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2022, 00:43
Помогаю со студенческими работами здесь

Случайное распределение
Если несколько имен(или ников,неважно) возможно ли написать программу которая я бы расспределяла их по парам случайным образом? а то я...

Случайное распределение
Можно ли задать такое распределение, как на картинке? То есть на нормальное распределение накладывается распределение в виде...

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

Случайное равномерное распределение
Здравствуйте. Наткнулся на страницу с описанием шифра Вермана -...

Случайное распределение кораблей
#define GRID_SIZE 10 int deployment_grid = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru