【发布时间】:2012-10-19 16:15:25
【问题描述】:
我在为此作业创建算法时遇到问题。如果我能得到一些关于谁从第一个算法开始的提示,我将不胜感激。
本次作业的目标是实现和比较各种算法,以计算给定集合的每个可能大小的子集数。请记住,具有 n 个元素的集合有 2^n 个子集。其中两种算法将用于实际生成子集。 您的程序将能够要求用户做出选择,直到他/她希望退出。您的程序的 GUI 是允许的,但不是必需的。选择应允许以下内容:
- 运行一个算法,该算法的工作原理是计算从 0 开始的所有 2^n 个整数(您可能无法使用 C/C++/Java int 数据类型)并确定每个数字对应的子集的大小。该算法必须以某种方式使用整数除法和模数。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。 n 的值将由用户输入确定。应在 n 上执行错误检查。
运行一个算法,该算法基于计算从 0 开始的所有 2^n 个整数(您可能无法使用 C/C++/Java int 数据类型)并确定对应于的子集的大小每个数字。该算法必须以某种方式使用位级操作(逻辑与移位)。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。 n 的值将由用户输入确定。应该对n进行错误检查。
运行一个算法,为 0 到 n(含)之间的所有 k 值生成 C(n,k),其中 n 由用户输入确定。该算法需要利用递归阶乘函数。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。应该对n进行错误检查。
运行一个算法,为 0 到 n(含)之间的所有 k 值生成 C(n,k),其中 n 由用户输入确定。该算法需要利用迭代阶乘算法。它需要返回一个数组,其中包含每个可能大小的子集的数量。显示每个可能大小的子集数。应该对n进行错误检查。
【问题讨论】:
-
噢耶!亲爱的,你用的是哪本教科书?
-
@Vincenzo Sanchez 如果在将家庭作业复制粘贴到 SO 中时“说明来源”已成为一种普遍做法,这难道不是一个令人愉快的讽刺吗?
-
如果我们做功课,你将一无所获;)如果你想了解很多关于算法的知识,我建议你阅读算法设计手册.
-
@WeirdlyCheezy 是的,那会很愉快 :)