求组合的逻辑算法

abcyzq 2008-11-24 03:38:14
有数组,例:arr[1,2,3,4,5]
现需将其中任意个数(小于等于数组内数字个数)的组合列举在二维数组中
如任意2个组合可组成arr1:[0][1,2],[1][1,3][2][1,4]...[9][4,5]中
请各位指教,只求逻辑算法,不用具体流程,谢谢!
...全文
108 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
特别 2008-11-25
  • 打赏
  • 举报
回复
mark
tian_fang 2008-11-25
  • 打赏
  • 举报
回复
学习
tang_fu 2008-11-25
  • 打赏
  • 举报
回复
private List <string> SelectFromArr(int[] Arr, int Num,int Start)
{
List <string> list=new List <string>();
if (Num==1)
{
for (int i=0 ;i <Arr.Length ;i++)
{
l.Add(Arr[i].ToString());
}
return l;
}
else
{
for (int i = 0;i < Arr.Length-1 ; i++)
{
foreach (string s in SelectFromArr(Arr, Num - 1, i + 1))
{
l.Add(Arr[i].ToString() + "," + s);
}
}
return l;
}
}
zcl26 2008-11-25
  • 打赏
  • 举报
回复
关注一下
human_2 2008-11-25
  • 打赏
  • 举报
回复
private List <string> SelectFromArr(int[] Arr, int Num,int Start)
{
List <string> l=new List <string>();
if (Num==1)
{
for (int i=Start ;i <Arr.Length ;i++)
{
l.Add(Arr[i].ToString());
}
return l;
}
else
{
for (int i = 0(应该是Start ,写错了,); i < Arr.Length - 1; i++)
{
foreach (string s in SelectFromArr(Arr, Num - 1, i + 1))
{
l.Add(Arr[i].ToString() + "," + s);
}
}
return l;
}
}
abcyzq 2008-11-25
  • 打赏
  • 举报
回复
5楼的方法很简洁明了,试试。
human_2 2008-11-25
  • 打赏
  • 举报
回复
主要用递归的方法
从M中任意选N个简化为从X中任意选1个
private List<string> SelectFromArr(int[] Arr, int Num,int Start)
{
List<string> l=new List<string>();
if (Num==1)
{
for (int i=Start ;i<Arr.Length ;i++)
{
l.Add(Arr[i].ToString());
}
return l;
}
else
{
for (int i = 0; i < Arr.Length - 1; i++)
{
foreach (string s in SelectFromArr(Arr, Num - 1, i + 1))
{
l.Add(Arr[i].ToString() + "," + s);
}
}
return l;
}
}
wartim 2008-11-24
  • 打赏
  • 举报
回复
wartim 2008-11-24
  • 打赏
  • 举报
回复
参考我这里的解答,任意的排列和组合都有了,用的递归
http://topic.csdn.net/u/20081015/09/524c5d5f-d4c8-4715-bfbb-c8076d921fa5.html
yagebu1983 2008-11-24
  • 打赏
  • 举报
回复
没搞过!!
up!!
wangping_li 2008-11-24
  • 打赏
  • 举报
回复
第一个倒好办,任意2个组合组成有点难.再想想流程

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧