n个圆最多把平面分成几份
考虑递推。
设 f ( n ) f(n) f(n) 为 n n n个圆能把平面最多分成的份数。
f ( 1 ) = 2 , f ( 2 ) = 4 f(1)=2,f(2)=4 f(1)=2,f(2)=4
假设已知 f ( n − 1 ) f(n-1) f(n−1),现在我们要求 f ( n ) f(n) f(n),对于第 n n n个圆,最多可以与前 n − 1 n-1 n−1个圆有个 2 ( n − 1 ) 2(n-1) 2(n−1)个交点,因为两个圆相交会产生两个交点,所以与前 n − 1 n-1 n−1个圆相交,就有 2 ( n − 1 ) 2(n-1) 2(n−1)个交点。每个弧线段可以把第 n n n个圆分割成两段,所以 ( n − 1 ) (n-1) (n−1)个弧线段(即 2 ( n − 1 ) 2(n-1) 2(n−1)个交点) 能把第 n n n个圆分割成 2 ( n − 1 ) 2(n-1) 2(n−1)部分。
所以 f ( n ) = f ( n − 1 ) + 2 ( n − 1 ) f(n) = f(n-1)+2(n-1) f(n)=f(n−1)+2(n−1)
时间复杂度: O ( 1 ) O(1) O(1)
貌似欧拉公式也可以做。
传送门