找回密码
 欢迎注册
查看: 10333|回复: 8

[求助] 由NTT变换想到的问题

[复制链接]
发表于 2008-5-15 20:28:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
已知有个数组A,长度为2^n, 并已知一数论变换,参数为N=2^n(长度),M(模),g(N次跟). 正变换记为NTT(),逆变换记为invNTT(). 现在若对数组A应用逆变换,即invNTT(),将得到数组B. 请问是否有快速的方法判断: 1. 如果,B的每一位都是小于某个已知值Max,则返回TRUE 2. 否则,返回FALSE 当然,这里说的"快速的方法",是指比计算B=invNTT(A)更快的方法 不知是否存在这种快速的方法?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-15 20:46:45 | 显示全部楼层
既然是数论变换,那么得到的数组就是经过模变换处理的, 想先问一下:比较模的剩余类可有实际意义?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-15 20:57:15 | 显示全部楼层
对,这个问题无意义 实现选择了参数使得不存在截断 则肯定可求出 不限定则无法求出
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-16 19:44:28 | 显示全部楼层
当然这个问题对乘法或其他的东东没有实际意义. 老实说吧,这其实是我正探寻的另一个问题的根本. 因为这里大家都对NTT熟悉,贴在这里大家都能读懂 而且最重要的是这里有很多数学高手 如果能够证明,找不到这样一种快速的方法,那么我正探寻的另一个问题就不必探寻了.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-16 19:47:29 | 显示全部楼层
也可以用另一种形式: 如果要构造一个数组B,使得A=invNTT(B)的每一位都小于已知值Max, 请问你将遵循怎样的规则来构造?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-16 22:17:17 | 显示全部楼层
根据数论变换的定义 则显然 你要求的是一个NTT逆矩阵和A的矩阵积 那问题转化为一个$N=2^n$的矩阵和一个$2^n$的向量的积中求最大的项 我知道的知识是这个问题不会有比NTT更快的方法吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-16 22:17:56 | 显示全部楼层
能说你想做的另外一个问题么?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-5-17 18:37:06 | 显示全部楼层
这里我说的另一个问题,说出来可能大家会笑话我. 我想用NTT来做因子分解 我是这样想的: 如果两个数A,B,A*B=C,这就是乘法 现自把A,B都看作2进制数组,并且补零使长度可以适合NTT变换 用NTT来做乘法大家都知道的,就是 1. 求a=NTT(A),b=NTT(B), 2. 然后求数组c,使得c(i)=a(i) * b(i) 3. 求数组C,使得C=invNTT(c) 4. 对数组C进行2进制规整,就得到C=A*B 我的想法是对以上过程进行逆运算,试图分解C得到A和B 发现这种方法比试除法还慢,所以就提出了上面的问题,希望在对上面的第2步进行逆运算的时候,找到一种构造数组a和b的方法 不够就目前我的经验来看,这个方法似乎行不通 刚开始我以为NTT把要分解的数C切成一小段一小段的,以为会更好的分解
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-5-17 19:55:25 | 显示全部楼层
NTT的结构比因子分解的结构还复杂 不客气的说,从NTT逆向还原算法 比MD5还不可逆
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-22 00:30 , Processed in 0.027970 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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