排列(permutation)2_6
在STL中,用来计算排列组合的函数有 next_permutation() 和 prev_permutation() ,包含在头文件#include <algorithm>。前者是求出下一个排列组合,而后者是求出上一个排列组合。所谓“下一个”和“上一个”,书中举了一个简单的例子:对序列 {a, b, c},每一个元素都比后面的小,按照字典序列,固定a之后,a比bc都小,c比b大,它的下一个序列即为{a, c, b},而{a, c, b}的上一个序列即为{a, b, c},同理可以推出所有的六个序列为:{a, b, c}、{a, c, b}、{b, a, c}、{b, c, a}、{c, a, b}、{c, b, a},其中{a, b, c}没有上一个元素,{c, b, a}没有下一个元素。
他们的使用方法如下:
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;int main(){
FILE *fin, *fout;
fin = stdin;
fout = stdout;
fout = fopen("permutationout.txt", "wb");
int d[]={1,2,3,4,5,6,7,8,9};//!
do{
int a=d[0]*100+d[1]*10+d[2];
int b=d[3]*100+d[4]*10+d[5];
int c=d[6]*100+d[7]*10+d[8];
if(c==3*a && b==2*a) fprintf(fout, "%d %d %d\n", a, b, c);
}while(next_permutation(d,d+9));//!int d[]={9,8,7,6,5,4,3,2,1};//!
do{
int a=d[0]*100+d[1]*10+d[2];
int b=d[3]*100+d[4]*10+d[5];
int c=d[6]*100+d[7]*10+d[8];
if(c==3*a && b==2*a) fprintf(fout, "%d %d %d\n", a, b, c);
}while(prev_permutation(d,d+9));//!
fclose(fout);
return 0;
}
排列(permutation)2_6相关推荐
- [Swift]LeetCode60. 第k个排列 | Permutation Sequence
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- 翻译:组合和排列Combination and Permutation
有什么不同? 在英语中,我们松散地使用"组合"这个词,没有考虑事物的顺序是否重要.换句话说: "我的水果沙拉是苹果.葡萄和香蕉的组合"我们不在乎水果的顺序,它们 ...
- 深入浅出统计学 第六章 排列与组合
内容简介 本章内容主要介绍了两个基本概念,排序与组合 其中组合是之后计算二项分布的预备知识 对于计算而言,重点在于理解其所适应的不同情况,并记忆公式. 两者区别(P261): 1. 排列与顺序有关 2 ...
- 从n个不同元素中取出m个元素排列组合
01. 问题 问题01. 算法: 从n个不同元素中取出m个元素的排列数是多少? 这些排列分别是什么? (其中: n > 0; 0 < m ≤ n;) 问题02. 算法: 从n个不同元素中取 ...
- R语言【基本计数原理与技巧——阶乘、组合、排列】
加法原理定义:做一件事有n种方法,第一类有m1m_1m1种方法,第二类有m2m_2m2种方法,-第n类有mnm_nmn种方法,完成这件事共有m1m_1m1+m2m_2m2+-+mnm_nmn ...
- NLP重大突破?一文读懂XLNet“屠榜”背后的原理
作者 | 李理 原文链接:https://fancyerii.github.io/2019/06/30/xlnet-theory/ 本文介绍XLNet的基本原理,读者阅读前需要了解BERT等相关模型, ...
- 微生物相关网络构建教程:MENA, LSA, SparCC和CoNet
点击上方蓝色「宏基因组」关注我们!专业干货每日推送! 原文为自自Microbial association network construction tutorial http://psbweb05. ...
- 微生物相关网络构建教程中文Microbial association network construction tutorial
原文为自Microbial association network construction tutorial http://psbweb05.psb.ugent.be/conet/microbial ...
- 失败 安装scikit_scikit-learn0.22版本最新发布
搞机器学习的应该没有人不知道scikit-learn吧,这个在ML中使用非常频繁的库在昨天已经发布了它最新版本0.22了. scikit-learn 0.22的发布,其中包含许多错误修复和新功能!我们 ...
最新文章
- 关于libnmap 的一些应用
- HTML5 Canvas动画效果实现原理
- [IIS] [PHP] 500.19 随机出现
- JVM 的 工作原理,层次结构 以及 GC工作原理
- linux学习笔记-第六课-/etc/passwd,/etc/shadow,useradd,su,sudo等
- 创建Sonarqube项目
- 美团容器平台架构及容器技术实践
- php跳转图片_HTML点击图片跳转到新页面怎么实现?(示例)
- C语言关键字详解(五)带你全面了解 volatile 关键字
- 亲测可用:推荐一个免费下载外文文献的网站
- 【ROS】编译软件包packages遇到进度缓慢或卡死,使用swap
- linux云主机登陆教程,登录linux云服务器的详情步骤
- CF1143F/1142C U2
- Microsoft Visio 2010 - 编辑属性值
- 用金字塔原则思考与表达
- php书籍免费下载,《坐即瘦》_坐即瘦_NEWS下载网
- 本地主机如何访问虚拟主机服务器
- nTrun(快速启动软件) V2.0.1 简体中文绿色版是什么
- python输出方格_使用Python实现LBM(格子法)方腔驱动流
- html-----------------------
热门文章
- 黄聪:C# webBrowser控件禁用alert,confirm之类的弹窗解决方案
- python精简笔记(五)——函数式编程
- LR监测windows资源一般监测哪几个项?
- 8种最有可能在2016年倒闭的光伏企业
- mysql AB 的基本搭建
- shell编程——sed用法
- Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) B. Little Artem and Grasshopper 模拟题...
- ip别名删除第一个,其余别名就自动删除的分析
- Windows Server 2008 和 Windows Vista 结合的功能更加强大
- 基于知识图谱、认知推理、逻辑表达的认知图谱,则被越来越多的国内外学者和产业领袖认为是 “目前可以突破这一技术瓶颈的可行解决方案之一