由于博主实在太菜,本文中极其容易出现错误,请各位指正,谢谢
鏼一题,顺便学习整环上的进制转换。。
设整环Z可以被以
形式化地,
比如当Z=N,d=10,S={0,1,2,3,4,5,6,7,8,9}时,就是常见的10进制。
当Z=Z,d=−10,S={0,1,2,3,4,5,6,7,8,9}时就是-10进制辣~
e.g.-10进制下11对应的g={1,9,1,0...}
让我们想想N中的进制转换是什么样的:
每次取Amodd为末位,然后对A/d(本文中/均为整除,即
一般整环上是一样的:
每次取Amodd为末位,然后对A/d递归进行,当A=0时结束。
这里mod运算和整除的具体做法由具体的Z而定。
有些时候,这两种运算不易用计算机实现,但判定是否能整除通常比较容易实现,这时有个比较暴力的方法就是枚举
不过有时候S是个无限集,gg
栗子:
poj 3191 The Moronic Cowmpouter
直接做即可
Gauss整数进制转换
Z={x+yi|x∈Z,y∈Z},d=−1−i,S={0,1}
据说由于Gauss整数的性质可以转化成上一个题,但是蒟蒻只会直接做。。
Gauss整数进制转换 II
Z={x+yi|x∈Z,y∈Z},d=2+i,S={0,1,2,i,1+i}
和上一题差不多。。不过很难转化成Z中的进制转换了。
有个结论是Gauss整数中x+yi的范数是x2+y2
多项式进制转换
Z=Z[x](modp),d=p0(x),S={p(x)|p(x)<p0(x)}
这里因为S是无限集所以不能枚举取模了。。好在多项式可以直接取模
具体方法参见Picks的博客。。应该在多项式乱搞技术中用得上?