今天写了递归求子集程序

原创 2004年07月13日 21:10:00

原来对算法理解太弱了,就没有思路的


// generate all subsets of n elements

#include <iostream.h>

// define globals
int x[20],  // subset vector
    n;      // number of elements

void Subsets(int i)
{// Output all subsets of x[1:n].
 // Only x[i:n] to be changed.
   if (i == n) {// x[n] can be 0 or 1
                // output subset without element n
                x[n] = 0;
                for (int j = 1; j <= n; j++)
                   cout << x[j] << " ";
                cout << endl;
               
                // output subset with element n
                x[n] = 1;
                for (j = 1; j <= n; j++)
                   cout << x[j] << " ";
                cout << endl;
                return;
                }
               
    // leave element i out
    x[i] = 0;
    // generate all subsets with i out
    Subsets(i+1);
               
    // put element i into subset
    x[i] = 1;
    // generate all subsets with i included
    Subsets(i+1);
}
 
void main(void)
{
   n = 4;
   Subsets(1);
}

 

这方面需要加强锻炼的

递归求子集

#include using namespace std; //作为全局变量 char set[] = {'a', 'b', 'c', 'd'}; bool isVisited[4] = {fa...
  • woaifen3344
  • woaifen3344
  • 2012年10月31日 15:25
  • 1792

使用递归求出一个集合的所有子集

想一下,平时如果给你1,2,3,4四个数,让你写出它的所有子集,你会怎么做? 我想大部分人的思路是先写出子集中只含有一个元素的子集:1;2;3;4。然后考虑子集中含有两个元素的子集:1,2;1,3;...
  • nkuhjp
  • nkuhjp
  • 2016年09月21日 21:05
  • 3754

C语言递归求子集

C语言编程问题,要求使用递归,给定自然数1~n的集合,和自然数m,求各元素之和等于m的子集,设n=20,m= C语言给定自然数1~n的集合,和自然数m,求各元素之和等于m的子集,设n=20,m=48....
  • jaket5219999
  • jaket5219999
  • 2016年11月23日 18:12
  • 1105

n个元素的所有子集(递归+非递归 +不去重)

一、非递归方法 思路分析:n个元素的子集共有2^n个,其中包括空集。 (1)假设有3个元素{a, b, c},那么此时有 2^3 个子集,即8个子集。 (2)因为有8个子集,而且包括空集,注意7...
  • cyuyanenen
  • cyuyanenen
  • 2016年06月12日 17:29
  • 1818

C++利用递归生成子集

利用递归生成子集是递归的一个简单应用,主要思路是通过一个bool数组来标识一个元素是否在生成的子集内,从而输出所有子集。 下面的程序可以实现这个功能,空集直接不输出,元素间用空格隔开。#includ...
  • java_xiaoer
  • java_xiaoer
  • 2015年10月18日 21:00
  • 1291

C++递归求集合的子集

以集合{a,s,d,f}为例说明递归思想第一步:去掉f的,和不去掉f的,得到两个集合{a,s,d,f},{a,s,d}第二步:将得到的两个集合,去掉d的,和不去掉d的,得到4个集合>>>>>>依次做下...
  • diker007
  • diker007
  • 2005年03月20日 23:20
  • 1065

两种求集合所有子集的方法

假设我们有一个求集合的全部子集(包含集合自身)的需求,即有一个集合s,包含两个元素 ,则其全部的子集为. 不难求得,子集个数sn与原集合元素个数n之间的关系为:sn=2^n-1。   本文分别讲述两种...
  • yusiguyuan
  • yusiguyuan
  • 2014年09月18日 08:12
  • 2139

输出一个集合的幂集(所有子集)

问题描述:如一个抽象集合{1,2,3},它的所有子集包括{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}共2的n次方个,此问题又叫求集合的幂集。 一、递归实现   ...
  • zp_diandiandidi
  • zp_diandiandidi
  • 2017年03月18日 15:40
  • 511

求集合的所有子集(java实现)

代码: import java.io.File; import java.io.FileWriter; import java.io.IOException; /* *Created on 201...
  • caiandyong
  • caiandyong
  • 2015年01月31日 22:08
  • 1130

求一个集合的所有子集问题

一个包含n个元素的集合,求它的所有子集。这种问题一般有两种思路,先说说第一种,递归。递归肯定要基于一个归纳法的思想。...
  • pony_maggie
  • pony_maggie
  • 2014年06月15日 21:44
  • 17651
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:今天写了递归求子集程序
举报原因:
原因补充:

(最多只允许输入30个字)