Как случайно разбить мультимножество на наборы заданных размеров без дубликатов? - PullRequest
0 голосов
/ 28 августа 2018

Я ищу помощь по проблеме, с которой я не знаю, как с ней справиться. Я предполагаю, что подобные вопросы уже задавались, но я не мог найти это правильно.

Я пытаюсь сделать рандомизатор для плат в FFXII в C #, и есть часть проблемы, которую я не знаю, как решить: рандомизация.

Здесь я немного упрощаю: есть 12 досок с лицензиями, которые вы можете разблокировать, чтобы экипировать или использовать магию. Места на досках могут быть пустыми, и ни одна лицензия не может появляться дважды на одной плате, но лицензии могут появляться несколько раз, если они находятся на разных досках. Каждая плата также имеет разное количество лицензий. Всего на платах 1626 лицензий, число уникальных лицензий около 350. У меня есть список всех лицензий, а также количество раз, которое они встречаются в исходной настройке платы. (Тот, который вы получаете, если вы играете в игру в обычном режиме.)

Мне нужна помощь в создании 12 случайных списков лицензий заданного размера без дубликатов из множества наборов лицензий в оригинальной игре. Что меня особенно беспокоит, так это то, что алгоритм может застрять в состоянии, в котором больше дублирующих элементов, чем наборов с местом для этих элементов. Разумеется, общий размер 12 списков равен количеству элементов в мультимножестве. (Я сам размещу их на доске, это не так уж сложно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...