实验工具

围绕 C++ 算法与公式,提供「理论 + 实验」的小工具集合

实验列表

按分类浏览,选择实验进入演练

基础运算

绝对值实验

输入整数 a,计算 |a|,理解正数、负数与零的绝对值定义。

基础运算

取模运算实验

输入 a、m,计算 a mod m,并演示 (a+b) mod m、(a×b) mod m 等性质。

基础运算

整除与余数实验

输入 a、b,得到商 q 与余数 r,理解 a = b×q + r 及与取模的关系。

基础运算

平方与整数幂实验

输入底数 a 与正整数 k,用朴素乘法逐步计算 a^k(平方、立方等)。

基础运算

阶乘实验

输入 n,实验 n! 的计算过程,并查看 1! 到 n! 的变化。

组合数学

排列实验

输入 n 和 m,实验排列数 P(n,m) 的计算过程与具体排列结果。

组合数学

组合实验

输入 n 和 m,实验组合数 C(n,m) 的计算过程与具体组合结果。

组合数学

杨辉三角实验

输入行数 n,生成前 n 行杨辉三角,对应二项式 (a+b)^n 的展开系数。

数论

最大公约数实验

输入两个整数 a 和 b,观察辗转相除法求 gcd(a,b) 的每一步推导。

数据结构

前缀和与差分实验

输入数组,观察前缀和与差分数组的构造过程及互逆关系。

数据结构

树状数组实验

输入数组与若干查询/修改,观察树状数组(Fenwick Tree)维护前缀和的过程。

数据结构

线段树实验

输入数组与若干区间查询,观察线段树维护区间和的树型结构与递归过程。

数据结构

二叉搜索树实验

输入一系列 insert/find 操作,观察二叉搜索树的插入与查找路径。

数据结构

栈模拟实验

输入 push/pop 操作序列,观察栈内元素变化。

数据结构

链式栈实验

用链表实现栈,push 在表头插入、pop 从表头删除,观察链式栈的演示过程。

数据结构

队列模拟实验

输入 push/pop 操作序列,观察队列队首出、队尾入的过程。

数据结构

双端队列实验

两端都可入队、出队,输入 push_front/push_back/pop_front/pop_back 观察双端队列变化。

数据结构

循环队列实验

固定容量的循环数组实现队列,观察 head/tail 循环移动与 enqueue/dequeue 过程。

数据结构

单向链表实验

输入一系列插入/删除操作,观察单链表从表头到表尾的变化。

数据结构

双向链表实验

每个节点有前驱与后继指针,支持头尾插入删除,观察双向链表变化。

数据结构

堆(优先队列)实验

输入 push/pop 操作,观察大根堆的维护过程与堆内数组变化。

数据结构

哈希表实验

输入一系列 insert/find 操作,观察开放定址哈希表的冲突与探测过程。

数据结构

并查集实验

输入合并/查询操作序列,观察并查集父数组与路径压缩过程。

排序

冒泡排序实验

输入数组,观察冒泡排序每一轮比较与交换的过程。

排序

选择排序实验

输入数组,观察每轮选择未排序部分最小值并交换的过程。

排序

插入排序实验

输入数组,观察每轮将当前元素插入已排序部分的过程。

排序

归并排序实验

输入数组,观察归并排序分治与合并过程的柱状图演示。

排序

快速排序实验

输入数组,观察快速排序划分与递归过程的柱状图演示。

排序

计数排序实验

输入非负整数数组(范围 0~K),观察计数、前缀和与按序放置的过程。

排序

堆排序实验

利用大根堆性质,建堆后反复取堆顶与末尾交换并下滤,观察堆排序过程。

排序

希尔排序实验

插入排序的改进:按递减步长分组进行插入排序,观察每轮步长下的数组变化。

排序

基数排序实验

按位排序(从低位到高位),每轮用稳定排序按当前位排列,观察过程。

排序

单调栈实验

输入数组,观察单调栈求每个位置「左侧/右侧第一个更大」的过程。

查找

线性搜索实验

在数组中逐个比较直到找到目标或遍历完,观察线性搜索的每一步比较。

查找

二分查找实验

输入有序数组和目标值,观察二分查找每一步的 left、mid、right 与比较结果。

查找

二分答案实验

在整数范围内二分答案,观察 check(mid) 与区间收缩过程(如求 floor(√n))。

数论

快速幂实验

输入底数 a、指数 n(及可选模数),观察二进制快速幂的每一步计算过程。

数论

埃氏筛实验

输入上界 n,观察埃拉托斯特尼筛法筛出 2~n 内所有质数的过程。

数论

线性筛实验

输入上界 n,观察欧拉线性筛用最小质因子筛质数的过程。

组合数学

容斥原理实验

输入若干集合大小(及可选交集),观察容斥公式 |A∪B∪…| 的逐步展开与计算。

数论

模逆元实验

输入 a 与质数 p,求 a 在模 p 下的乘法逆元,观察费马小定理或扩欧过程。

数论

扩展欧几里得实验

输入 a、b,求 ax+by=gcd(a,b) 的一组整数解 (x,y),观察扩展欧几里得的递归过程。

数论

组合数取模实验

输入 n、k 与质数 p,用预处理阶乘+逆元求 C(n,k) mod p,展示过程。

数论

中国剩余定理实验

输入 2~3 组同余方程 x≡a_i (mod m_i),观察 CRT 求解过程与通解。

动态规划

0/1 背包实验

输入物品重量与价值、背包容量,观察 0/1 背包 DP 的填表过程与最大价值。

动态规划

完全背包实验

输入容量与多件物品(每件无限),观察完全背包 DP 的填表与最大价值。

动态规划

多重背包实验

输入容量与物品(重量、价值、件数上限),观察多重背包 DP 与最大价值。

动态规划

最长上升子序列实验

输入序列,观察 LIS 的 O(n²) DP 填表过程与最长长度。

图论

BFS 遍历实验

输入图(可选有向/无向)与起点,观察广度优先遍历的队列与访问顺序。

图论

DFS 遍历实验

输入图(可选有向/无向)与起点,观察深度优先遍历的栈与访问顺序。

图论

最短路径实验

输入一个小图和起点终点,实验 Dijkstra 算法的每一步松弛过程和最短路径。

图论

Floyd 最短路实验

输入有向图边集,观察 Floyd 算法每轮对 dist 矩阵的松弛过程。

图论

Bellman-Ford 实验

输入有向图与起点,观察每轮松弛过程,支持负权边与负环检测。

图论

最小生成树实验

输入无向图边集,观察 Kruskal 按权排序、选边并查集合并的过程。

图论

Prim 最小生成树实验

输入无向图边集,观察从起点扩展最小边的 Prim 过程。

图论

拓扑排序实验

输入有向无环图(DAG)边集,观察入度、队列与拓扑序列的生成过程。

图论

龟兔赛跑判环实验

输入链表 next 指针(或下标序列),观察 Floyd 龟兔赛跑算法检测环与找环起点。

图论

二分图判定实验

输入无向图,用 BFS/DFS 染色判定是否为二分图,观察染色过程与冲突检测。

字符串

KMP 模式匹配实验

输入文本与模式串,观察 next 数组构建与匹配过程。

递归与分治

递归树实验

以斐波那契 fib(n) 为例,观察递归调用树与每一步返回值。

未找到匹配的实验工具
请尝试其他关键词或切换分类
用户登录
微信客服

返回顶部