社区
数据结构与算法
帖子详情
FNT的实际编程讨论
yaos
2004-07-15 06:34:58
FNT涉及到几个数据
M,一个大数,
n,2的方幂,变换的长度
a,一个小数,M的类似原根的东西
...全文
422
29
打赏
收藏
FNT的实际编程讨论
FNT涉及到几个数据 M,一个大数, n,2的方幂,变换的长度 a,一个小数,M的类似原根的东西
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yaos
2004-07-26
打赏
举报
回复
apfloat是三项式变换
GMP是2^n + 1形式变换
kerbcurb
2004-07-23
打赏
举报
回复
hfloat研究过吗?apfloat下面的两个链接可以找到
yaos
2004-07-22
打赏
举报
回复
只有第二卷有这方面的内容啊
kerbcurb
2004-07-22
打赏
举报
回复
我有第一册的中文版
yaos
2004-07-18
打赏
举报
回复
这次可以了,TAOCP写错了 :)
WinNTL首字母大写 :)
都可以下载了
yaos
2004-07-18
打赏
举报
回复
抱歉,没测试 :)
我看看
shines77
2004-07-17
打赏
举报
回复
Donald e. Knuth - The Art Of Computer Programming Volume2
下不了啊,MIRACL可以
您访问的文件不存在,请查看如下原因:
1、服务器区分大小写,请您检查地址中的大小写;
(Abc.htm和abc.htm被认为是不同的文件)
2、文件名或文件夹名只能是英文字母或者数字,不能是中文;
3、确认文件的确切路径,是否在该文件夹中。
yaos
2004-07-17
打赏
举报
回复
2我可以解释,1没有发言权
你想问什么?我不太明白
如果问m,n比较小的情况,是用普通乘法做的
比较大的时候,用NTT,分成数组做变换,然后2个数组对应项相乘,乘法如果位数大,再用NTT乘,位数小,用3-Toom算法,再小用karatsuba算法,再小普通乘法
yaos
2004-07-17
打赏
举报
回复
做好了,还有几个好东西,自己看,都更新成为最新的了
yaos
2004-07-17
打赏
举报
回复
高德纳的书上乘法有详细的算法,直到FFT都有
比看apfloat简单啊 :)
我有PDF,给大家传上来吧
http://yaojialin.51.net/download
大部分东西都有
kerbcurb
2004-07-17
打赏
举报
回复
apfloat我在看,内容较多,完全看下来需要一些时间。
yaos
2004-07-17
打赏
举报
回复
程序
a = 1;
for (i = bitLength(n) - 1; i >= 0; i ++)
{
a = sqr(a);
if (bitAt(i))
a = mul(a, m);
}
yaos
2004-07-17
打赏
举报
回复
汗,看错了
:)
乘方通用方法:
m ^ n, n化成二进制,从最高位开始
a = 1
对每个bit循环
1、a = a * a,
2、如果该位是1,再a = a * m
最后输出a,O(n(logn)^2)的复杂度
shines77
2004-07-17
打赏
举报
回复
to kerbcurb():
你可以看看apfloat,乘方其实很简单的,里面有个函数pow,看看就知道了
to all:
apfloat中的FNT里有我在找的FFT中的four step(即six step)步骤,可以对Cache优化,我想之所以叫FNT是因为有FFT的思想在里面,所以才称fast
kerbcurb
2004-07-16
打赏
举报
回复
都是高手,我来学习,请教一问题
我在几位的的帖子中看到以下的计算
1)n!
2)m^n
当n和m达到一定程度,肯定是大数相乘,大数相乘我有自己的代码,但是数度却是慢,没法和几位相比,想问在计算1)和2)时,还没有变成大数的时候,在细节上是如何处理的,GxQcn朋友介绍过一部分内容,yaos和shines以及liangbch(宝宝)三位朋友是如何处理的,能介绍一下吗,谢谢!
yaos
2004-07-16
打赏
举报
回复
似乎说的有点问题,嘿嘿,感觉
这么小的模只能计算8位二进制的数组
yaos
2004-07-16
打赏
举报
回复
参考资料列表
1、高德纳 计算机程序设计艺术 Vol. 2 英文版PDF
2、孙琦 等 快速数论变换 科学版
3、C语言数值算法大全 电子工业版
4、GMP 4.1.2的PDF文档
5、GMP程序注释
讲FFT的书我不知道还能找到不,里边有优化的基4,8等的FFT算法
嘿嘿,差不多全了
yaos
2004-07-16
打赏
举报
回复
流程是把两个乘数分成
两个数组a b
计算a = FNT(a) b = FNT(b)
然后计算 c[i] = a[i] * b[i]
然后计算 c = IFNT(c)
数组c就是a b的卷积,经过简单规约后c变成乘积
yaos
2004-07-16
打赏
举报
回复
一般保证规约前最大的结果不要超过M / 2,就能保证唯一性
gxqcn
2004-07-16
打赏
举报
回复
“每个存储单位(apfloat 每个存储单位范围为0-999999999) 的最大值,必须小于M”
因为要做模运算,如果大于了M,可能造成不同的input,得到相同的output,那就问题大了。
加载更多回复(9)
HGE_系列教材(1-9)
HGE 系列教材(1) --- 简介 HGE 是一个硬件加速(Hardware accelerated)的2D 游戏引擎(Game Engine), HGE 是一个富有特性的中间件,可以用于开发任何类型的2D 游戏。HGE 封装性良好, 以至于你仅仅需要关系游戏...
网络
编程
万字详解
网络
编程
网络互联 随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。 网络互连:将多台计算机连接在一起,完成数据共享。 数据共享本质是网络...
frame buffer device驱动程序
framebuffer device在内核里面作为显卡驱动模型,许多函数和数据结构都是特定,正是这些特定的东西为我们的
编程
提供了方便。要开发frame buffer device驱动,你应该阅读Source/Source/Documentation/fb下面的说明...
斑马
编程
指令中文版
第一行命令将查找字体卡/后备电池RAM(B:)中的“Cyrillic.
FNT
”字体,当字体找到后,命令将继续定义字符的方向,大小,然后在标签上打印字段数据“This is a test.” 一旦^A@定义了“Cyrillic.
FNT
”,它的作用将...
python趣味
编程
-5分钟实现一个F1 赛车公路游戏(含源码、步骤讲解)
下面的代码是 pygame 库,是 Python
编程
语言的开源模块,专门用于帮助您制作游戏和其他多媒体应用程序。这款 Python 语言的 F1 赛道游戏可以免费下载开源代码,它是为想要学习 Python 的初学者创建的。下面给出了...
数据结构与算法
33,006
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章