Java 有没有办法找到数组的特定排列?
如果我有一个数组,看起来像Java 有没有办法找到数组的特定排列?,java,permutation,Java,Permutation,如果我有一个数组,看起来像{1,2,3,4},我想找到第5个置换,有没有一种方法可以不用计算置换1-4就可以做到这一点 我正在尝试为一个大小为52的数组执行此操作,我相信是52!相当于宇宙中更多的原子,所以找到所有的排列将是相当需要处理器的…而且不可能 编辑: 我不确定这是否有用,但这是我用来洗牌一副牌的当前shuffle()方法的代码,我还想使用排列 // mean around 234.95 pokes to get a random shuffle in blackjack after 1
{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);
}
你完全确定你指的是排列吗?或者,您指的是一种组合,其中输出应该是
1,2,3,4
,1,2,4,3
,1,3,2,4
,即元素的重新排列而不重复。另外,您的排列应该遵循什么格式?请提供输出的前5个“排列”以供参考。我没有任何格式,如果它有帮助的话,它应该是52张标准牌组的排列@RoboMopJust googlerank and unrank排列