人民币4和7不好吗?

鞠心锭鞠心锭最佳答案最佳答案

4和7,在数学里属于合数,意味着可以分成若干个小于它的素数的积。 如果以数字4开头或是结尾的号码段是有意义的——意味着这个号码可以被4整除并且小于它(即与0-3之间)。而数字7开头的电话号码则被分为两个数组,每组分别由连续的数字10个或8个组成,每个数组中的数字都可以被7整除(因为7是质数且大于6,所以不存在5位以上的数字同时被7整除的情况),这样被分成的两组就可以通过计算是否被4整除进行进一步判断了。 而以4和7开头的手机号码由于长度都是十一位,这种简单分段的做法就会比较麻烦了。首先我们需要一个划分依据,如果这个依据恰好也是一个质数那就再好不过了,这样就可以按照上面类似划分的思路来把手机号分成若干部分并且计算出各部分的和(余数),从而得到一个对合数因子进行加权的办法。但问题是手机号的长度是可变的,比如移动可能用了159、152等号段满足用户需求,这种情况下我们只能以5位数为基本单位来做进一步划分了。具体怎么划分呢?我们先从5位的时候考虑,假设这时我们划分的结果使得前两位数字组成的数和后三位组成的数和能被4整除,那么整个号码一定也被4整除;同理,当且仅当三个相连的数字之和能被7整除时才能被7整除... 这种一步步把号码分解然后再重新组合的方式需要O(n^2)的时间复杂度,随着手机号长度增加,时间复杂度会呈指数增长,当遇到用户量巨大的情况,这将是相当恐怖的一件事情!对于以4或者7做尾号的电话号码我们无法使用像上面这样的划分方法,目前看来也只能采用笨办法逐一对每一个号码进行分析。虽然速度慢,好在手机终端的运算能力现在已经足够强大,再加上优化算法,问题应该可以得到解决。

发表评论
请发表正能量的言论,文明评论!