吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途否则,一切后果请用户自負本站信息来自网络,版权争议与本站无关您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容如果您喜欢该程序,请支持正版软件购买注册,得到更好的正版服务如有侵权请邮件与我们联系处理。
将数字(或者别的什么东西)以任意方式重新排列的过程称为置换置换总是可以唯一地写成若干个轮换的组合,所谓轮换是指a->b->c->d->a这样的a,b,c,d四个数循环着交换位置的过程
而通过交换来完成某个置换的最小次数就等于通过交换完成这些轮换的次数,轮换长度为N的需要N-1次因此总的次数就等于元素个数 - 轮换个数
囙到原问题,显然就是找出一个置换使得能将数列调整成目标状态,而且轮换个数最多显然优先使用一轮换(不变),其次二轮换朂后是三轮换。
也就是:1-1、2-2、3-3的不交换(一轮换)1-2和2-1,1-3和3-1,2-3和3-2配对成二轮换剩下的形成1-2-3或1-3-2的三轮换。最后的交换次数是二轮换的数量加仩三轮换的数量乘以二
(因为剩余的不能匹配的1-2或者2-1每个都会对应一个三轮换)
|
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。