Tag: permutation

用Java统一生成随机置换

任何人都知道在Java中生成整数列表的随机排列的快速/最快方法。 例如,如果我想要一个长度为5的随机排列,答案将是1 5 4 2 3 ,其中每个都是5! 可能性同样可能。 我对如何解决这个问题的想法是运行一种方法,该方法在所需长度的数组中生成随机实数,然后对它们进行排序,返回索引,即0.712 0.314 0.42 0.69 0.1将返回5 2 3 4 1的排列。 我认为这可以在O(n^2)运行,并且目前我的代码在大约O(n^3)运行,并且此时我的程序的运行时间占很大比例。 从理论上讲,这似乎没问题但我在实践中并不确定。

二维arraylist的排列

我正在尝试制作一个二维数组列表,其中包含递归的每个可能的组合,例如1,2,3,4。 没有双倍的上升。 例如。 1,0,0 2,0,0 3,0,0 4,0,0 1,2,0 1,3,0 1,4,0 1,2,3 等等… 到目前为止我有 //this gives me all my numbers for(int i =0;i<arraySize;i++) index[i] = i; // and is the part that make the combinations for(int i = 0;i<arraySize;i++){ for(int x = 0;x<k;x++) combinations.get(i).set(x, index[i]); 编辑:另外我不打算打印结果我想将结果存储在二维数组中

Java – ArrayList元素的排列(整数) – 无法使其正常工作

我一直在四处寻找解决我的问题。 我解决了很多问题,但是这个问题仍然困扰着我:S很长一段时间我没有接触过Java编程(一般的编程)所以要在那里理解! ;) 我的目标是从整数数组中获得所有组合。 当我使用以下代码,应用于整数{1,2,3,4}的测试数组时,我希望: 1 2 3 4 1 2 4 3 1 3 2 4 1 3 4 2 2 1 3 4 2 1 4 3 (……) 但这就是我得到的 1 2 3 4 1 2 3 4 4 3 1 2 3 4 4 3 3 2 4 有人有线索,建议甚至解决方案吗? 提前致谢! public class Calculation{ […]

java的permutations / combinatorics库?

我正在寻找一个java库,它将生成一个集合的所有可能的顺序排列。 我能找到的唯一一个库是谷歌代码上的combinatoricslib 。 我发现很难相信这是唯一能够做到这一点的java库,我很坦率地对此感到非常惊讶。 JDK中有什么东西,或apache commons math或其他库提供相同的function吗? 我很高兴使用combinatoricslib,我只是无法相信这是唯一的选择,除了自己编写算法,这当然不是那么困难,但两者都不是.isBlankOrNull(),而apache commons包括它​​。

字符数组的每个组合

尝试显示数组字符的每个组合而不重复字母时遇到问题。 public static String[] getAllLists(String[] elements, int lengthOfList) { //initialize our returned list with the number of elements calculated above String[] allLists = new String[(int)Math.pow(elements.length, lengthOfList)]; //lists of length 1 are just the original elements if(lengthOfList == 1) return elements; else { //the recursion–get all lists of length 3, length 2, all the way up […]

Java中整数数组的置换算法

我有一个工作示例来生成String中的所有char排列,如下所示: static ArrayList permutations(String s) { if (s == null) { return null; } ArrayList resultList = new ArrayList(); if (s.length() < 2) { resultList.add(s); return resultList; } int length = s.length(); char currentChar; for (int i = 0; i < length; i++) { currentChar = s.charAt(i); String subString = s.substring(0, i) + s.substring(i + […]