从N个元素中取至少M个以上 相邻的数的组合的最优组合的算法

从N个元素中取至少M个以上 相邻的数的最优组合的算法

用C写,返回一数组.谢谢群众了~


1,2,3,4,4,5,6,7
n=8
m=4
得到 [[1,2,3,4],[4,5,6,7]]
不要长篇大论..越精越好~数学俺乡下人不怎么懂.给俺算法..

啊~可能是我没有说清楚吧,是取至少M个,!! 包括M个以上,且剩下的元素个数为最少!! ..意思是

1,2,3,4,5,6,6,7,7,8,8,9,10

得到

[[1,2,3,4,5,6,7,8],[6,7,8,9,10]]

给出的数列是按大小排列好的吗?
如不是就再加一个简单的排序,
如果是:
int a[][],s[],i,j,c,k=0;
printf("input a stl:")
for(i=0,i<N,i++)
scanf(%d,s[i]);
for(i=0,i<=N-M,i++)
j=1,c=0;
for(t=i,t<i+M,t++)
if(s[t+1]-s[t]==1)
{j++;
{if (j==M)
for(j=i;j<i+M;j++)
{a[k][c++]=s[j];}
k++;
continue}
else continue;
输出数组a[][]即可
温馨提示:内容为网友见解,仅供参考
无其他回答

从N个元素中取至少M个以上 相邻的数的组合的最优组合的算法_百度...
如果是:int a[][],s[],i,j,c,k=0;printf("input a stl:")for(i=0,i<N,i++)scanf(%d,s[i]);for(i=0,i<=N-M,i++)j=1,c=0;for(t=i,t<i+M,t++)if(s[t+1]-s[t]==1){j++;{if (j==M)for(j=i;j...

排列组合问题的最优解法有什么?
按照一定的顺序排列起来的总数目,用P(n, m)表示。组合是指从n个不同元素中取出m(m≤n)个元素,不考虑顺序的总数目,用C(n, m)表示。它们之间的关系为:P(n, m) = C(n, m) * m!。

排列组合公式怎样计算?
1、从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。2、从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做...

数学排列组合公式
排列数A(n,m)的具体计算方法是通过阶乘来实现的。当要从n个不同元素中取出m个元素的所有排列时,首先从n个元素中选择第一个元素,有n种选择方式;然后从剩余的n-1个元素中选择第二个元素,有n-1种选择方式;以此类推,直到选择第m个元素,此时剩余n-m+1种选择方式。因此,总的排列数为n×(n...

排列组合的公式有哪些?
组合公式,也称作组合数公式,用于计算从n个不同元素中取出m个元素的所有可能组合的数量。其公式为:C(n,m) = n! \/ [m!(n-m)!]。例如,C(5,3)表示从5个不同元素中取出3个元素的组合数,计算过程为C(5,3) = 5! \/ [3!(5-3)!] = 5! \/ (3!2!) = (5×4×3×2×1) \/ ...

组合数公式是什么?
组合数公式是指从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做n个不同元素中取出m个元素的组合数,用符号Cmn表示。算法举例 1、设15000件产品中有1000件次品,从中拿出150件,求得到次品...

combin是什么函数
具体到数学计算上,组合的计算公式通常为“n取m的组合数 = n! \/ !)”,其中“!”表示阶乘。这意味着要从n个元素中取出m个元素的组合数,需要计算n的阶乘除以m的阶乘再除以的阶乘。这对于大数据量来说是一个非常重要的性能优化手段。因此,无论在统计学还是计算机科学领域,...

从n个数中选出m个数有几种组合
从n个数中挑选m个数的组合方式共有C(n,m)种。这一数量可以通过组合数学来计算,它描述了从n个不同元素中无重复地选取m个元素的所有可能方式。组合数学是数学的一个重要分支,专门研究离散且有限的对象的组合结构和属性。这一领域的重要性在于其广泛的实用性,涵盖了密码学、统计学、计算机科学、化学...

从n个数中取出m个数字的所有情况,用什么算法解决,哪种效率比较高呢...
首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合,同时将其左边的所有“1”全部移动到数组的最左端。当第一个“1”移动到数组的n-m的位置,即n个“1”全部移动到最右端时,就得到了最后一个...

排列组合公式计算公式是什么?
从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。排列和组合的算法是不同的,排列有选排列和全排列,可重复排列,不尽...

相似回答
大家正在搜