Есть ли способ найти конкретную c перестановку массива? - PullRequest
0 голосов
/ 16 февраля 2020

Если у меня есть массив, который выглядит как {1,2,3,4}, и я хочу найти 5-ую перестановку, есть ли способ сделать это без вычисления перестановок 1-4.

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

РЕДАКТИРОВАТЬ: Я не конечно, если это полезно или нет, но это код для текущего метода shuffle(), который я использую, чтобы перетасовать колоду карт, я хотел бы также использовать перестановки ...

// mean around 234.95 pokes to get a random shuffle in blackjack after 1,000 iterations of a sample of 10,000 shuffles

public void shuffle(int seed) 
{
    SecureRandom rnd = new SecureRandom();
    Card bottomCard = deck.get(deck.size() - 1);
    int i = 0;
    while(!deck.get(0).equals(bottomCard))
    {
        Card poke = deck.get(0);
        deck.remove(0);
        deck.add(rnd.nextInt(seed), poke);
        System.out.println(i++);
    }

    deck.remove(0);
    deck.add(rnd.nextInt(seed), bottomCard);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...