Если у меня есть массив, который выглядит как {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);
}