Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法找到数组的特定排列?_Java_Permutation - Fatal编程技术网

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 google
rank and unrank排列