当前位置:首页 » 操作系统 » fortran算法

fortran算法

发布时间: 2025-08-02 03:07:51

‘壹’ fortran中阶乘算法

http://www.fcode.cn/algorithm-50-1.html
我也不太理解,我是问的大神,论坛那有专门的讲解,你看看吧

‘贰’ 多个数字组合相加的和最接近或等于某个数的算法

只能递归枚举所有组合进行试算,找到最接近的组合。

不懂Python。需要的话,可以写一个fortran的。


2021-06-05 补充

写了一个fortran程序,具体算法见注释(绿色字体)

附:运行结果和代码

‘叁’ SM3 杂凑算法轻量化 Fortran 接口库:SM3-Fortran

在学习哈希算法的探索中,我偶然接触到了国标杂凑算法SM3。为了深入了解,我尝试用Fortran实现其接口库。开始时,我查看了国家密码管理局提供的算法实现,尽管我并非数学专家,但试图理解背后的数学理论。理论表明,SM3算法主要过程是将输入的二进制数据转换为512比特的整数倍,不足部分进行特殊处理并补足。数据被分组,每512比特一组,通过初始值进行有损迭代压缩,使用大量位运算,最终结果为256比特的杂凑值。

在实践阶段,我发现Fortran中具备完整的位运算函数,于是兴冲冲地开始了代码编写。然而,在实现算法的中间部分,我遇到了无法得到预期结果的问题。经过一番搜索,我意识到Fortran使用有符号整型作为容器,无法达到与无符号整型相同的效果,无论我尝试何种类型重塑。这让我意识到,对于某些对内存存储要求严格的杂凑算法,Fortran不支持无符号整型,因此,用算法和C语言实现几乎无法在Fortran中复现。

尽管遇到了挑战,这次经历也带来了收获。我加深了对transfer函数的理解,并在类型重塑方面提高了熟练度。Fortran缺少无符号整型,但C binding却提供了解决方案。我借助广受好评的GmSSL库中的C语言代码,仅引入了SM3算法,创建了Fortran接口库SM3-Fortran。库虽然只包含一个SM3杂凑接口,但前后投入了整个周末的时间,提供了一个不错的示例。

在库的README中,我详细记录了引入GmSSL代码的原因。基于兴趣学习杂凑算法后,我发现Fortran在实现哈希算法时存在局限,特别是与无符号整型相关的部分。尽管如此,GmSSL以其较高的代码质量受到欢迎,因此选择引入其代码作为依赖。引入SM3-Fortran库具有以下意义:SM3作为国家标准的杂凑算法,GmSSL为国人主导的项目,体现了国人情怀;其安全性与SHA-256相当;SM3-Fortran作为轻量化接口包,相较于Fortran-Stdlib/Hash,体积更小;仅引入SM3算法,为其他算法的Fortran绑定提供了实践参考。

使用GmSSL已有实现大大节省了工作量(在此对GmSSL表示感谢!)。库支持fpm包分发和构建,但我认为这可能仅是“上灰”处理。Fortran缺少无符号整型确实限制了在图像处理和杂凑算法方面的应用,但这可以通过增加无符号整型的C接口规范的复杂度来解决。即使没有,现有的C接口规范也足以应对。如今,fpm较好地支持了C、Fortran的编译,这为我提供了便利。

‘肆’ fortran编程。求教求余函数的算法。我认为 MOD(1,5)=0,但结果为1.请指教。

同学,你的算法没有错误!
求余运算中,mod(1,5)是等于1的,因为1/5=0…1

所以余数是1,希望你能够采纳!谢谢!

热点内容
httpsget加密 发布:2025-08-02 14:07:41 浏览:204
手机存储卡不能写入 发布:2025-08-02 14:01:11 浏览:26
weblogiclinux安装 发布:2025-08-02 13:59:41 浏览:569
vivo手机为什么不能设置锁屏密码 发布:2025-08-02 13:52:05 浏览:645
php二进制加密 发布:2025-08-02 13:51:04 浏览:282
水强行压缩 发布:2025-08-02 13:37:23 浏览:990
nginx内网访问 发布:2025-08-02 13:35:06 浏览:31
如何用解压密码解压手机文件 发布:2025-08-02 13:32:56 浏览:217
lex制作编译器 发布:2025-08-02 13:31:52 浏览:7
php把数组写入文件 发布:2025-08-02 13:25:51 浏览:282