Johnson_Trotter 生成排列算法
const int N = 10;
int f[N],d[N];void init(int n) {for(int i=1; i<=n; i++)f[i]=i,d[i]=-1;
}void Print(int n) {for(int i=1; i<=n; i++)cout<<f[i]<<' ';cout<<endl;
}int fac(int n) {if(n==0||n==1)return 1;return n*fac(n-1);
}///改变方向
void Filp(int d[],int n,int x) {for(int i=x+1; i<=n; i++)d[i]*=-1;
}bool ok(int x,int n) {return 1<=x&&x<=n;
}///生成排列
void Johnson_Trotter(int f[],int n) {int num=fac(n);ans=0;while(num--) {Print();int th=0;for(int i=1; i<=n; i++) {if(ok(d[f[i]]+i,n)&&f[i]>f[d[f[i]]+i]&&f[i]>f[th])th=i;}Filp(d,n,f[th]);swap(f[th],f[d[f[th]]+th]);}
}
Johnson_Trotter 生成排列算法相关推荐
- johnson_trotter(生成排列算法)
思路和步骤: 将数字赋予方向属性 理解什么叫可移动方向(后面在图片1中说明) 判断是否存在可移动元素 bool judge_move(init* n_n, int n); 定义一个全局int k--& ...
- Johnson-Trotter(生成排列算法)
原理可以自己学习,实现如下,真的太久没用C++了. #include<iostream> #include<vector> using namespace std; struc ...
- php 实现的字典序排列算法,字典序的一个生成算法
字典序的一个生成算法. 最近在LeetCode刷题,刷到一个题,链接: https://leetcode-cn.com/problems/permutation-sequence/ 这个题要求得长度为 ...
- C语言编写Johnson-Trotter算法生成排列
//Johnson-Trotter算法生成排列#include<stdio.h>int list[99];在这里插入代码片 int num[99]; int dir[99];int cha ...
- 生成排列 --- 蛮力法,Johnson-Trotter算法
生成排列 --- 蛮力法,Johnson-Trotter算法 蛮力法 Johnson-Trotter算法 蛮力法 思路: 通过递归遍历所有的排列方式. 代码演示: #include <iostr ...
- 用Johnson-Trotter算法生成排列!
package decreaseAndConquer; /* * 实现用来生成排列的Johnson-Trotter算法 * 输入:一个正整数n * 输出:{1,...,n}的所有排列的列表 */ im ...
- 机器学习(二)——广义线性模型、生成学习算法
http://antkillerfarm.github.io/ 逻辑回归(续) 注:Ronald Aylmer Fisher,1890-1962,英国人,毕业于剑桥大学.英国皇家学会会员.尽管他被称作 ...
- 组合数学 ch4 生成排列和组合
1.生成排列 n个正整数组成的集合{1,2,...,n}有n!个排列 如何生成全排列? 组合数学新算法:交错插入法. 简单来说,一次次生成{1}到{1,2}到{1,2....n}所有的排列,用当前排列 ...
- android MD5校验码的生成与算法实现
android MD5校验码的生成与算法实现 在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD ...
最新文章
- SQL Server 2008连载之存储结构——基本系统视图
- 通过Java Api与HBase交互(转)
- C语言rand函数生成随机数详解和示例
- java 一对多 数据结构_请教一下,java 有没有什么数据结构可以保存一对多的关系的??...
- UITableView性能-圆角图片
- mfp服务器控制中心,固网1008MFP驱动
- Splunk 模式的中国践行者——日志易让日志分析更容易
- 计算机cdr教程,计算机平面设计案例教程 (Photoshop+CorelDRAW)
- 元宇宙如何改变人类社会生活。
- 石家庄地铁选站系统进度报告
- linux下tomcat性能调优
- manjaro pacman 使用方法总结
- FSAF:Feature Selective Anchor-Free Module for Single-Shot Object Detection笔记
- 【Python】—— pipenv使用小结
- 微信小程序绑定银行卡功能
- jvm设置http代理
- 淘宝店适合什么样引流方法?淘宝店应该如何引流?
- 路由url里多了%7D是怎么回事?
- 基于深度学习对皮肤病进行识别设计与实现
- mysql数据源配置