Palindrome Number

1.前言
最近在学习Python教程,学习到关于回文数(palindrome number)的算法, 于是想写一篇关于回文数的博客,放在Math专栏,当做一个知识点,也是作为积累的一步吧。

2.回文数
什么是回文数?
A palindromic number or numeral palindrome is a number that remains the same when its digits are reversed—by wikipedia

翻译为:一个回文数或者数字的“回文”就是一个数经过颠倒仍保持不变。这是通俗解释。回文数多用于趣味数学教材中。

Although palindromic numbers are most often considered in the decimal system, the concept of palindromicity can be applied to the natural numbers in any numeral system. Consider a number n > 0 in base b ≥ 2, where it is written in standard notation with k+1 digits ai as:
ki=0aibi
with, as usual, 0ai<b for all i and ak0 . Then n is palindromic if and only if ai = aki for all i. Zero is written 0 in any base and is also palindromic by definition.

翻译为:尽管回文数多用于十进制数中,回文的性质可以用于任意进制的自然数。考虑数n>0且以 b2 为基(即 b 进制),n可以写成如下形式:
ki=0aibi
通常,对于所有 i 来说,0ai<b ak0 , 则 n 是回文数当且仅当
ai = aki 对于所有 i 来说。0可以写作任意进制所以也是回文数

把所有的系数写成一个tuple(tuple是学python时遇到的,表示元组常量):
(a0,a1,...,ak)
这个tuple的首尾值相等,即 ai = aki

3、Python算法实现打印1~200内的回文数
def is_palindrome(n):
num=n
res=0
while num>0:
res=res*10+num%10
num=int(num/10)
if res==n:
return n
print(list(filter(is_palindrome,list(range(1,200)))))

4.进位制
http://www.matrix67.com/blog/archives/202
(1)、感谢此文博主讲解的进位制。而在回文数中默认采用一般的进位制,即不采用负进位制,所以负数就不是回文数。
(2)、特殊的进位制–1进位制
1进位制包含数0?此处我觉得应该特殊对待1进制
0—表示1进位制的1=十进位制的1
00–表示1进位制的2=十进位制的2
这个0不是必须的,可以用划竖线表示,或者划横线等等
依次下去。至于1进制实际0用什么表示?可以用空表示,什么都没有。记得有个故事讲的就是猫 A 记得猫B借了一条鱼,它就在墙上划道竖线,两条鱼的时候就又加一条竖线,最后跟猫 B <script type="math/tex" id="MathJax-Element-75">B</script>结账的故事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值