社区
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
等等
...全文
173
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实现
- Slope One是一种
简单
的协同过滤预测
算法
,它通过计算用户对物品的平均评分差来预测未知评分。具体来说,对于两个物品i和j,slope one会计算已知评分的平均差异,并用这个差异来预测用户对物品j的评分。 - 在Java...
MoreWindows白话经典
算法
之七大排序第2版(高清)
直接选择排序是另一种
简单
的排序
算法
,其核心是在未排序的部分选择最小(或最大)的元素放到已排序部分的末尾。书中对此
算法
进行了详细介绍。 **4. 希尔排序** 希尔排序是对直接插入排序的一种改进,通过引入增量...
matlab遗传
算法
程序(new)
总结来说,"matlab遗传
算法
程序(new)"这个资源为你提供了一个实践遗传
算法
的平台,通过学习和运行其中的代码,你将能够熟练掌握遗传
算法
的MATLAB实现,进一步提升在数值
算法
和优化问题解决方面的能力。记住,实践是...
Java常用排序
算法
&程序员必须掌握的8大排序
算法
+二分法查找
本资料包聚焦于"Java常用排序
算法
"和"程序员必须掌握的8大排序
算法
",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序
算法
。这些
算法
包括: 1. **冒泡排序**:最
简单
的排序方法,通过不断交换...
1000多种java
算法
大全源码包
Java
算法
大全源码包是一个集合了众多
算法
实现的资源库,涵盖了数据结构、排序、搜索、图论等多个领域的经典
算法
。这个源码包是学习和理解计算机科学基础以及提升编程能力的理想工具,尤其对于Java开发者来说,它提供...
C#
111,110
社区成员
642,556
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章