当前位置: 首页 > news >正文

组合数(2)获取C(n,k)组合数列表的QT实现

1)工程文件

QT = coreCONFIG += c++17 cmdline# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

2)主程序

#include <QCoreApplication>
#include <vector>
#include <iostream>using namespace std;
const int N = 10;
const int K = 5;vector<vector<int>> getCombinationvector(int nums[],int ncount)
{vector<vector<int>> retvv = vector<vector<int>>();retvv.push_back(vector<int>());for (int n=0; n<ncount; n++) {int size = retvv.size();for (int i = 0; i < size; i++) {vector<int> newSub = vector<int>(retvv[i]);newSub.push_back(n);retvv.push_back(newSub);}}return retvv;
}void showCombinationvector( vector<vector<int>> va )
{std::cout << "C(" << N <<"," << K <<") = " << va.size() << "\n";std::cout << "[ \n";for (int var = 0; var < va.size(); ++var) {std::cout << "  [ ";for(int j=0; j< va[var].size();j++){std::cout << va[var][j] << " ";}std::cout << "]\n";}std::cout << "]\n";
}vector<vector<int>> getCombineNK(int n, int k) {vector<int> nums = vector<int>();for(int i = 1; i < k + 1; ++i)nums.push_back(i);nums.push_back(n + 1);vector<vector<int>> retvv = vector<vector<int>>();int j = 0;while (j < k) {retvv.push_back(vector<int>(nums.begin(), nums.begin() + k));j = 0;while ((j < k) && (nums[j + 1] == nums[j] + 1)){nums[j] = j + 1;j++;}nums[j] ++ ;}return retvv;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);int test[] = {1,2,3,4,5};//vector<vector<int>> va = getCombinationvector(test, 5);vector<vector<int>> va = getCombineNK(10, 5);showCombinationvector(va);return a.exec();
}

3)运行结果

C(10,5) = 252

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

http://www.lryc.cn/news/193182.html

相关文章:

  • SparkCore编程RDD
  • VBA技术资料MF69:添加和删除工作表中的分页符
  • 数字技术助力智慧公厕,让公厕变身为全新创新应用
  • electron 升级 v22 遇到问题
  • 跟我学c++中级篇——Pimpl
  • [补题记录] Atcoder Beginner Contest 295(E)
  • 解决git在window11操作很慢,占用很大cpu的问题
  • C++智能指针(二)——weak_ptr初探
  • 540 - Team Queue (UVA)
  • 投资组合之如何估值
  • 2024届通信工程保研经验分享(预推免入营即offer)
  • L2-025 分而治之 - java
  • Python+高光谱数据预处理-机器学习-深度学习-图像分类-参数回归
  • 免费 AI 编程助手 Amazon CodeWhisperer 体验
  • 【Linux】从零开始学习Linux基本指令(一)
  • Java GC 算法
  • vue3 v-html中使用v-viewer
  • Leetcode算法解析——查找总价格为目标值的两个商品
  • unity游戏开发引擎unity3D开发
  • iptables
  • 竞赛 深度学习LSTM新冠数据预测
  • Spark入门
  • react–antd 实现TreeSelect树形选择组件,实现点开一层调一次接口
  • android 固定进度环形刷新效果
  • python jieba 词性标注 中文词性分类 nlp jieba.posseg
  • LeetCode 每日一题 2023/10/9-2023/10/15
  • 相似性搜索:第 3 部分--混合倒排文件索引和产品量化
  • 小程序使用uni.createAnimation只执行一次的问题
  • win10取消ie浏览器自动跳转edge浏览器
  • 目录启示:使用 use 关键字为命名空间内的元素建立非限定名称