Skip to main content

Posts

Showing posts with the label FFT

[原]快速傅里叶变换用于长整数相乘

作图代码: data = [] with open('fft-ifft.txt','r') as f: for line in f: splitlist = line.replace('\n','').split(' ') data.append([splitlist[2],splitlist[6],splitlist[10]]) data = np.array(data).astype(float) plt.plot(data[:,0],data[:,1],'k.-',label=u'普通方法') plt.plot(data[:,0],data[:,2],'r+-',label=u'快速傅里叶变换') plt.xlabel(u'问题规模(n)',{'fontname':'STFangsong','fontsize':18}) plt.ylabel(u'计算时间(s)',{'fontname':'STFangsong','fontsize':18}) plt.title(u'快速傅里叶变换的效率提升',{'fontname':'STFangsong','fontsize':18}) plt.legend(loc="upper left",numpoints = 1,prop={'family':'SimHei','size':15}) savefig('fft-ifft.png',dpi=200,bbox_inches='tight') 本文分别用常规方法和FFT方法来计算长整数乘积,并对这两种方法的效率进行对比。 普通方法 我们计算以下两个长整数的积 A = ( a m − 1 a m − 2 ⋯ a 1 a 0 ) 10 = a m − 1 10 m − 1 + a m − ...