k个元素的子集 C(n,k)
来源:互联网 发布:mysql攻击 编辑:程序博客网 时间:2024/05/21 03:57
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20
#define LOOP 1
void main(void)
{
int set[MAXSIZE];
int n;
int k;
int position;
int i, j;
char line[100];
printf("\nAll k Elements Subsets from a n Elements Set");
printf("\n============================================");
printf("\n\nNumber of Elements in the Set --> ");
gets(line);
n = atoi(line);
printf("\n\nNumber of Elements in Subset ---> ");
gets(line);
k = atoi(line);
for (i = 0; i < k; i++) /* initialize the subset to */
set[i] = i + 1; /* {1,2,3,...,k} */
printf("\n{%d", set[0]); /* display it */
for (j = 1; j < k; j++)
printf(",%d", set[j]);
printf("}");
position = k - 1; /* 'position' indicates the */
while (LOOP) { /* pos to be increased */
if (set[k-1] == n) /* if last pos is full, then*/
position--; /* move position left */
else /* or if not full, then the */
position = k - 1; /* pos is always the last*/
set[position]++; /* so add one to the pos. */
for (i = position+1; i < k; i++) /* add inc. all*/
set[i] = set[i-1] + 1; /* pos to its right */
printf("\n{%d", set[0]); /* display it. */
for (j = 1; j < k; j++)
printf(",%d", set[j]);
printf("}");
if (set[0] >= n-k+1) break; /* if 1st pos full */
}
}
- k个元素的子集 C(n,k)
- 列出所有K个元素的子集
- 从N个元素中取k个元素子集的c++实现
- 从N个元素中取k个元素子集的减治法实现
- N个元素取出最大(小)的K个元素
- N个元素取出最大(小)的K个元素
- 题目:N个元素取出最大的K个元素
- 在O(n)时间内找出最小的k个元素
- 查找n个数中最小的k个元素
- 找n个数字中第k小的元素
- 列出所有K个元素的子集-----2013年1月26日
- 数组长度为n,其中有k-1个元素出现的次数大于 n/K(k>1),请找出这个K-1元素?
- 求m个元素集合中n个元素的所有子集(C/OC)
- 最小的k个元素
- 无序n个元素中,寻找第K大的元素 O(n)
- m个元素的n元素子集(c/python略)
- 生成集合[n]的所有k-子集MATLAB代码
- 寻找N个元素中最大的K个元素解法
- 列出所有排列(字典顺序)
- java日期知识点整理及例子程序
- *****
- Android 常用方法
- Node.JS学习笔记
- k个元素的子集 C(n,k)
- Oracle 8i迁移到10g注意问题
- c++流文件操作,针对string
- 集合的所有分割
- J2EE中 A项目 链接B项目 注意点
- GTK QT GNOME KDE的关系
- 整数的分割数目
- U盘无法打开的解决方法大全
- 20世纪计算机科学经典著作