判断二进制数能否被3整除
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
判断二进制数能否被3整除的方法
业余数学爱好者郑敏
一个数是否可以被3整除?我们习惯十进制数的简单判断方法,但一般不追究其原因。
其实原因很简单,这是由于10^k≡1(mod3)。
这样我们可将10、100、1000……等都看做1,最后将各个数位的数字加起来,若能被3整除,原来的数即可被3整除。
四、七、十三、十六……进制数与十进制数一样,都可以用这个方法。
三、六、九、十二、十六……进制数很明显,可以直接看出。
其他进制数略微麻烦一点,其中二进制数较简单,仅以此为例分析如下:
根据:10^(2k+1)+1≡0(mod11)
10^2(k+i)+10^2k+1≡0(mod11) (k∈N, i∈N) 我们得到二类定可被11(3)整除字符串:
①11、1001、100001、10000001……(3、9、33、129……)
②10101,1010001,101000001……(21、81、321……273)
任一二进制数n的1字符要么在右数奇数位,要么在偶数位。
假如奇数位有j个1字符,偶数位有k个1字符。
令每个奇数位上的1字符选择一个(且只能一个)偶数位上的1字符,当j=k时,将构成j个①类字符串;假如j≠k,剩余∣j-k∣个1字符必定同在奇数(或偶数)位。
若n≡0(mod11),则∣j-k∣≡0(mod11),也就是说这些剩余的1字符可以划分为∣j-k∣/3个②类字符串。
由此可见,利用以上两类字符串判断,不会有遗漏,也不会有重复。
例如,100011100101111001101000010001可以由以下字符串嵌套、交叉、组合而成:
10111100001101001110001001110010001
100000000001
001111
00000000001001
000000000000000011
00000000000000000010000001
0000000000000000000000100001
00000000000000000000000000100010001
在一个二进制数中,这些字符串可能有很多划分方法,且往往是相互交叉、嵌套在一起的,因此运用起来不够方便。
为此根据实践经验推演出几个从左至右划分的,更实用、更利于直观判断的字符串组合。
令:A=00……0(由奇数个连续的0组合的字符串)
B=1……1(中间为任意多个字符组合,但不包含A字符串)这样我们的判断就得到一套新的字符串,其中:
0≡0(mod11) 1A01≡0(mod11) 1A1BA21≡0(mod11) (1A01包含“11”) 1≡1(mod11) 1A0≡1(mod11) 1A1BA2≡1(mod11)
1A≡10(mod11)1AB≡10(mod11)1 A1BA20≡10(mod11)
显然0≡0(mod11) 1A01≡0(mod11)无需再证明,如果仅仅是1A01字符串的交叉、嵌套,重要不将其中某个偶数个连续的0字符给段为两个奇数个0字符串,我们一定可依序将它们重新划分为若干个1A01字符串。
A是由奇数个连续的0组合的字符串,AA=A0(或0A),不能够重复出现。
B中间不包含A字符串,BB=B,也不会重复出现。
若A与B重复交叉,其中部分字符必定构成了一个1ABA1字符串。
由此可见,若二进制数n≡0(mod11),将其从左到右划分为若干字符串,这些字符串最多只有三种类型:0、1A01和1A1BA21。
下面证明1A1BA21≡0(mod11)
由于B=1……1(中间为任意多个字符组合,但不包含A字符串),如果我们将其中包含的1A01字符串按顺序逐一消除(注意,至少要保留1个或2个字符),最终的结果必然剩余“1”或“11”。
也就是说,1A1BA21简化为1A11A21或1A111A21两种形式。
1A11A21是前已经证明过的②字符串,毫无疑问,它≡0(mod11);
而1A111A21是1A01与11的嵌套组合字符串,故,1A111A21≡0(mod11)。
于是,1A1BA21≡0(mod11)
最后,证明判断余数的字符串是否正确且无遗漏。
这些字符串一定是1A01、1A1BA21字符串去掉尾部某些字符后形成的。
1A01能够且只能导致三种结果:
1≡1(mod11) 1A≡10(mod11) 1A0≡1(mod11)
对于1A1BA21,显然我们可以只考虑从B字符串开始舍去尾部的部分字符。
舍去某个1字符后的所有字符,只有一种1AB
舍去某个0字符后的所有字符,只有两种1A1BA2、1A1BA20
根据前面的分析,我们同样可以认为,如果我们将B字符串中包含的1A01字符串按顺序逐一消除(注意,至少要保留1个或2个字符),这三种字符串最终简化为:1A1与1A11、1A11A2与1A111A2、1A11A20与1A111A20。
显然1A1=1A0+1
由于1A0≡1(mod11)
故 1A1≡10(mod11)
又1A11=1A+11
故1A11≡10(mod11)
从而证明了1AB≡10(mod11)
例如:101、1011、10110000111、1000100111100111……
1A11A2→两个独立的1A字符串叠加,1A≡10(mod11),其综合效果必然是1A11A2≡1(mod11)
1A111A2→1A0(舍去11字符串),1A0≡1(mod11),故1A111A2≡1(mod11)综合这两结果,得知1A1BA2≡1(mod11)
例如:1010、10110、1000001110000111000、……
同理,可推出1A1BA20≡10(mod11)
例如:10100、101100、1000111000011110000……
证明完毕。