Java 创建算法以确定幂集中子集的大小

Java 创建算法以确定幂集中子集的大小,java,c++,algorithm,set,Java,C++,Algorithm,Set,我在为这个任务创建算法时遇到困难。如果我能得到一些关于谁开始使用第一种算法的提示,我将不胜感激 本作业的目标是实现和比较各种算法,以计算给定集合中每个可能大小的子集的数量。记住,一个有n个元素的集合有2^n个子集。其中两种算法将用于实际生成子集。 您的程序将有能力要求用户选择,直到他/她希望退出。您的程序允许使用GUI,但不是必需的。选择应允许以下内容: 运行一个算法,计算从0开始的所有2^n整数(您可能无法使用C/C++/Java int数据类型),并确定每个数字对应的子集的大小。该算法必须以

我在为这个任务创建算法时遇到困难。如果我能得到一些关于谁开始使用第一种算法的提示,我将不胜感激

本作业的目标是实现和比较各种算法,以计算给定集合中每个可能大小的子集的数量。记住,一个有n个元素的集合有2^n个子集。其中两种算法将用于实际生成子集。 您的程序将有能力要求用户选择,直到他/她希望退出。您的程序允许使用GUI,但不是必需的。选择应允许以下内容:

  • 运行一个算法,计算从0开始的所有2^n整数(您可能无法使用C/C++/Java int数据类型),并确定每个数字对应的子集的大小。该算法必须以某种方式使用整数除法和模。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。n的值将由用户输入确定。应在n上执行错误检查
  • 运行一个算法,计算从0开始的所有2^n整数(您可能无法使用C/C++/Java int数据类型),并确定每个数字对应的子集的大小。该算法必须以某种方式使用位级操作(逻辑and和shift)。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。n的值将由用户输入确定。应在n上执行错误检查

  • 运行一个算法,为0和n(包括)之间的k的所有值生成C(n,k),其中n由用户输入确定。该算法需要使用递归阶乘函数。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。应在n上执行错误检查

  • 运行一个算法,为0和n(包括)之间的k的所有值生成C(n,k),其中n由用户输入确定。该算法需要使用迭代的阶乘算法。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。应在n上执行错误检查


  • 我发现你所有的问题都是关于一个主题:递归回溯

    要生成集合S的功率集合,请执行以下操作:

    function rec( i )
          if i == S.length
             print choocen elements of S
             return
          else
             do not chooce element i of S
             rec(i + 1)
             choose element i of S
             rec(i + 1)
    

    一旦你理解了递归的概念,
    C(n,k)
    的问题也是类似的。我不会为你的作业提供解决方案:)

    oo耶!亲爱的,你用哪本教科书?@Vincenzo Sanchez如果在抄写粘贴作业时“说明来源”成为一种普遍的做法,那不是一个令人愉快的讽刺吗?如果我们做作业,你什么也学不到;)如果你想学习很多关于算法的知识,我建议你阅读算法设计手册。@WeirdlyCheezy是的,这会很愉快:)