`

一个排列组合算法

 
阅读更多
public class Zuhe {
	public static void main(String[] args) {
		String s = "122345";// 这里是要用到的所有数组成的一个字符串,其它字符同样适用
		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++) {
				if (i != k)
					swap(array, k, i);
				zuhe(array, n, k + 1);
				if (i != k)
					swap(array, i, k);
			}
		}
	}

	private void swap(char[] a, int x, int y) {
		char temp = a[x];
		a[x] = a[y];
		a[y] = temp;
	}
}

分享到:
评论

相关推荐

    基于c语言排列组合算法

    基于C语言排列组合算法 排列组合是计算机科学中一个重要的概念,它广泛应用于数学、统计学、计算机科学等领域。排列组合问题的算法设计是指如何高效地生成所有可能的排列或组合。今天,我们将讨论基于C语言的排列...

    C#实现排列组合算法完整实例

    在C#编程中,排列组合算法是解决许多数学和计算机科学问题的基础,特别是在处理数据排序、统计计算以及算法设计时。本实例详细介绍了如何利用C#实现这两种基本的算法:排列(Permutation)和组合(Combination)。...

    PHP实现多种类型的排列组合算法

    总的来说,PHP虽然不是专门用于算法计算的语言,但通过巧妙的编程技巧和递归方法,可以有效地实现排列组合算法。以上代码示例展示了如何在PHP中实现这两种算法,通过学习和实践,开发者可以更好地理解和应用这些概念...

    基于c语言的排列组合算法

    在这个“基于C语言的排列组合算法”中,我们将深入探讨这两个概念以及如何使用C语言来实现它们。 排列是有限集合中的元素的一种有顺序的排列方式。在C语言中,我们可以使用递归方法来实现排列算法。首先,我们需要...

    excel VBA - 排列组合生成算法 - 可指定和值 - 可输出文本文件.xls

    excel VBA - 排列组合生成算法 - ,可快速生成指定项目的所有排列组合

    qtc++排列组合实现

    在编程领域,排列组合是算法设计中的一个重要概念,它涉及到...通过以上方法,我们可以在Qt C++环境中高效地实现排列组合算法。无论是用于学术研究,还是解决实际的编程问题,掌握这些知识都将对你的编程生涯大有裨益。

    算法 排列组合生成器 后端

    这个项目为开发者提供了一个学习和实践排列组合算法、SpringBoot框架以及H2数据库整合的绝佳案例。它不仅展示了如何在后端实现复杂的算法,还涵盖了数据库管理和API设计等多个核心技能。对于希望提升后端开发能力的...

    Java排列组合算法分析和代码实现

    总之,这个资源包提供了一个很好的平台,让你能够深入理解并实践Java中的排列组合算法。通过学习和理解这些代码,你不仅可以增强算法设计能力,还能提高解决实际编程问题的能力。记得动手实践,结合文档和代码,将...

    java排列组合算法

    在Java中实现排列组合算法可以帮助我们解决很多实际问题,比如数据排序、数据筛选等。下面将详细介绍排列和组合的基本概念以及在Java中的实现方法。 **排列** 是指从n个不同元素中取出m(m≤n)个元素,按照一定的...

    c++ 排列组合算法,代码简单

    根据给定的文件信息,我们可以总结出以下关于C++中排列组合算法的知识点: ### C++中的排列组合算法实现 #### 1. 排列算法(Permutation) 在C++中,排列算法通常用于生成一组元素的所有可能顺序。在给定的代码中...

    排列组合算法实现

    排列组合算法实现,支持模板类。支持重复数的排列。算法采用递归方法,简单易懂。

    计算数字排列组合,任意数字的组合。

    8. **效率优化**:对于大规模的排列组合问题,优化算法和数据结构至关重要,如使用记忆化搜索减少重复计算,或者使用并行计算加速计算过程。 总之,计算数字排列组合是一项基础但重要的IT技能,涉及数学、算法、...

    阶乘排列组合计算

    总之,这个用Delphi编写的阶乘排列组合计算程序,不仅是一个实用的计算工具,也是理解和学习相关数学概念的好帮手。通过它可以深入理解阶乘、排列和组合的计算原理,同时体验到Delphi在软件开发中的优势。

    排列组合生成算法

    - 输入排列组合算法的代码,确保正确包含必要的头文件,如`#include &lt;iostream&gt;`,`#include &lt;algorithm&gt;`等。 - 使用`std::cout`打印结果,或者将结果保存到文件中。 - 编译并运行程序,观察输出结果。 4. **...

    排列组合公式排列组合计算公式[规整].pdf

    排列组合是数学中一个重要概念,它用于计算从一个集合中选择若干元素的方法数。排列和组合是两种不同的概念,排列强调元素的顺序,而组合不强调顺序。 排列(Permutation): * 排列是指从一个集合中选择 若干元素...

    排列组合算法

    在编程领域,排列组合算法是解决许多问题的关键技术,尤其在数据处理、数据分析以及优化问题中扮演着重要角色。在C#编程环境下,利用这些算法可以有效地生成所有可能的序列或者选择,帮助开发者构建出高效的解决方案...

    组合数学之排列组合生成算法

    组合数学之排列组合生成算法,很好的学习组合排列算法的资料

    Java排列组合算法 - 郭睿的专栏 - CSDN博客

    Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客

    Java排列组合_组合算法

    在编程领域,排列组合是算法设计中的一个重要概念,特别是在数据结构和算法的学习中。Java作为一种广泛应用的编程语言,提供了丰富的工具来实现这类算法。本文将深入探讨如何在Java中实现排列组合,特别是基于描述中...

Global site tag (gtag.js) - Google Analytics