找回密码
 欢迎注册
楼主: 无心人

[讨论] NTT相关问题一则,有兴趣的参与

[复制链接]
发表于 2008-9-8 23:46:21 | 显示全部楼层

回复 60# 无心人 的帖子

估计好的方法都是分段的 小的时候直接乘 大了用2分 太大了开变换 于是代码就疯涨...
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-9 14:41:39 | 显示全部楼层
呵呵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-19 16:12:58 | 显示全部楼层

不知道我这样想对不对:

令 p=2^(16n)+1 =>2^(16n) mod p=-1 =>2^(32n) mod p=1 令 w=2^32 =>w^n mod p=1 令 n=2^m 以实现快速算法 用一个32位的数组来储存的话 乘法就只是下标的移动 但是加减就必须来个循环
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-19 16:54:33 | 显示全部楼层
不 乘法还是乘法 求余简单了而已 FNT中没乘法的 就移位和求余
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-19 17:00:58 | 显示全部楼层

回复 64# 无心人 的帖子

你看如果 w=2^32 如果我对一个数组a[]做乘法去乘w^n 那么相当于把a[]里每个元素的下标移动n个 对不对啊?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-19 17:05:05 | 显示全部楼层
那叫移位操作 相当于折叠后减
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-19 17:09:41 | 显示全部楼层
但是这样做好象加减会变慢... 果然是鱼和熊掌...
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-19 17:20:11 | 显示全部楼层
对于普通的整数FFT 加减都是要求余的 加减都要最后通过求余调整 在概率意义下FNT加减法 其操作应该是一个机器字的减法 而不是长减法 所以要大大简单化了 所以并不复杂
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-9-19 18:11:49 | 显示全部楼层

回复 68# 无心人 的帖子

那么那个数组里的数字是按什么进制存放的呀? 按2^32进制的话似乎得考虑进退位?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-9-19 20:07:37 | 显示全部楼层
是啊 如果是别的非2方幂的进制 就么这么多简化了 而且2的方幂也必须是2^16 2^32类似的 否则效率也不高啊 进位并不可怕 在C语言里也能完全用2^32位处理 你只要记住 a + b = c 如果在C语言里 c < a则肯定产生了进位
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 03:41 , Processed in 0.030337 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表