|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
||||||
Рандомизатор по весам с вычитанием веса у выпавшего23.12.2020, 23:32. Показов 2838. Ответов 14
Метки нет (Все метки)
мне необходимо к примеру создать 4 предметов из пула .
создаю пул List<int> list = {1,2,3,4,5,6,7,8,9}; запустил рандом и получил к примеру 1,1,1,1 или схожую ситуацию 2,5,5,5 и так далее. ну то есть обычный рандом дает частые выпадения одинаковых чисел. далее захотелось как то разнообразить выпадения и решил я присобачить к ним шансы выпадения (через вес) с вычетом. Dictionary<int, int> weights; где первый int это наше число из пула list а второй int это шанс выпадения, который меняется.
НО если я хочу разный вес для разных итемов и чтобы распределялось (отнимаемое у выпавшего) в зависимости от изначального веса, то начинаются свистопляски и результат меня не устраивает. по этому вопрос) где почитать чтобы надыбать правильные формулы расчета чего то подобного? или может кто может помочь написать такое... задача дать возмоность задавать вес выпадения для каждого итема и при этом чтобы он (вес) изменялся (вычитался) если итем выпал в рандоме, а вычитаемое распределилось равномерно между остальными с учетом изначального веса.
0
|
||||||
| 23.12.2020, 23:32 | |
|
Ответы с готовыми решениями:
14
Рандомизатор текста Алгоритм Крускала - сортировка ребер по весам
|
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
||||||
| 24.12.2020, 01:36 | ||||||
|
MuaddibFremen, типа такого или надо менять веса еще в процессе генерирования?
1
|
||||||
|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
||||
| 24.12.2020, 10:48 [ТС] | ||||
|
но за код спасибо глянем. хотя беглым взглядом это тоже самое что у меня было. добраться до ПК еще не успел. поясните пожалйста код что делает
0
|
||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|||||||||||||||||
| 24.12.2020, 11:53 | |||||||||||||||||
Все равно, что:
[0, 10) [10, 30) [30, 40) [40, 100) И затем кинул случайное число [0, 100). Ничего не мешает список перестроить в процессе, главное, чтобы отрезки нужной длинны получались. Верхняя граница может быть любая, не обязательно 100.
1
|
|||||||||||||||||
|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
||||
| 24.12.2020, 12:34 [ТС] | ||||
|
а где ваш код не меняет значения веса? а вижу вы просто предложили. ну так это уже реализовано все в моем коде (ChangeWeights). в моем методе ChangeWeights я просто раскидываю на всех. проблема в том что как высчитывать распределение с учетом базовых весов. Добавлено через 2 минуты но если макс значение на другой позиции то, выражение уже даст не правильный результат. Добавлено через 1 минуту хотя нет. в данном случае вы просто показали правую границу для рандома
0
|
||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|||||||||||||||||||||
| 24.12.2020, 13:00 | |||||||||||||||||||||
1
|
|||||||||||||||||||||
|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
|
| 24.12.2020, 13:26 [ТС] | |
|
0
|
|
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|
| 24.12.2020, 13:31 | |
|
MuaddibFremen, пример? Обычно вероятность трогать не надо для равномерного распределения. От ситуации с подряд идущими одинаковыми значениями не избавиться в равномерном распределении.
0
|
|
|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
|||||||||
| 24.12.2020, 13:39 [ТС] | |||||||||
|
пример.
но в данном случае у меня все ОК работает. мне же нужно прибавлять соответственно базовому весу Добавлено через 2 минуты Добавлено через 5 минут для того я и хочу уменьшать вес чтобы избежать повторений
0
|
|||||||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|||||||
| 24.12.2020, 14:02 | |||||||
Хотя, можно вообще к весам не привязаться: - выпала 4 с 60%, мы ей уменьшили шанс на 59.99 - выпала снова 4 с шансом 0.01%
1
|
|||||||
|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
|||||||||||||||
| 24.12.2020, 14:48 [ТС] | |||||||||||||||
|
ну хотя бы пришли уже к этому)) фокусы начинают когда я хочу к anotherValue присобачить коэфициент в зависимости от базовых весов.
0
|
|||||||||||||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
||||||||||||||||
| 24.12.2020, 15:34 | ||||||||||||||||
|
MuaddibFremen, в итоге же тоже самое получится, не? Только погрешность еще больше станет:
Смутное представление финального эффекта. Может лучше как с колодой карт? 1. Кладем в колоду 54 карты с какими-то значениями 2. Мешаем 3. Вытаскиваем карту. Повтор? Кладем в конец колоды, пока в колоде не останутся повторы или она не станет пустой.
1
|
||||||||||||||||
|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
||||
| 24.12.2020, 16:28 [ТС] | ||||
|
вобщем там большие и меньшие идут в сторону среднего этак на 2-5%... вот и что не так? Добавлено через 1 минуту да и думаю не подойдет
0
|
||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|||
| 24.12.2020, 16:36 | |||
|
0
|
|||
|
250 / 186 / 68
Регистрация: 04.03.2019
Сообщений: 1,010
|
||
| 25.12.2020, 17:30 [ТС] | ||
|
каждый элемент по своему нужен и восстребован. но некоторые элементы выпадают чаще, а других не хватает. что нарушает логику.
0
|
||
| 25.12.2020, 17:30 | |
|
Помогаю со студенческими работами здесь
15
Какое отклонение веса тела от среднего веса можно гарантировать?
Как создать затемнение всего кроме выпавшего меню? имеется N предметов, веса которых a1,a2,a3,...,an. разделить эти предметы так,чтобы общие веса 3-х групп были одинаковы Напечатать в порядке возрастания веса список студентов подгруппы, вес которых не меньше среднего веса всей группы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2.
Номеклатура. . .
|