public class Zuhe {
public static void main(String[] args) {
String s = "123456";// 这里是要用到的所有数组成的一个字符串,其它字符同样适用
char[] c = s.toCharArray();
new Zuhe().zuhe(c, c.length, 0);
System.out.println("可能的组合数:" + kk);
}
static int kk = 0;
private void zuhe(char[] array, int n, int k) {
if (n == k) {
if (array[2] != '4') {// 第三个位置不能出现4
String str = new String(array);
if (str.indexOf("53") < 0 && str.indexOf("35") < 0) {// 3,5不能连续出现
System.out.println(str);
++kk;
}
}
} else {
for (int i = k; i < n; i++) {
swap(array, k, i);
zuhe(array, n, k + 1);
swap(array, i, k);
}
}
}
private void swap(char[] a, int x, int y) {
char temp = a[x];
a[x] = a[y];
a[y] = temp;
}
}
这道题我在两次笔试中遇到,希望大家能够理解。
分享到:
相关推荐
6位数,共有几种排列组合的算法,java实现
总之,这个资源包提供了一个很好的平台,让你能够深入理解并实践Java中的排列组合算法。通过学习和理解这些代码,你不仅可以增强算法设计能力,还能提高解决实际编程问题的能力。记得动手实践,结合文档和代码,将...
Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客
在Java中实现排列组合算法可以帮助我们解决很多实际问题,比如数据排序、数据筛选等。下面将详细介绍排列和组合的基本概念以及在Java中的实现方法。 **排列** 是指从n个不同元素中取出m(m≤n)个元素,按照一定的...
在编程领域,排列组合是算法设计中的一个重要概念,特别是在数据结构和算法的学习中。Java作为一种广泛应用的编程语言,提供了丰富的工具来实现这类算法。本文将深入探讨如何在Java中实现排列组合,特别是基于描述中...
本文将深入探讨Java中实现排列组合算法的方法,帮助开发者更好地理解和运用这些概念。 排列是有序的选择,而组合是无序的选择。在Java中,我们可以使用递归、回溯法或者迭代的方式来实现这两种算法。下面我们将详细...
排列组合算法实现,支持模板类。支持重复数的排列。算法采用递归方法,简单易懂。
【排列组合的算法作业 Java】 在编程领域,排列和组合是经典的算法问题,它们属于组合数学的一部分,常常出现在数据结构与算法课程的作业中。排列指的是从给定的元素集合中选择并按特定顺序排列所有可能的组合,而...
该资源提供了Java中排列组合的全面指南。文档讲解了排列组合的基本概念,包括如何计算阶乘、如何生成排列和组合,以及如何将这些概念应用于解决实际问题。 此外,文档还提供了各种排列组合算法的详细代码示例和实现...
这个"实现了排列组合算法的类(JAVA).rar"文件提供了一种高效的JAVA实现,可以处理任意类型数组的排列和组合。下面将详细讨论排列组合的基本概念,以及在JAVA中实现这些算法的关键点。 排列是指从n个不同元素中...
总结来说,从n个数组中取出所有排列组合的Java实现涉及到递归算法、回溯法以及数据结构的操作。理解这些概念并能够熟练运用是成为一名优秀程序员的关键。通过这个例子,我们可以看到如何利用Java的灵活性和表达力来...
在IT行业中,排列组合生成器是一种常见的工具,用于生成所有可能的排列或组合,这在很多领域都有应用,比如数据分析、密码学、游戏设计、测试用例生成等。本项目专注于后端实现,使用了SpringBoot框架,这是一种流行...
在Java编程中,排列组合是解决许多问题的基础,特别是在处理数据和算法设计时。本文将探讨两种不同的Java实现方法,分别基于二进制状态法和递归思想,用于生成排列组合。 首先,我们来看第一种方法:**二进制状态法...
总之,这个Java程序结合了组合数学的排列概念和递归算法,通过深度优先搜索策略生成排列,并可能提供用户友好的界面展示。理解和掌握这些知识对于提升编程能力,特别是在算法设计和问题求解方面,有着显著的帮助。
高效的Java版排列组合算法 Java排列组合算法是计算机科学中的一种基本算法,它广泛应用于数据分析、机器学习、人工智能等领域。下面将详细介绍高效的Java版排列组合算法的实现。 一、排列组合算法的概念 排列组合...
在编程领域,排列组合是一种常见的算法问题,尤其在数据结构和算法的学习中占有重要地位。排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列的所有可能的方式;组合则是指从n个不同元素中不考虑...
3. **组合数学**:在生成Gray码的过程中,可能用到了组合数学中的排列组合概念。例如,对于n位Gray码,其总数是2^n,可以通过递归或者非递归方法计算出所有可能的序列。 4. **递归算法**:一种可能的生成Gray码的...
根据给定文件的信息,我们可以总结出以下关于Java中m取n排列组合的实现方式,包括重复与不重复的情况,以及如何使用for循环嵌套和递归来实现这些算法。 ### Java中m取n排列组合实现 #### 一、背景介绍 在计算机...
Java算法是程序设计的基础,它在软件开发中扮演着至关重要的角色。这个“java算法140实例”压缩包显然是一份丰富的学习资源,旨在帮助初级Java开发者掌握基础到进阶的算法知识。这里我们将详细探讨其中可能涵盖的...
阶乘与排列组合算法是计算机科学中基础但至关重要的概念,尤其在概率论、统计学、图论和算法设计等领域有着广泛的应用。阶乘(n!)是计算一个正整数n的所有小于等于n的正整数乘积,而排列组合则是解决如何从给定元素...