• 2.证明 非单一点 Oct.2023


    原题

    已知等边 Δ P 0 P 1 P 2 \Delta P_0P_1P_2 ΔP0P1P2,它的外接圆是 O O O,设 O O O的半径是 R R R。同时,设 Δ P 0 P 1 P 2 \Delta P_0P_1P_2 ΔP0P1P2所经过的所有点的集合是 S 0 S_0 S0。显然, S 0 S_0 S0中有无限个元素。

    接下来,在 O O O上取点 P 3 , P 4 , P 5 P_3,P_4,P_5 P3,P4,P5,使得四边形 P 0 P 3 P 4 P 5 P_0P_3P_4P_5 P0P3P4P5是正四边形。记这个四边形经过的所有点的集合为 S 1 S_1 S1

    接下来,在 O O O上取点 P 6 , P 7 , P 8 , P 9 P_6,P_7,P_8,P_9 P6,P7,P8,P9,使得五边形 P 0 P 6 P 7 P 8 P 9 P_0P_6P_7P_8P_9 P0P6P7P8P9是正五边形。记这个五边形的点集为 S 2 S_2 S2

    中间省略 n − 2 n-2 n2次操作。

    最后,在 O O O上取点 δ 1 , δ 2 , δ 3 , . . . , δ n \delta_1,\delta_2,\delta_3,...,\delta_n δ1,δ2,δ3,...,δn,使得 n + 1 n+1 n+1边形 P 0 δ 1 δ 2 δ 3 . . . δ n P_0\delta_1\delta_2\delta_3...\delta_n P0δ1δ2δ3...δn是正 n + 1 n+1 n+1边形。

    记所有 P 0 δ 1 δ 2 δ 3 . . . δ n P_0\delta_1\delta_2\delta_3...\delta_n P0δ1δ2δ3...δn上的非单一点的集合为 W ′ W' W

    非单一点的定义是:

    • 对于每一个点, S 0 , S 1 , . . . , S n − 1 S_0,S_1,...,S_{n-1} S0,S1,...,Sn1中任意一个集合包含了它

    • 设这个点的坐标是 x , y x,y x,y,则 x , y x,y x,y满足 x 2 + y 2 = R 2 x^2+y^2=R^2 x2+y2=R2

    显然, P 0 P_0 P0是一个非单一点。

    W ′ W' W中元素的个数为 L ′ L' L

    回答下列问题:

    (1)当 n = 9 n=9 n=9时,求 L ′ L' L

    (2)当 n = 99 n=99 n=99时,求 L ′ L' L

    (3)证明或证伪: n n n有无限种取值方法,使得 L ′ = 1 L'=1 L=1

    (4)求 2 1.048576 × 1 0 6 2^{1.048576\times 10^6} 21.048576×106边形与 3 3 27 3^{3^{27}} 3327的公共点数。

    (5)证明或证伪:并非对于所有的 n = 2 2 x n=2^{2^x} n=22x,都存在 L ′ = 1 L'=1 L=1


    让我们先单独讨论 M M M边形的情况。

    不妨设 M M M边形的 M M M个点分别为 P 0 , P 1 , . . . , P M − 1 P_0,P_1,...,P_{M-1} P0,P1,...,PM1,且外接圆心为 O O O,半径为 R R R

    定义 ∠ P i O P 0 = θ i \angle P_iOP_0=\theta_i PiOP0=θi,设 P 0 ( R , 0 ) P_0(R,0) P0(R,0)

    则有 θ i = 2 π i M \theta_i=\frac{2\pi i}{M} θi=M2πi

    那么我们可以求出
    P i ( x i , y i ) x i = R cos ⁡ θ i , y i = R sin ⁡ θ i . P_i(x_i,y_i)\\ x_i=R\cos\theta_i,\\ y_i=R\sin\theta_i. Pi(xi,yi)xi=Rcosθi,yi=Rsinθi.
    那么我们回到原题。

    由于非单一点的第二个条件,我们得知它在圆 O O O上。

    不妨设 N N N边形( N = n + 1 N=n+1 N=n+1)的第 i i i个点与 K K K边形的第 j j j个点重合。

    那么我们有:
    θ i = θ j + 2 k π 2 π i N = 2 π j K + 2 k π , 1 ≤ j < K < N , i < N i N = j K + k ∵ 0 ≤ i N < 1 , 0 ≤ j K < 1 ∴ k = 0 ∴ j N = i K , i = j N K \theta_i=\theta_j+2k\pi\\ \frac{2\pi i}{N}=\frac{2\pi j}{K}+2k\pi,1\leq jθi=θj+2N2πi=K2πj+2,1j<K<N,i<NNi=Kj+k0Ni<1,0Kj<1k=0jN=iK,i=jKN
    例如,当 n = 9 n=9 n=9时, N = n + 1 = 10 N=n+1=10 N=n+1=10,符合的结果有:
    i = 0 , c h o o s e   j = 0 i = 1 , N o   W a y i = 2 , c h o o s e   j = 1 , K = 5 i = 3 , N o   W a y i = 4 , c h o o s e   j = 2 , K = 5 i = 5 , c h o o s e   j = 2 , K = 4 i = 6 , c h o o s e   j = 3 , K = 5 i = 7 , N o   W a y i = 8 , c h o o s e   j = 4 , K = 5 i = 9 , N o   W a y i=0,choose\ j=0\\ i=1,No\ Way\\ i=2,choose\ j=1,K=5\\ i=3,No\ Way\\ i=4,choose\ j=2,K=5\\ i=5,choose\ j=2,K=4\\ i=6,choose\ j=3,K=5\\ i=7,No\ Way\\ i=8,choose\ j=4,K=5\\ i=9,No\ Way i=0,choose j=0i=1,No Wayi=2,choose j=1,K=5i=3,No Wayi=4,choose j=2,K=5i=5,choose j=2,K=4i=6,choose j=3,K=5i=7,No Wayi=8,choose j=4,K=5i=9,No Way
    第一问答案为 6 6 6

    假设 N = β 1 α 1 β 2 α 2 . . . β n α n , β i < β j   w h e n   i ≤ j , N=\beta_1^{\alpha_1}\beta_2^{\alpha_2}...\beta_n^{\alpha_n},\beta_i<\beta_j\ when\ i\leq j, N=β1α1β2α2...βnαn,βi<βj when ij, β i \beta_i βi为质数。

    显然 i = p M i=pM i=pM,且 M = β i β j . . . M=\beta_i\beta_j... M=βiβj... β i \beta_i βi可能与 β j , . . . \beta_j,... βj,...相等)

    则有 j = p , K = N M j=p,K=\frac{N}{M} j=p,K=MN

    显然 K < N KK<N,那么只需得 p < N M p<\frac NM p<MN

    对于 N = 100 N=100 N=100的情况,

    N = 2 2 ⋅ 5 2 = 2 ⋅ 2 ⋅ 5 ⋅ 5 N=2^2·5^2=2·2·5·5 N=2252=2255
    i = 1 × 2 = 2 , 2 × 2 = 4 , . . . , 49 × 2 = 98. 1 × 5 = 5 , 2 × 5 = 10 , . . . , 19 × 5 = 95. i=\\ 1\times 2=2,\\ 2\times 2=4,\\ ...,\\ 49\times 2=98.\\ \\ 1\times 5=5,\\ 2\times 5=10,\\ ...,\\ 19\times 5=95. i=1×2=2,2×2=4,...,49×2=98.1×5=5,2×5=10,...,19×5=95.

    在这些点中,有 9 9 9重复的情况。因此得到结果为 49 + 19 − 9 + 1 = 60 49+19-9+1=60 49+199+1=60种。(还要加上 P 0 P_0 P0

    总结规律,发现实质上就是求 N N N所有的不与它互质且小于它自己的数。注意 N > 4 N>4 N>4,因为图里面没有二边形

    那么对于每一个质数,显然 L ′ L' L只能为 1 1 1。而质数有无限个,那么第三问得证。

    对于第四问,显然这两个数互质,没有重复的点。

    对于第五问,存在许多反例,其中一个就是 n = 5 n=5 n=5,此时的 N N N不是质数,则必定存在除 P 0 P_0 P0外的非单一点


    引申出的编程问题

    Non-Single Points
    如下。

    非单一点

    题目描述

    已知等边 Δ P 0 P 1 P 2 \Delta P_0P_1P_2 ΔP0P1P2,它的外接圆是 O O O,设 O O O的半径是 R R R。同时,设 Δ P 0 P 1 P 2 \Delta P_0P_1P_2 ΔP0P1P2所经过的所有点的集合是 S 0 S_0 S0。显然, S 0 S_0 S0中有无限个元素。

    接下来,在 O O O上取点 P 3 , P 4 , P 5 P_3,P_4,P_5 P3,P4,P5,使得四边形 P 0 P 3 P 4 P 5 P_0P_3P_4P_5 P0P3P4P5是正四边形。记这个四边形经过的所有点的集合为 S 1 S_1 S1

    接下来,在 O O O上取点 P 6 , P 7 , P 8 , P 9 P_6,P_7,P_8,P_9 P6,P7,P8,P9,使得五边形 P 0 P 6 P 7 P 8 P 9 P_0P_6P_7P_8P_9 P0P6P7P8P9是正五边形。记这个五边形的点集为 S 2 S_2 S2

    中间省略 n − 2 n-2 n2次操作。

    最后,在 O O O上取点 δ 1 , δ 2 , δ 3 , . . . , δ n \delta_1,\delta_2,\delta_3,...,\delta_n δ1,δ2,δ3,...,δn,使得 n + 1 n+1 n+1边形 P 0 δ 1 δ 2 δ 3 . . . δ n P_0\delta_1\delta_2\delta_3...\delta_n P0δ1δ2δ3...δn是正 n + 1 n+1 n+1边形。

    记所有 P 0 δ 1 δ 2 δ 3 . . . δ n P_0\delta_1\delta_2\delta_3...\delta_n P0δ1δ2δ3...δn上的非单一点的集合为 W ′ W' W

    非单一点的定义是:

    • 对于每一个点, S 0 , S 1 , . . . , S n − 1 S_0,S_1,...,S_{n-1} S0,S1,...,Sn1中任意一个集合包含了它

    • 设这个点的坐标是 x , y x,y x,y,则 x , y x,y x,y满足 x 2 + y 2 = R 2 x^2+y^2=R^2 x2+y2=R2

    显然, P 0 P_0 P0是一个非单一点。

    W ′ W' W中元素的个数为 L ′ L' L

    输入格式

    T T T组数据。

    每一组数据只有一行,输入 n n n

    输出格式

    T T T行,按顺序输出每个样例的 L ′ L' L

    样例 #1

    样例输入 #1

    1
    9
    
    • 1
    • 2

    样例输出 #1

    6
    
    • 1

    提示

    对于 100 % 100\% 100%的数据,有 7 < n < 5 × 1 0 6 77<n<5×106 1 ≤ T < 5 × 1 0 6 1\leq T<5\times10^6 1T<5×106


    题解

    传送门
    如下。

    题目

    传送门

    正解

    单独讨论 M M M边形的情况。

    不妨设 M M M边形的 M M M个点分别为 P 0 , P 1 , . . . , P M − 1 P_0,P_1,...,P_{M-1} P0,P1,...,PM1,且外接圆心为 O O O,半径为 R R R

    定义 ∠ P i O P 0 = θ i \angle P_iOP_0=\theta_i PiOP0=θi,设 P 0 ( R , 0 ) P_0(R,0) P0(R,0)

    则有 θ i = 2 π i M \theta_i=\frac{2\pi i}{M} θi=M2πi

    那么我们可以求出
    P i ( x i , y i ) P_i(x_i,y_i) Pi(xi,yi)
    x i = R cos ⁡ θ i , x_i=R\cos\theta_i, xi=Rcosθi,
    y i = R sin ⁡ θ i . y_i=R\sin\theta_i. yi=Rsinθi.

    那么我们回到原题。

    由于非单一点的第二个条件,我们得知它在圆 O O O上。

    不妨设 N N N边形( N = n + 1 N=n+1 N=n+1)的第 i i i个点与 K K K边形的第 j j j个点重合。

    那么我们有:
    θ i = θ j + 2 k π \theta_i=\theta_j+2k\pi θi=θj+2
    2 π i N = 2 π j K + 2 k π , 1 ≤ j < K < N , i < N \frac{2\pi i}{N}=\frac{2\pi j}{K}+2k\pi,1\leq jN2πi=K2πj+2,1j<K<N,i<N
    i N = j K + k \frac{i}{N}=\frac{j}{K}+k Ni=Kj+k
    ∵ 0 ≤ i N < 1 , 0 ≤ j K < 1 \because 0\leq\frac{i}{N}<1,0\leq\frac{j}{K}<1 0Ni<1,0Kj<1
    ∴ k = 0 \therefore k=0 k=0
    ∴ j N = i K , i = j N K \therefore jN=iK,i=j\frac{N}{K} jN=iK,i=jKN

    例如,当 n = 9 n=9 n=9时, N = n + 1 = 10 N=n+1=10 N=n+1=10,符合的结果有:

    i = 0 , c h o o s e   j = 0 i=0,choose\ j=0 i=0,choose j=0
    i = 1 , N o   W a y i=1,No\ Way i=1,No Way
    i = 2 , c h o o s e   j = 1 , K = 5 i=2,choose\ j=1,K=5 i=2,choose j=1,K=5
    i = 3 , N o   W a y i=3,No\ Way i=3,No Way
    i = 4 , c h o o s e   j = 2 , K = 5 i=4,choose\ j=2,K=5 i=4,choose j=2,K=5
    i = 5 , c h o o s e   j = 2 , K = 4 i=5,choose\ j=2,K=4 i=5,choose j=2,K=4
    i = 6 , c h o o s e   j = 3 , K = 5 i=6,choose\ j=3,K=5 i=6,choose j=3,K=5
    i = 7 , N o   W a y i=7,No\ Way i=7,No Way
    i = 8 , c h o o s e   j = 4 , K = 5 i=8,choose\ j=4,K=5 i=8,choose j=4,K=5
    i = 9 , N o   W a y i=9,No\ Way i=9,No Way

    样例答案为 6 6 6

    假设 N = β 1 α 1 β 2 α 2 . . . β n α n , β i < β j   w h e n   i ≤ j , N=\beta_1^{\alpha_1}\beta_2^{\alpha_2}...\beta_n^{\alpha_n},\beta_i<\beta_j\ when\ i\leq j, N=β1α1β2α2...βnαn,βi<βj when ij, β i \beta_i βi为质数。

    显然 i = p M i=pM i=pM,且 M = β i β j . . . M=\beta_i\beta_j... M=βiβj... β i \beta_i βi可能与 β j , . . . \beta_j,... βj,...相等)

    则有 j = p , K = N M j=p,K=\frac{N}{M} j=p,K=MN

    显然 K < N KK<N,那么只需得 p < N M p<\frac NM p<MN

    那么我们就能发现非单一点的数量 L ′ L' L实质上是所有小于 N N N不与 N N N互质的数字的数量再加一。

    统计与 N N N互质的数字可以借助于欧拉函数。
    介绍

    AC代码:

    #include 
    #include 
    using namespace std;
    const int N = (int)5e6;
    int a[N];
    inline void read(int &x) {  // 返回类型必须为void,否则竞赛中Linux测评会报错,Windows没事
    	x = 0;
    	short flag = 1;
    	char c = getchar();
        while(c < '0' || c > '9'){
        	// 此处如果只用if的话容易在数据不规范时出错,特别是cin和read混用
            if(c == '-')flag = -1;
            c = getchar();
        }
    	while(c >= '0' && c <= '9') {
    		x = (x << 3) + (x << 1) + (c ^ 48);  // 48这个数字恰好往后10个数都可以使用位运算,可以写成二进制证明;位运算能用当然更好
    		c = getchar();
    	}
    	x *= flag;
    }
    /* 
    inline int read()
    {
        int X = 0, w = 0; char ch = 0;
        while (!isdigit(ch)) { w |= ch == '-'; ch = getchar(); }
        while (isdigit(ch)) X = (X << 3) + (X << 1) + (ch ^ 48), ch = getchar();
        return w ? -X : X;
    }
    */ 
    
    inline void write(int x)
    {
         if (x < 0) putchar('-'), x = -x;
         if (x > 9) write(x / 10);
         putchar(x % 10 + '0');
    }
    
    void phi_table()    //打表,求出1500000中所有的数的欧拉函数值
    {
    	memset(a,0,sizeof(a));a[1]=1;
    	for(register int i=2;i<=N;++i)
    		if(!a[i])
    		{
    			for(register int j=i;j<=N;j+=i)
    			{
    				if(!a[j])a[j]=j;
    				a[j]=a[j]/i*(i-1);
    			}
    		}
    }
    int main(){
    	int T,n;
    	read(T);
    	phi_table();
    	while (T--) {
    		read(n);
    		write(n+1-a[n+1]);
    		putchar('\n');
    	}
    	
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
  • 相关阅读:
    PDF转换工具哪个好?值得推荐的3款PDF转换软件
    锁的分类总结
    基于边缘智能网关的储能系统安全监测管理方案
    torch之从.datasets.CIFAR10解压出训练与测试图片 (附带网盘链接)
    STM32F4x_中断配置
    读书笔记:《你拿什么定义自己》
    C++面试题总结
    电影下载工具推荐
    企业数字化转型架构专业名词积累
    猿创征文 第二季|业务总结 #「笔耕不辍」--生命不息,写作不止#
  • 原文地址:https://blog.csdn.net/html_finder/article/details/133578500