`
lylegend13
  • 浏览: 82834 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

长度为N的数组的全组合

阅读更多
//A.java

public class A {

	final static int N=10;
	
	public static void main(String[] args) {
		int count = 0;
		byte a[][] = exec(N);
		for (int i = 0; i < a.length; i++) {
			System.out.print(count++ + ":");
			for (int j = 0; j < a[0].length; j++) {
				if (a[i][j] == 1) {
					System.out.print(j);
				}
			}
			System.out.println();
		}
	}

	static byte[][] exec(int n) {
		byte[][] a = new byte[(int) Math.pow(2, n)][n];
		for (int i = 0; i < a.length; i++) {
			// 使用Java自带的库函数,转为二进制。位数从右至左
			for (int j = 0; j < Integer.toBinaryString(i).length(); j++) {
				if (Integer.toBinaryString(i).charAt(Integer.toBinaryString(i).length() - 1 - j) == '1') {
					a[i][n - 1 - j] = 1;
				}
			}
		}
		return a;
	}
}

 

0
0
分享到:
评论

相关推荐

    quanpailie.rar_数组排列组合

    ,其中n是数字串的长度。 全排列的算法通常采用回溯法或者递归的方式来实现。回溯法是一种试探性的解决问题方法,当遇到不符合条件的情况时,会退回一步尝试其他路径。在数组的全排列问题中,我们从第一个位置开始...

    求struct各种组合的长度,以及指针、数组、字符串的长度

    本篇将深入探讨`struct`各种组合的长度,以及指针、数组和字符串的长度。 首先,让我们来看一下`struct`的组合长度。在C/C++中,`struct`是用来组织不同类型的数据的结构体。当你创建一个`struct`并声明实例时,`...

    Matlab语言入门-matlab求数组长度

    在MATLAB中,索引从1开始,因此,如果你知道数组长度`n`,你可以安全地访问下标从1到`n`的元素。例如,`vec(1:length(vec))`可以用来遍历整个一维数组。 4. 循环结构: 在循环处理数组时,数组长度常常被用作循环...

    找出数组3个数字相加为0的组合

    这种解决方案的时间复杂度是O(n^2),其中n是数组的长度,这是因为我们使用了两层循环来遍历所有可能的组合。空间复杂度是O(1),因为我们只使用了常量级别的额外空间。在实际应用中,对于大规模数据,可能会考虑更...

    使用Excel两个一维数组构造二维数组.rar

    这里的`A1:A_n`和`B1:B_n`分别代表两个一维数组的范围,`n`为数组长度。注意,公式两边的花括号`{}`是手动输入的,表示这是一个数组公式,而非常规公式。 3. **应用公式**:在输入公式后,不要直接按Enter键,而是...

    用数组求N的阶乘,可以运行

    1. 初始化一个长度为N+1的数组,数组的第一个元素为1,因为0的阶乘定义为1。 2. 从第二个元素开始,遍历数组,将当前元素与前一个元素相乘,并将结果存储回当前位置。 3. 当遍历完成时,数组的最后一个元素就是N的...

    将两数组合并成一个数组并排序

    假设`A`和`B`的长度分别为`n`和`m`,那么合并这两个数组可以分为以下步骤: 1. 创建一个新的数组`C`,长度为`n + m`,用来存放合并后的结果。 2. 初始化两个指针`pA`和`pB`,分别指向`A`和`B`的首元素。 3. 遍历`C`...

    C语言数组学习教案.pptx

    ` 定义了一个名为score的整型数组,长度为100。数组的大小必须在定义时给定,在程序的运行过程中它是不能被改变的。 二、数组的引用 数组元素的引用需要使用下标,例如:`a[0]、a[1]、…、a[99]`。数组元素的使用...

    将两个有序数组,合并成另一个有序的数组,升序

    它的复杂度为O(n + m),其中n和m分别是两个输入数组的长度。由于只需要一次线性扫描,所以它是一种效率较高的解决方案。在实际应用中,这种算法常用于优先队列、堆排序等场景,或者在数据库和数据处理系统中对数据...

    组合两个字符数组,并排序

    该算法的时间复杂度为O(n^2),其中n为数组的长度。在这个函数中,我们可以看到两个嵌套的for循环。外层循环用于控制比较的次数,而内层循环用于比较数组中的每一个元素。如果发现当前元素大于下一个元素,则交换它们...

    c语言动态数组的实现方法

    // 获取数组长度 int* arr = (int*)malloc(n * sizeof(int)); // 分配n个整数的空间 ``` 这样就创建了一个包含`n`个整数的一维动态数组。数组的每个元素可以通过`arr[i]`访问,其中`0 &lt;= i &lt; n`。 三、二维动态...

    c# 数据组合 从一组数据中 返回组合的和等于某个值 的所有组合

    4. **调用递归函数**:从数组的第一个元素开始调用递归函数,传入初始组合的总和为0,索引为0,目标值为目标值。 5. **返回结果**:最后,返回存储所有满足条件组合的结果列表。 在`WindowsFormsApplication2`这个...

    C# 杨辉三角 交错数组

    这个数列在计算机程序中常用于计算组合数,因为它的第n行第k个数字正好是n选k的组合数。 在C#中实现杨辉三角,我们可以使用二维数组或者交错数组。交错数组的优势在于其灵活性,它允许我们创建不同长度的子数组,这...

    交换数组和差最小

    1. **时间复杂度**:由于采用了双重嵌套循环的方式,时间复杂度为 O(n^2),其中 n 是数组长度。 2. **空间复杂度**:除了数组本身外,还需要额外的空间来存储每次交换后的最小差值,空间复杂度为 O(n)。 #### 结论 ...

    职工结构体数组,从键盘输入N位职工信息,打印输出最高的工资

    在C语言中,结构体是一种复合数据类型,它允许我们将不同类型的数据组合在一起形成一个新的数据类型。在这个例子中,我们创建了一个表示职工信息的结构体,包括姓名、部门和工资等属性。接着,我们使用结构体数组来...

    Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例

    本示例讲解了如何在Python 2.7中利用笛卡尔积算法实现N个数组的排列组合运算。 首先,我们创建了一个名为`Cartesian`的类,它包含两个重要的变量: 1. `datagroup`: 这是一个二维数组,存储了我们需要进行组合的N...

    第7章 数组-9数组下标越界问题分析1

    数组的下标是从0开始的,因此一个长度为N的一维数组,其有效的下标范围是0到N-1。如果尝试访问下标小于0或者大于等于N的元素,就会发生下标越界错误。这种错误在编译期间通常不会被检测出来,因为编译器默认程序员...

    Java写的一个数组的中,m个元素的组合问题

    例如,数组`a, b, c, d`中选取2个元素的组合为`a b, a c, a d, b c, b d, c d`。这里的m等于2,也就是我们常说的二元组或对。 在Java中,实现这样的功能通常需要使用递归或回溯算法。递归是一种函数调用自身的技术...

    N个数中选1个或多个,其和为N的倍数

    ### N个数中选1个或多个,其和为N的倍数 #### 背景与问题描述 本篇文章将探讨一个有趣的编程问题:如何从给定的N个整数中选择一个或多个整数,使它们的总和能够被N整除。这个问题在算法设计、数据结构学习以及编程...

    归并排序(链表和数组) 数组和链表.pdf

    归并排序的时间复杂度为O(n log n),其中n是数组或链表的长度。这种时间复杂度来自于归并排序的递归性质,每次递归调用都将问题规模减半,直到达到基本情况为止。 归并排序的空间复杂度 归并排序的空间复杂度为O(n...

Global site tag (gtag.js) - Google Analytics