整环上的进制转换

由于博主实在太菜,本文中极其容易出现错误,请各位指正,谢谢

鏼一题,顺便学习整环上的进制转换。。
设整环 Z 可以被以d为基数的进制表示。。且模 d 的一个剩余系是S,其大小是 |S| |S| 应该是 d 的范数?)。
形式化地,AZ,存在唯一的一个向量 g(i,giS) ,使得 A=i=0gidi

比如当 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 (本文中 / 均为整除,即a/b=aamodbb)递归进行,当 A=0 时结束。

一般整环上是一样的:
每次取 Amodd 为末位,然后对 A/d 递归进行,当 A=0 时结束。
这里mod运算和整除的具体做法由具体的 Z 而定。
有些时候,这两种运算不易用计算机实现,但判定是否能整除通常比较容易实现,这时有个比较暴力的方法就是枚举S中的元素 a 判断Aa能否被 d 整除。。。这个要枚举O(|S|)次,不过一般 |S| 比较小所以也能接受。
不过有时候 S 是个无限集,gg

栗子:
poj 3191 The Moronic Cowmpouter
Z=Z d=2 S={0,1}
直接做即可

Gauss整数进制转换
Z={x+yi|xZ,yZ} d=1i S={0,1}
据说由于Gauss整数的性质可以转化成上一个题,但是蒟蒻只会直接做。。

Gauss整数进制转换 II
Z={x+yi|xZ,yZ} 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 <script type="math/tex" id="MathJax-Element-358">S</script>是无限集所以不能枚举取模了。。好在多项式可以直接取模
具体方法参见Picks的博客。。应该在多项式乱搞技术中用得上?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值