在C代码中调用Python:一份实用指南

2025-05-29
在C代码中调用Python:一份实用指南

本文提供了一个实用的分步指南,演示如何在C代码中调用Python函数。文章从基础开始,讲解了如何在Linux/Mac系统上配置环境,包括包含Python.h头文件、编译C代码以及使用Py_Initialize和Py_Finalize初始化和结束Python解释器。文中详细介绍了如何加载Python模块、获取函数属性、调用函数(包括无参和有参函数)以及清理内存。通过具体的代码示例,读者可以学习如何将Python函数集成到C程序中,实现C和Python代码的无缝交互。

阅读更多

程序员的组合数学入门:整数划分与组合

2025-05-18
程序员的组合数学入门:整数划分与组合

LeetArxiv 推出了《程序员需要了解的枚举组合学》系列文章的第 1 章,介绍了整数划分和整数组合。文章用通俗易懂的语言讲解了这两个概念,并通过观察和模式识别的方法,展示了如何解决枚举组合学问题。文章还提供了 C 语言代码,用于生成整数的弱组合,并利用二项式系数和二分查找算法高效地枚举所有弱组合。

阅读更多
开发

LeetArxiv复现1931年大数分解算法

2025-03-30
LeetArxiv复现1931年大数分解算法

LeetArxiv平台复现了1931年Lehmer和Powers发表的基于连分数理论的大数分解算法。文章详细解读了该算法的原理,包括如何计算平方根的连分数展开式,以及如何利用得到的系数(P和A)进行分解。文章通过逐步分解一个例子,阐述了算法的细节,并最终成功地分解了13290059这个数字。该算法是历史上第一个具有次指数时间复杂度的整数分解算法,具有重要的历史意义。

阅读更多

LeetArxiv: 基于论文的LeetCode,将Arxiv论文转换为可实践的编程指南

2025-02-24
LeetArxiv: 基于论文的LeetCode,将Arxiv论文转换为可实践的编程指南

LeetArxiv是一个面向希望从事研究工作的程序员的平台,它提供基于Arxiv论文的每周实践编程指南。以一篇关于AAN离散余弦变换的论文为例,LeetArxiv提供了一个分步骤的C语言实现,并讲解了其优化过程。该论文总结了1981年一篇关于快速DCT-SQ图像方案的论文中的优化方法,涵盖了DCT-II的推导、AAN方法的流程图及代码实现,并解释了其优化的原理:减少耗时的余弦计算,利用对称性,预计算常量以及并行计算的可能性。

阅读更多

用有限域汇编在CPU上模拟GPU

2025-01-17
用有限域汇编在CPU上模拟GPU

本文介绍了使用名为Finite Field Assembly (FF-asm) 的新型编程语言在CPU上模拟GPU的方法。FF-asm 采用递归计算范式,无需SIMD向量化或OpenMP并行化,通过自定义数学系统(基于有限域理论和同余)实现CPU上的大量并行计算。文章通过逐步的代码示例演示了如何在FF-asm中进行加法和乘法运算,展示了其在模拟GPU方面的潜力。

阅读更多