AI算法 每日算法 — 使用java实现三壶谜题:BFS状态空间搜索与贝祖定理可解性判定 引言 三壶谜题(Water Jug Problem)是经典的数学益智问题:给定两个容量分别为 m 升和 n 升的水壶,以及一个无限水源,如何通过倒满、倒空、互倒等操作,精确量出 d...
AI算法 每日算法 — 使用java实现RSA:非对称加密与大整数模幂运算 引言 RSA 算法是现代公钥密码学的基石,自 1977 年由 Rivest、Shamir、Adleman 三人提出以来,广泛应用于 HTTPS 握手、电子签名、SSL/TLS...
AI算法 每日算法 — 使用java实现Miller-Rabin:概率素性测试与密码学应用 引言 素性测试是数论与密码学的基础问题:给定一个大整数 n,如何高效判断它是素数还是合数?确定性的多项式时间算法(AKS)虽存在但效率较低,工程实践中广泛使用...
AI算法 每日算法 — 使用java实现快速幂:二进制分解与模运算加速 引言 快速幂(Exponentiation by Squaring)又称"平方求幂",是将 O(n) 复杂度的幂运算优化为 O(log n)...
AI算法 每日算法 — 使用java实现费马小定理:快速幂模运算与素性测试 问题描述 费马小定理(Fermat's Little Theorem)是数论中最基础且应用最广泛的定理之一,由法国数学家皮埃尔·德·费马于1640年提出。该定理陈述如下: 若 p 是素数,且整数 a...
AI算法 每日算法 — 使用java实现莫比乌斯函数:线性筛构造与容斥原理应用 问题描述 莫比乌斯函数(Möbius Function),记作 μ(n),是数论中最重要的算术函数之一,由德国数学家奥古斯特·费迪南德·莫比乌斯于1832年引入。它定义如下: μ(1) = 1 若 n...
AI算法 每日算法 — 使用java实现欧拉函数:线性筛构造与积性函数性质 算法背景 欧拉函数(Euler's Totient Function),记作 φ(n),表示小于等于 n 的正整数中与 n 互质的数的个数。例如...
AI算法 每日算法 — 使用java实现线性筛与积性函数:欧拉函数和莫比乌斯函数的线性预处理 算法概述 线性筛(Linear Sieve),又称欧拉筛,是一种在 $O(n)$ 时间内筛出所有素数并同时预处理积性函数的算法。与经典的埃拉托斯特尼筛($O(n \log \log...