本帖最后由 平常心 于 2013-12-29 15:30 编辑
上面介绍了我的主要观点,下面将逐一介绍。再次声明,我是一个也遇到低水平的数学爱好者,在各位面前是一名诚恳听取批评意见的小学生,望各位不吝赐教。实现介绍一个附带的问题,我采用二进制数计算(上下标在、序号等仍用十进制数),其基本方法如下文(只是一个简单而笨拙的方法,因为我采用手工计算):
二进制数的有关计算问题㈠判断二进制数是否可被11(3)整除的方法 由于,2^2k≡1(mod3) 故: (2^2(k+i)+2^2k+1)×2j≡0(mod3) (k∈N, i、j∈N) 例如(2^4+2^2+1))×4=84;(2^8+2^4+ 1)×8=2184;( 2^10+2^2+ 1)×2=2058…… 当i=0时,(2^2(k+i)+2^2k+1)×2j=(2^(2k+1) +1)×2j≡1(mod3) 例如: (2^3+1)×32=288; (2^5+ 1) ×4=132; (2^7+1) ×2=258…… 将以上二式化作二进制数就是: (10^(2k+1)+1)×10j≡0(mod11) (10^2(k+i)+10^2k+1)×10j≡0(mod11) 故,凡全部由以下三类字符段嵌套组合而成的数字,定为11(3)的倍数: ①11、1111、111111……(3、15、63……) ②1001、100001、10000001……(17、33、129……) ③10101,1010001,101000001……100010001……(21、81、321……273) 反之必定不是11的倍数。 例如:1111001011100101可以分解为:1111、1001、10000001、1001等,因而它是11的倍数。 在此基础上,可进一步推演出更实用的复杂组合: 令:A=00……0(由奇数个0组合的字符串) B=1……1(中间为任意多个字符组合,但不包含A字符串) 任何二进制数均可由0、1与A、B字符串组合而成,其中: 0≡0(mod11) 11≡0(mod11) 1A01≡0(mod11) 1ABA1≡0(mod11) 1≡1(mod11) 1A0≡1(mod11) 1ABA≡1(mod11) 1A≡10(mod11) 1A1≡10(mod11) 1AB≡10(mod11) 1 ABA0≡10(mod11) 由左至右逐个划去≡0(mod11)的字符串,最后剩余的字符串即可确定被11(3)整除后的余数。 例如:10111111001110000111111000011111≡10(mod11) 100111100011001001111000000001111111101≡0(mod11) 1000011000110011111000000111111011000≡1(mod11) ㈡Collatz问题中的二进制数计算 一个二进制数乘11(3),相等于这个二进制数的错位加法。 101×11=1111 101×11+1=10000 10101×11=111111 10101×11+1=1000000 1010101×11=11111111 1010101×11+1=100000000 …… 11×11=1001 11×11+1=1010 111×11=10101 111×11+1=10110 1111×11=101101 1111×11+1=1011110 …… 以上是基本计算格式。利用这些计算格式能够较快地对二进制数从左至右进行乘11(3)加1计算。 |