找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 201|回复: 0

combination 组合

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-3-12 15:25:18 | 显示全部楼层 |阅读模式
  1.         static vector<vector<double>> combination(vector<double> arr,int m)
  2.         {
  3.                 vector<vector<double>>arrs;
  4.                 if (arr.size()>0 && m > 0)
  5.                 {
  6.                         vector<double> cdr = arr;
  7.                         cdr.erase(cdr.begin());            
  8.                         vector<vector<double>> tmparrs1=combination(cdr,m-1);
  9.                         if (tmparrs1.size()==0 && m ==1)
  10.                         {
  11.                                 vector<double> tmp;
  12.                                 tmp.push采用back(arr.at(0));
  13.                                 arrs.push采用back(tmp);
  14.                         }
  15.                         else
  16.                         {
  17.                                 for (int i=0;i<tmparrs1.size();i++)
  18.                                 {               
  19.                                         tmparrs1.at(i).insert(tmparrs1.at(i).begin(),arr.front());
  20.                                 }
  21.                                 arrs.insert(arrs.begin(),tmparrs1.begin(),tmparrs1.end());               
  22.                         }
  23.                         vector<vector<double>> tmparrs2 = combination(cdr,m);
  24.                         if (!tmparrs2.size()==0)
  25.                         {
  26.                                 arrs.insert(arrs.begin(),tmparrs2.begin(),tmparrs2.end());
  27.                         }                        
  28.                 }
  29.                 return arrs;
  30.         }
  31. static        void Combination(const vector<double>v, const int num,vector<vector<double>>result)
  32.         {
  33.                 if (v.empty()) {
  34.                         return;
  35.                 }
  36.                 else if (v.size() == 1) {
  37.                         result.push采用back(v);
  38.                         return;
  39.                 }
  40.                 //求不同长度的组合
  41.                 vector<double> temp采用v;
  42.                 for (int i = num; i <= v.size(); ++i) {
  43.                         Combination采用n(v, temp采用v, 0, i, result);
  44.                 }
  45.         }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-28 14:29 , Processed in 0.120872 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表