java排列组合代码实现(java实现排列组合算法)

Java 排列组合代码实现

简介

排列组合是数学中常见的概念,用于计算从给定元素集合中选择特定数量元素的可能方式。在 Java 中,可以通过使用 `java.util.Arrays` 类和 `java.util.stream.IntStream` 类实现排列组合。

排列

排列是指从给定元素集合中选取特定数量的元素,元素的顺序很重要。排列可以用以下公式计算:``` P(n, r) = n! / (n - r)! ```其中:

n 是元素总数

r 是要选择的元素数量

Java 代码实现排列

```java import java.util.Arrays;public class Permutation {public static void main(String[] args) {int[] arr = {1, 2, 3};int r = 2;int n = arr.length;int[] indices = new int[r];permute(arr, indices, 0, n, r);}private static void permute(int[] arr, int[] indices, int i, int n, int r) {if (i == r) {System.out.println(Arrays.toString(indices));return;}for (int j = 0; j < n; j++) {indices[i] = j;permute(arr, indices, i + 1, n, r);}} } ```

组合

组合是指从给定元素集合中选取特定数量的元素,元素的顺序不重要。组合可以用以下公式计算:``` C(n, r) = n! / (r!

(n - r)!) ```其中:

n 是元素总数

r 是要选择的元素数量

Java 代码实现组合

```java import java.util.Arrays; import java.util.stream.IntStream;public class Combination {public static void main(String[] args) {int[] arr = {1, 2, 3};int r = 2;int n = arr.length;int[] indices = new int[r];combine(arr, indices, 0, n, r);}private static void combine(int[] arr, int[] indices, int i, int n, int r) {if (i == r) {System.out.println(Arrays.toString(indices));return;}for (int j = i; j < n; j++) {indices[i] = j;combine(arr, indices, i + 1, n, r);}} } ```

**Java 排列组合代码实现****简介** 排列组合是数学中常见的概念,用于计算从给定元素集合中选择特定数量元素的可能方式。在 Java 中,可以通过使用 `java.util.Arrays` 类和 `java.util.stream.IntStream` 类实现排列组合。**排列** 排列是指从给定元素集合中选取特定数量的元素,元素的顺序很重要。排列可以用以下公式计算:``` P(n, r) = n! / (n - r)! ```其中: * n 是元素总数 * r 是要选择的元素数量**Java 代码实现排列**```java import java.util.Arrays;public class Permutation {public static void main(String[] args) {int[] arr = {1, 2, 3};int r = 2;int n = arr.length;int[] indices = new int[r];permute(arr, indices, 0, n, r);}private static void permute(int[] arr, int[] indices, int i, int n, int r) {if (i == r) {System.out.println(Arrays.toString(indices));return;}for (int j = 0; j < n; j++) {indices[i] = j;permute(arr, indices, i + 1, n, r);}} } ```**组合** 组合是指从给定元素集合中选取特定数量的元素,元素的顺序不重要。组合可以用以下公式计算:``` C(n, r) = n! / (r! * (n - r)!) ```其中: * n 是元素总数 * r 是要选择的元素数量**Java 代码实现组合**```java import java.util.Arrays; import java.util.stream.IntStream;public class Combination {public static void main(String[] args) {int[] arr = {1, 2, 3};int r = 2;int n = arr.length;int[] indices = new int[r];combine(arr, indices, 0, n, r);}private static void combine(int[] arr, int[] indices, int i, int n, int r) {if (i == r) {System.out.println(Arrays.toString(indices));return;}for (int j = i; j < n; j++) {indices[i] = j;combine(arr, indices, i + 1, n, r);}} } ```

标签列表