>有关整数变换问题,f(i)=3i;g(i)=i/2 (g(i)为i除2下取整)。对于给定的两个整数n,m,用最少的次数将n变换为m,如4=gfgg(15);</P>
> 设初始值为N。</P>
> 一个数经过一次变换后,可能出现的两个值称为N的子代。如是/2得到,标记为0,如是*3得到,标记为1。</P>
> N的子代为0,1;</P>( I: l* P; m: H/ E
> N的子代的子代为00 01 10 11;</P>
> N的子代的子代的子代为000 001 010 011 100 101 110 111;</P>
> ……</P>
> 如果在前面得到的二进制数字前面加上一个数字1,再转代为十进制,那就是从2开始的自然数序列。</P>
> 然后……还有什么难的?编程吧!一个一个地计算,如果只想得到一个解,那在得到第一个等于M的后代后停止。如果想得到所有的最优解,在得到第一个等于M的后代后,设置自然数序列的上限。最后是提取解相对应的二进制数,从最左边的1右边的那个数开始,0代表/2,1代表*3。</P>5 ^( V0 s9 ^. N
> </P>| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |