Вычисление вероятности и алгоритм для подпоследовательностей

Это игра, в которой карты 1-50 раздаются двум игрокам, у каждого по 10 карт, расположенных в случайном порядке. Цель состоит в том, чтобы отсортировать все карты, и тот, кто сделает это первым, станет победителем. Каждый раз, когда человек может взять карту из колоды, он должен заменить существующую карту. Игрок не может обменять свои карты. то есть только он может заменить свою карту картой из колоды. Сброшенная карта вернется в колоду в случайном порядке. Теперь мне нужно написать программу, которая сделает это эффективно.

Я придумал следующее решение 1) найти все подпоследовательности, которые находятся в порядке возрастания в заданном наборе карточек 2) для каждой подпоследовательности вычислить вес на основе вероятности нет способов решить проблему. например: если у меня есть подпоследовательность 48,49,50 с индексом 2,3,4, вероятность завершения задачи с этой подпоследовательностью равна 0. Таким образом, вес умножается на 0. Точно так же, если у меня есть последовательность 18,20,30 с индексом 3,4,5, тогда ни один из возможных способов завершения игры - это 20 возможных карт для выбора из 6-10 и 17 возможных карт для выбора в качестве первых двух. позиция, 3) для каждой карты из колоды я просматриваю список и пересчитываю вес частей, чтобы найти более подходящую.

Что ж, у этого решения может быть много недостатков, но я хотел знать 1) Учитывая подпоследовательность, как найти вероятность возможных способов завершения игры? 2) Какие есть лучший алгоритм для поиска всех подпоследовательностей?

9
задан Ellie Kesselman 6 November 2011 в 13:16
поделиться