社区
C#
帖子详情
求一简单算法~
wangdr
2004-09-29 02:29:55
在1,2,3,4,5,6,7,8,9,10(或者更多数字)
这些个数中获得任意6个数字(任意6个数字不能重复)的全部组合
比如:1 2 3 4 7 9
2 3 4 5 7 8
3 4 5 6 7 9
1 5 7 8 9 10
4 5 6 7 8 10
等等
...全文
170
18
打赏
收藏
求一简单算法~
在1,2,3,4,5,6,7,8,9,10(或者更多数字) 这些个数中获得任意6个数字(任意6个数字不能重复)的全部组合 比如:1 2 3 4 7 9 2 3 4 5 7 8 3 4 5 6 7 9 1 5 7 8 9 10 4 5 6 7 8 10 等等
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
songbird
2004-09-29
打赏
举报
回复
这个验证过了:
class Class1
{
static int num = 4;
static int[] a = new int[num]; //存放数字
static int[] b = new int[num]; //存放每一组临时的数字组合
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
for (int i=0;i<num;i++)
{
a[i] = i;
}
all(0);
Console.ReadLine();
}
//赋值
static private void all(int start)
{
if (start==num)
{
bool same = false;
for (int j=0;j<start;j++)
{
for (int i=0;i<start;i++)
{
if ((i != j) && (b[i] == b[j]))
{
same = true;
break;
}
}
}
if (!same) printb();
return;
}
for (int i=0; i<num; i++)
{
b[start] = i;
all(start+1);
}
}
static private void printb()
{
for (int i=0;i<num;i++)
{
Console.Write(a[b[i]] + " ");
}
Console.WriteLine();
}
}
jolyalansunrain
2004-09-29
打赏
举报
回复
把数字存放进一个数组呀,如:
void FindAll(ref int [] a,int maxvalue)
{
for(int i=1;i<= maxvalue/2;i++)
for(int j=i+1; j <= maxvalue ;j++)
for(int k=j+1; k<= maxvalue;k++)
for(int m=k+1; m<=maxvalue;m++)
for(int n=m+1; n<=maxvalue;n++)
for(int l=n+1; l<=maxvalue;l++)
System.Console.WriteLine("{0}-{1}-{2}-{3}-{4}-{5}",a[i],a[j],a[k],a[m],a[n],a[l]);
return;
}
void main()
{
int maxvalue = 10;
int Array [] = new a[maxvalue];//记得给他赋值
FindAll(ref a,maxvalue);
}
Korny
2004-09-29
打赏
举报
回复
public class CodeForComb
{
static int [] CombData=new int[10];
static void Main()
{
a[0]=6;//打印6个数
comb(7,6); //按7中取6个不同的组合数
}
static void comb(int m,int k)
{
int i,j;
for( i=m;i>=k;i--)
{
CombData[k]=i;
if(k>1)
comb(i-1,k-1);//还有其他组合数 递归
else //有一组组合数了
{
for(j=a[0];j>0;j--)
{
Console.Write(CombData[j]);
}
Console.WriteLine();
}
}
}
}
songbird
2004-09-29
打赏
举报
回复
应该是start == 10
songbird
2004-09-29
打赏
举报
回复
方法:
把数字存放进一个数组
int[] a = new int[10]; //存放数字
int[] b = new int[10]; //存放每一组临时的数字组合
//赋值
private void all(int start){
for (int i=start; i<10; i++){
b[start] = a[i];
all(start+1);
}
if (i==10){
printb();
}
}
jeall
2004-09-29
打赏
举报
回复
不是楼上说的n次方,应该是C6/n的排列组合!
foow
2004-09-29
打赏
举报
回复
最小的连续数字是几位
两位,比如 1 2 5 7 9 10 11
songbird
2004-09-29
打赏
举报
回复
n的n次方。
wangdr
2004-09-29
打赏
举报
回复
smartcreater()这样做可以~但给出的数字是连续的才行~比如1,2,3,4,5,6,7
我要是给出1,4,5,6,7,9,10就不行了~
smartcreater
2004-09-29
打赏
举报
回复
class demo1
{
public static void Main()
{ int maxvalue = 10;
for(int i=1;i<=maxvalue/2;i++)
for(int j=i+1; j<= maxvalue ;j++)
for(int k=j+1; k<= maxvalue;k++)
for(int m=k+1; m<=maxvalue;m++)
for(int n=m+1; n<=maxvalue;n++)
for(int l=n+1; l<=maxvalue;l++)
System.Console.WriteLine("{0}-{1}-{2}-{3}-{4}-{5}",i,j,k,m,n,l);
}
harisonh2l
2004-09-29
打赏
举报
回复
210
wangdr
2004-09-29
打赏
举报
回复
顶一下~
wangdr
2004-09-29
打赏
举报
回复
我可能没说清楚,
比如有1,2,3,4,5,6,7这7个数字:
他们的任意6个数字的组合只能有下面几种情况:
1 2 3 4 5 6
1 3 4 5 6 7
1 2 4 5 6 7
1 2 3 5 6 7
1 2 3 4 6 7
1 2 3 4 5 7
2 3 4 5 6 7
对吧~
但是数字越多出先的组合也越多~所以想做个程序把这些组合给找出来~
nanhaiyiou
2004-09-29
打赏
举报
回复
二楼好理解。三楼的比较好!
v192
2004-09-29
打赏
举报
回复
你可以把数字存放到一个队列里面,然后套用我的办法处理
v192
2004-09-29
打赏
举报
回复
System.Random Rnd = new Random();
for ( int i = 0 ; i < dtSmallPapers.Rows.Count - 5; i++ )
{
int j = Rnd.Next( 0, dtSmallPapers.Rows.Count );
dtSmallPapers.Rows.RemoveAt( j );
}
上面是在一个DataTable中有若干条数据,只取其中的随机5条。
hbzx
2004-09-29
打赏
举报
回复
改正:
int max=10,count=6;
for ( int i=max ; i > max-count; i --)
{
i = i * (i -1) ;
}
hbzx
2004-09-29
打赏
举报
回复
int max=10,count=6;
for ( int i=max ; i > max-count; i --)
{
i = i * i -1 ;
}
几个推荐
算法
的java实现
java实现的几个推荐
算法
:slopeone SVD,RSVD,ItemNeighborSVD 内有readme,相关内容在blog.csdn.net/lgnlgn
MoreWindows白话经典
算法
之七大排序第2版(高清)
在第一版的基础上新加了对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法的总结篇,方便大家复习,合适作为笔试面试前的复习资料。
AES加密
算法
(C++实现,附源码)
AES加密
算法
(C++实现,附源码) 更多免费资源: http://cleopard.download.csdn.net
MoreWindows白话经典
算法
之七大排序(高清版)
这是本人在研一上课时所整理的文档,包括冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法,这些文章不仅使我在考试中取了不错的成绩,也为后来顺利面过迅雷,腾讯,微软打下了良好的基础,现在整理成电子书形式,希望能对大家有所帮助。
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章