AI算法 每日算法 — 使用java实现纸飞机:抛体运动模拟与最优投掷角度计算 引言 纸飞机是每个人童年都玩过的经典游戏。看似简单的一掷,背后却蕴含着丰富的物理学原理:重力、空气阻力、升力与俯仰力矩共同决定了纸飞机的飞行轨迹。本文将用...
AI算法 每日算法 — 使用java实现斐波那契博弈:Zeckendorf分解与贪心最优取子策略 一、游戏规则与数学背景 斐波那契博弈(Fibonacci Nim)是组合博弈论中的经典模型,规则如下: - 初始有 N 枚石子 - 先手玩家第一次可以取 1 到 N-1 枚石子(不能全取) -...
AI算法 每日算法 — 使用java实现Rabin-Karp:滚动哈希与多模式字符串匹配 一、算法原理 Rabin-Karp 算法的核心思想是将字符串看作一个基于字符的多项式,通过哈希函数将字符串映射为整数。这样,模式串与文本子串的比较就从 O(m)...
AI算法 每日算法 — 使用java实现Splay树:自调整二叉搜索树与摊还分析 一、Splay 树核心思想 Splay 树(伸展树)是由 Tarjan 和 Sleator 于 1985 年提出的自调整二叉搜索树。与普通平衡树(如 AVL、红黑树)通过显式维护平衡因子不同,Splay...