求列出所有排列方式

zengjun1980 2012-02-16 10:18:20
假设:
变量a的取值范围为1到6,步长为1
变量b的取值范围为2到5,步长为1
变量c的取值范围为3到7,步长为1
.
.
.
变量n的取值范围为5到9,步长为1

有多少个变量是不确定的。

求a.ToString()+b.ToString()+c.ToString()+...+n.ToString()的所有排列方式。

各位高手如用C#实现有什么好方法吗?
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengjun1980 2012-02-22
  • 打赏
  • 举报
回复
还未解决,还有哪位高手有好方法的吗?
zengjun1980 2012-02-16
  • 打赏
  • 举报
回复
我看看先,谢谢
gomoku 2012-02-16
  • 打赏
  • 举报
回复

static void Main()
{
Permutation(Enumerable.Range(1, 6), new[] { 2, 3, 4, 5 }, Enumerable.Range(3, 5));
}

public static void Permutation(params IEnumerable<int>[] ranges)
{
Permutation(new Stack<int>(), ranges);
}
private static void Permutation(Stack<int> stack, IEnumerable<int>[] ranges)
{
int left = ranges.Length - stack.Count;
if (left == 0)
{
Console.WriteLine(string.Join(",", stack.Select(i => i.ToString()).ToArray()));
}
else
{
foreach(int i in ranges[left - 1])
{
stack.Push(i);
Permutation(stack, ranges);
stack.Pop();
}
}
}
zengjun1980 2012-02-16
  • 打赏
  • 举报
回复
在线等,谢谢各位!
zengjun1980 2012-02-16
  • 打赏
  • 举报
回复
假设a,b,c...n的定义保存到一个Hashtable里。
zengjun1980 2012-02-16
  • 打赏
  • 举报
回复
回复gomoku :
调用Permutation方法,你这里是三个变量传进去,但如果这个变量数并不确定有多少个呢,变量的定义在我说的Hashtable里又该怎么调用Permutation方法呢?

110,534

社区成员

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

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

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