牛顿迭代法
牛顿迭代法解开根号
平方数的正因子个数为奇数个,非平方正数的正因子个数为偶数个
- 设某正整数n
- 存在一个正因子s,必定有另一因子 t = n / s
- 若n为非平方数,则对任意因子都有一个不想等的因子与之对应,所以非平方数的正因子个数为偶数个
- 若n为平方数,则存在因子 N \sqrt{N} N 对应的因子是他本身,所以平方数的正因子个数为奇数个
1~N范围内平方数的个数为 N \sqrt{N} N 个
- 取某正整数N
- 可知1~N范围内最大的平方数应是m= N 2 \sqrt{N}^{2} N2
- 由此可知1~m的平方都在(1,N)的范围之内
- 因此1~N范围内的平方数的个数为 N \sqrt{N} N 个
两数平方和取余4的值
-
偶数的平方
-
取一偶数n,n 可表示为 2 ∗ m 2*m 2∗m
-
所以 n 2 = 4 ∗ m 2 n^{2}=4*m^{2} n2=4∗m2
-
所以 n 2 % 4 = 0 n^{2}\%4=0 n2%4=0
-
奇数的平方
-
取一奇数n,n可以表示为 m + 1 m+1 m+1(m为偶数)
-
所以 n 2 = m 2 + 2 m + 1 n^{2}=m^{2}+2m+1 n2=m2+2m+1
-
由偶数的平方得 m 2 % 4 = 0 m^{2}\%4=0 m2%4=0
-
%2m%可表示为 2 m = 2 ∗ ( 2 ∗ p ) = 4 p 2m=2*\left ( 2*p \right )=4p 2m=2∗(2∗p)=4p,所以 2 m % 4 = 0 2m\%4=0 2m%4=0
-
可得 n 2 % 4 = 1 n^{2}\%4=1 n2%4=1
结论
- 两个偶数的平方和取余4等于0
- 两个奇数的平方和取余4等于2
- 偶数的平方加上奇数的平方和等于1
- 如果一个数取余4等于3,那么这个数一定不是两个数的平方和
-2019-03-09更新-
杨辉三角
- 杨辉三角的五条主要性质:
- 杨辉三角以正整数构成,数字左右对称,每行由1开始逐渐变大,然后变小,回到1
- 第n行的数字个数为n个
- 第n行的第k个数字为组合数 C n − 1 k − 1 C_{n-1}^{k-1} Cn−1k−1
- 第n行数字和为 2 n − 1 2^{n-1} 2n−1
- 除每行最左侧与最右侧的数字以外,每个数字等于它的左上方与右上方两个数字之和(也就是说,第 n 行第 k 个数字等于第 n-1 行的第 k-1 个数字与第 k 个数字的和)。这是因为有组合恒等式: C n i C_{n}^{i} Cni= C n − 1 i − 1 C_{n-1}^{i-1} Cn−1i−1+ C n − 1 i C_{n-1}^{i} Cn−1i
//利用第五条性质输出前n行杨辉三角
vector<vector<int>> generate(int numRows) {
vector<vector<int>> res;
if(!numRows) return res;
vector<int> temp(1,1);
res.push_back(temp);
for (int i = 2; i <= numRows; i++) {
temp.push_back(0);
for (int j = i - 1; j >= 1; --j) {
temp[j] += temp[j - 1];
}
res.push_back(temp);
}
return res;
}
-2019-03-11更新-
三角形面积
- 一般: 1 2 a h \frac{1}{2}ah 21ah
- 海伦公式:
- 已知三角形三边长 a、b、c
- 令 p = 1 2 ( a + b + c ) p=\frac{1}{2}\left ( a+b+c \right ) p=21(a+b+c)
- 则 S = p ( p − a ) ( p − b ) ( p − c ) S=\sqrt{p(p-a)(p-b)(p-c)} S=p(p−a)(p−b)(p−c)
- 已知三角形两边 a, b,与两边夹角C
- 则 S = a b ⋅ s i n C S=ab·sinC S=ab⋅sinC
- 已知三角形三边分别为a、b、c,内切圆半径为r
- 则 S = 1 2 r ( a + b + c ) S=\frac{1}{2}r(a+b+c) S=21r(a+b+c)
- 已知三角形三边分别为a、b、c,外接圆半径为R
- 则 S = a b c 4 R S=\frac{abc}{4R} S=4Rabc
- 宋朝秦九韶公式:
- S = 1 4 [ a 2 b 2 − ( a 2 + b 2 − c 2 2 ) 2 ] S=\sqrt{\frac{1}{4}\left [ a^{2}b^{2}-\left ( \frac{a^{2}+b^{2}-c^{2}}{2} \right )^{2} \right ]} S=41[a2b2−(2a2+b2−c2)2]
- 太麻烦了,原理和海伦公式一样,记海伦就好了
- 行列式形式:
- S = 1 2 [ x 1 y 1 1 x 2 y 2 1 x 3 y 3 1 ] S=\frac{1}{2}\begin{bmatrix} x_{1} & y_{1} & 1\\ x_{2} & y_{2} & 1\\ x_{3} & y_{3} & 1 \end{bmatrix} S=21⎣⎡x1x2x3y1y2y3111⎦⎤
- S = 1 2 ( ( x 1 y 2 − x 1 y 3 ) + ( x 2 y 3 − x 2 y 1 ) + ( x 3 y 1 − x 3 y 2 ) ) S=\frac{1}{2}\left ( \left ( x_{1}y_{2}-x_{1}y_{3} \right )+\left ( x_{2}y_{3}-x_{2}y_{1} \right )+\left ( x_{3}y_{1}-x_{3}y_{2} \right ) \right ) S=21((x1y2−x1y3)+(x2y3−x2y1)+(x3y1−x3y2))
- 能用到的也不多,等物遇到其他的再继续补充吧,敲公式比敲代码累多了T_T