求:算法

zhq1001 2012-10-04 04:07:08
123456

首先:选出1个数字,
然后从剩下的5个数字,按C54的方式排列组合,

总共6*5 = 30种组合

C54,会算,

先挑选1个,该如何写呢?
...全文
160 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonespace 2012-10-05
  • 打赏
  • 举报
回复
不需要这么麻烦,用if判断就行,

for(int nIndex=1;nIndex<=6;nIndex++)
{
for(int j=1;j<=6;j++)
{
if (j==nIndex)

{
continue;//排除
}
for(int k=j+1;k<=6;k++)
{
if (k==nIndex)
{
continue;
}
//
...
}
}
}

这样不更简单吗?

[Quote=引用 9 楼 的回复:]

用一个数组,把选中的放在最后一个,其他的随机选
[/Quote]
noliver 2012-10-04
  • 打赏
  • 举报
回复
用一个数组,把选中的放在最后一个,其他的随机选
zhq1001 2012-10-04
  • 打赏
  • 举报
回复
哦,问题,自己解决了,想出来了
zhq1001 2012-10-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

晕,这不更简单,用一个for循环完事,

for(int nIndex=1;nIndex<=6;nIndex++)
{

}
[/Quote]

当 = 1时,C54需要排除1
当 = 2时,C54需要排除2

stonespace 2012-10-04
  • 打赏
  • 举报
回复
晕,这不更简单,用一个for循环完事,

for(int nIndex=1;nIndex<=6;nIndex++)
{

}
  • 打赏
  • 举报
回复
这必须得先确定第一个数然后才能去排列组合(不能去随机选第一个数,个人觉得),我去想想。。
zhq1001 2012-10-04
  • 打赏
  • 举报
回复
在datagridview全部列出来
1-2345
1-2346
1-2356
1-2456
1-3456

2-1345
2-1346
2-1356
2-1456
2-3456

......

全部30种组合

总共30种组合
zhq1001 2012-10-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

有什么要求,随即挑选吗?用Random
[/Quote]

在datagridview全部列出来
1-2345
1-2346
1-2356
1-2456
1-3456

总共30种组合
stonespace 2012-10-04
  • 打赏
  • 举报
回复
Random a=new Random();

int nIndex=a.Next(6);
stonespace 2012-10-04
  • 打赏
  • 举报
回复
有什么要求,随即挑选吗?用Random

110,825

社区成员

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

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

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