算法用到的数学知识与技巧
文章平均质量分 92
算法的数学常识和一些数学相关的技巧
大磕学家ZYX
这个作者很懒,什么都没留下…
展开
-
CPP取余/取模运算用途整理
"/10"操作会将数字的最后一位(个位数)去掉。// 输出 123如果要获取一个数的个位数,可以使用"%10"操作,"%10"操作会得到数字的个位数。// 输出 4。原创 2023-07-05 23:27:01 · 1019 阅读 · 0 评论 -
1-n范围内的质数查找:埃拉托斯特尼筛法
质数是一个自然数,且除了1和它本身以外没有其他因数。换句话说,如果一个数大于1,且只有两个正因数(1和它本身),那么它就是一个质数。例如,2、3、5、7、11、13等都是质数。注意,1和0不是质数。根据质数的定义,质数p的倍数必然有其他因数(至少包括p本身),所以它们不可能是质数。因此,我们在使用埃拉托斯特尼筛法求质数时,对于每一个已知的质数p,都需要将所有p的倍数标记为非质数。例如,当p=2时,我们将所有2的倍数(即所有偶数)标记为非质数。原创 2023-07-03 15:37:17 · 823 阅读 · 0 评论 -
DAY33:回溯算法(九)解数独(棋盘问题,二维递归)
Q:backtracking 的结果是 true,直接返回 true的前提,不是第一个true会产生吗?这样的情况下,第一个true如何产生?当调用函数时,它会尝试填充第一个空格,然后调用自身来填充下一个空格,依此类推,直到找到一个完全符合数独规则的解决方案,此时返回true。如果在尝试填充任何空格时都找不到解决方案,那么它会返回false,并回溯到上一步,尝试填充上一个空格的下一个可能的值。假设遍历到了最后,棋盘只有最后一个位置没有填满,此时调用,并在这个位置上找到一个合法的数字填入后将会再次调用。原创 2023-06-28 21:05:55 · 631 阅读 · 0 评论 -
螺旋矩阵题目的两种解法及注意点
创建了一个名为 ans 的 n x n 的二维整数数组,所有元素都初始化为 0。数组的定义对应了在二维矩阵中向四个方向(右,下,左,上)移动的坐标变化规则。这四个方向是按照螺旋矩阵的生成规则设定的。,这表示初始的移动方向为向右。**当在矩阵的边界或者已经填充的单元格需要改变方向时,通过。时,我们的代码可能会试图访问数组的越界索引,从而可能导致运行时错误。是否超出了矩阵的边界时,我们需要比较它们是否等于或者大于。通过这种方式,可以便捷地控制在二维矩阵中的移动方向。,该公式中t从0开始取值,公式的结果是。原创 2023-05-12 15:28:43 · 119 阅读 · 0 评论