当前位置:首页 » 操作系统 » M合成算法

M合成算法

发布时间: 2025-02-08 11:26:22

❶ 组合算法:从m个数中选n个数的所有组合

#include <iostream.h>

int combine(int a[], int n, int m)
{
m = m > n ? n : m;

int* order = new int[m+1];
for(int i=0; i<=m; i++)
order[i] = i-1;

int count = 0;
int k = m;
bool flag = true;
while(order[0] == -1)
{
if(flag)
{
for(i=1; i<=m; i++)
cout << a[order[i]] << " ";
cout << endl;
count++;
flag = false;
}

order[k]++;
if(order[k] == n)
{
order[k--] = 0;
continue;
}

if(k < m)
{
order[++k] = order[k-1];
continue;
}

if(k == m)
flag = true;
}

delete[] order;
return count;
}

int main()
{
const int M = 4;
const int N = 3;
int a[M];
int b[N];
for(int i=0;i<M;i++)
a[i] = i+1;

combine(a,M,N);

return 0;
}

热点内容
数据库查询命令是什么 发布:2025-05-07 00:41:58 浏览:436
一汽大众途岳哪个配置最好 发布:2025-05-07 00:36:23 浏览:578
cFTP在服务器创建文件夹 发布:2025-05-07 00:25:57 浏览:544
网站数据库的软件 发布:2025-05-07 00:25:51 浏览:233
python怎么终止程序 发布:2025-05-07 00:25:50 浏览:782
引流脚本快手 发布:2025-05-07 00:20:53 浏览:965
android缩放bitmap 发布:2025-05-06 23:59:27 浏览:81
方舟电脑进服务器正确方法 发布:2025-05-06 23:41:51 浏览:217
网络的密码多少位 发布:2025-05-06 23:36:51 浏览:142
密码锁停电后怎么解决 发布:2025-05-06 23:35:52 浏览:591