楼主 w83365040371 |
Q:如何生成 首末位数字 互补的序列? 如下图所示, 首末位互补的意思即首位数字加上末尾数字的和等于10 图1. A: 1.利用mod可以生成两个互补的数字, 比如28,就可以通过公式mod(2,9)&mod(-2,9)+1得到,再串连上首末位之间的数字或者空值,就可以得到我们想要的数字,公式如下 公式1.
2.同时,在100以内的首末位数字互补的数字,只有19、28、37、46、55、64、73、82、91等9个,且每个数字之间的差是9, 那么在100以内的数字的公式为10+row(a1)*9,然后通过replace在这生成的两位数间插入其他的数字或者是空值,就得到我们想要的数字,公式如下 公式2.
公式1.和公式2.得到的结果见图2. 图2. 扩展: 问题1.上面的案例仅仅是首末位数字互补,那么我们对上面的数据进一步限制,如果是回文互补的字符串应该怎么做?(字符串长度为偶数) 见图3. 备注:回文互补,即字符串的正数N位和倒数N位的数字和为10,且字符串中不能含有0(N=1、2、3...) 图3. 思路:将已知的符合题目要求的数字从小到大排列,并在每个字符串的中点位置做切割线,见图5. 图5. 图5.中白色线条即上面我们所说的切割线, 通过观察切割线前面的字符串所组成的序列,发现其实是一个不含有0的数字序列,根据这个思路,借用http://www.exceltip.net/thread-29605-1-1.html 中的公式,稍微改下,即我们想要的公式 公式3.
以A15单元格的数据"1199"为例, 下一步将数字字符串前后连接等量的0,构成14位数字(excel数字最高位为15),形成的字符串为"00000119900000", 对这个14位数字, 进行分解, 得到的结果如下图: 图6. 图6.中的位阶是指10的系数,黑色箭头所指即图5.中的白色分割线,那么形成黑色箭头左边的数组的公式为 公式4.
以图6.中的黑色箭头为中心对折, 结果见下图 图7. 图7.中的第1列的数据(列标在图中是红底白字)已知由公式4.生成,而第2列和第1列是互补数据. 以第1行的数组{1,9}为例,以数字1为基础生成数组{1,9}的公式为 公式5.
那么生成第1列和第2列的公式为 公式6.
公式7.
按照思路,将图6.中的各个位阶上的数字相加,并将0替换掉,就是我们最总想要的结果,那么最终公式为公式8. 公式8.
此外,图6.中的位阶可以用另外一组数字表示,见图11. 图11. 如图11.所示,我们可以将黑色箭头处理解为小数点,即箭头左边的数字为整数位阶,右边的数字为小数位阶 那么以黑色箭头为中心对折,结果见图12. 图12. 观察上图,可知知道生成第3列和第4列数据的公式为 公式10.
根据已知的生成第1列和第二列数据的公式6.,将图11.中的对应位阶的数字相加,最后将,得到此题的另外一种解法 公式11.
怎么生成字符串长度为奇数的回文序列,如下图所示: 备注:根据引用材料,在这里字符串中间的字符只能为0 图8. 观察模拟数据,发现去掉中间的0后,生成的序列,即为我们在问题1.中所说的字符串长度为偶数的回文字符序列,见图9. 图9. 那么嵌套replace和公式8.得到的公式,即为能够生成我们想要的序列的公式,结果见图10. 公式9.
图10. 公式9.在03中使用受到限制,那么有方法在03中生成上图我们想要的序列吗? 观察公式11.发现只要将小数点替换成0,就能生成我们想要的数字, 公式12.
在这里,我们仅仅介绍了三个问题的解决公式,及公式的思路.其实,由原始的问题,还可以引发出更多的问题,比如: 1.生成奇偶混合长度的回文互补字符串(奇数长度的字符串中间数字为0) 2.生成奇偶混合长度的回文互补字符串(奇数长度的字符串中间数字为任意个位数,即0,1,2...9) 3.生成回文数字字符串 .... 互补序列.rar |
2楼 天南地北 |
个人觉得这个有点理解偏了一点意思,应该是,首尾互补,如果是长度是2n,前N位和后N位应该对应的互补,如果长度是2n+1位,那么前N位和后N位应该对应的互补,且中间为0,,这样的数据规律还是有的,貌似不大好归纳,楼主有兴趣可以尝试琢磨一下!2-4位的这样的互补数不多,粗略统计了一下是108个! |
3楼 w83365040371 |
原题的意思是形成类似于回文序列的数据? |
4楼 wjc2090742 |
应该这么说:以10为模,两端数字互为补数;或者两端数字互为以10为模的补数。 |
5楼 CheryBTL |
有点意思,下载学习下~~~ |
6楼 w83365040371 |
生成回文互补序列(2n)的公式b1输入19, b2输入公式
|