二进制问题一则
有二进制数字M二进制数字N
M, N二进制表示中的1数量相等
对M做变换,每次可交换相邻位数字
问是否总能把M变换成N
最少的次数是多少? 这个可行性是很容易证明的。
不过最少次数应该是一个计算机问题。看问题的规模如何。 简单些
小于等于32位 问是否总能把M变换成N
最少的次数是多少?
------------------
最少0次。应该问最坏情况下,最多的次数? 最多次数好解。应该就是0和1数目一样多(或只差一个),从1都是左边(N)变成1都在右边(M).如果1数目不超过0的数目,1的数目为u,0的数目为v(v=u或v=u+1),那么容易证明这时需要变换uv次。
而对于其它情况,也容易证明,uv次数变换肯定足够。 是某些问题的变形
页:
[1]