找回密码
 欢迎注册
查看: 6731|回复: 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-5-20 09:28 , Processed in 0.045285 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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