组合数(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 ]
]
相关文章:
组合数(2)获取C(n,k)组合数列表的QT实现
1)工程文件 QT coreCONFIG c17 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_BEFORE0x060000 # disables all the APIs deprecated before Qt 6.…...
SparkCore编程RDD
RDD概述 中文名为弹性分布式数据集,是数据处理基本单位。代表一个弹性的,不可变,可分区,里面的数据可并行计算的集合。 RDD和Hadoop MR 的区别: RDD是先明确数据处理流程,数据在行动算子执行前实际上并未…...

VBA技术资料MF69:添加和删除工作表中的分页符
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…...

数字技术助力智慧公厕,让公厕变身为全新创新应用
在如今数字化的时代,数字技术的集成应用已经渗透到了生活的方方面面。其中一个令人瞩目的领域就是智慧公厕。以前只是简单的厕所,如今借助数字技术的力量,智慧公厕变得功能强大、智能高效。接下来,我们将以智慧公厕源头领航厂家广…...

electron 升级 v22 遇到问题
Electron 漏洞 https://mp.weixin.qq.com/s/5LpSJb_5uV8EIDOl3fz9Tw 由于 23以上不在支持win 7 8 8.1 所以我选择安装 v22.3.24 electron 22.3.24 node-sass 6.0.1 sass-loader 10.4.1 对应的版本 npm i node-sass6.0.1 --sass_binary_sitehttps://npm.taobao.org/mirrors…...
跟我学c++中级篇——Pimpl
一、前向声明 前向声明或者前置声明(forward declaration),这个在c中用得还是比较多的。一般的框架或者库中,经常可以看到在一个类的前面声明了一个类,类似下面这样: class useclass; class mycall{...useclass *us; };前向声明…...
[补题记录] Atcoder Beginner Contest 295(E)
URL:https://atcoder.jp/contests/abc295 目录 E Problem/题意 Thought/思路 Code/代码 E Problem/题意 给定长度为 N 的数组 A。进行如下操作: 若 Ai 0,将 Ai 等概率地变为 1 ~ M 中的任意一个数;对 A 排序; …...

解决git在window11操作很慢,占用很大cpu的问题
【git在window11操作很慢,占用很大cpu,最后也执行失败】 在谷歌输入:git very slow in window 11。通过下面链接终于找到了解决方案: https://www.reddit.com/r/vscode/comments/sulebx/slow_git_in_wsl_after_updating_to_window…...

C++智能指针(二)——weak_ptr初探
文章目录 1. shared_ptr 存在的问题2. 使用weak_ptr2.1 初始化 weak_ptr2.2 访问数据 3. 附录4. 参考文献 1. shared_ptr 存在的问题 与 shared_ptr 的引入要解决普通指针存在的一些问题一样,weak_ptr 的引入,也是因为 shared_ptr 本身在某些情况下&…...
540 - Team Queue (UVA)
题目链接如下: Online Judge 对比刘汝佳的代码,我没有用queue来排整个队伍,因为那样的话遍历整个队伍太麻烦,vector比较方便。但vector删除元素比较耗时,所以就不删了,仅仅用pivot来指代目前队伍的开始。…...

投资组合之如何估值
文章目录 如何估值一、PE估值法1、PE估值法的定义2、参考标准(1)常规标准:25倍合理市盈率。(2)同行业对比。(3)跟历史市盈率相比。 3、PE估值法的适用范围4、PE估值法的优势5、PE估值法的劣势&a…...

2024届通信工程保研经验分享(预推免入营即offer)
2024届通信工程保研经验分享(预推免入营即offer) BackGround夏令营情况:预推免情况: BackGround 本科院校:末九 专业:通信工程 rank:3/123(预推免绩点排名)࿰…...
L2-025 分而治之 - java
L2-025 分而治之 时间限制 600 ms 内存限制 64 MB 题目描述: 分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若…...

Python+高光谱数据预处理-机器学习-深度学习-图像分类-参数回归
涵盖高光谱遥感数据处理的基础、python开发基础、机器学习和应用实践。重点解释高光谱数据处理所涉及的基本概念和理论,旨在帮助学员深入理解科学原理。结合Python编程工具,专注于解决高光谱数据读取、数据预处理、高光谱数据机器学习等技术难题…...
免费 AI 编程助手 Amazon CodeWhisperer 体验
文章作者:文章作者:米菲爸爸 2022 年 6 月 23 亚马逊云科技就已经推出了 Amazon CodeWhisperer(预览版)。经过不到一年的测试和 AIGC的飓风在 2023 年 4 月 18 日实时 AI 编程助手 Amazon CodeWhisperer正式可用 Amazon CodeWhis…...

【Linux】从零开始学习Linux基本指令(一)
🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:Linux入门 🔥该文章主要了解Linux操作系统下的基本指令。 目录: ⌛️指令的理解⏳目录和文件的理解⏳一些常见指令✉…...

Java GC 算法
一、概述 理解Java虚拟机垃圾回收机制的底层原理,是成为一个高级Java开发者的基本功。本文从底层的垃圾回收算法开始,着重去阐释不同垃圾回收器在算法设计和实现时的一些技术细节,去探索「why」这一部分,通过对比不同的垃圾回收算…...
vue3 v-html中使用v-viewer
安装:npm install v-viewernext 在main.js中配置 import “viewerjs/dist/viewer.css”; import Viewer from “v-viewer”; app.use(Viewer, { Options: { inline: true, //默认值:false。启用内联模式。 button: true, //在查看器的右上角显示按钮。 …...

Leetcode算法解析——查找总价格为目标值的两个商品
1. 题目链接:LCR 179. 查找总价格为目标值的两个商品 2. 题目描述: 商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况,返回任一结果即可。 示例 1: 输入:price …...
unity游戏开发引擎unity3D开发
Unity(也被称为Unity3D)是一款强大的跨平台游戏引擎,用于开发2D和3D游戏,以及其他交互式应用程序。以下是Unity游戏开发的一般步骤: 安装和设置Unity: 首先,您需要下载并安装Unity。确保选择适…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...