PE 233 Lattice points on a circle (数论:毕格拉斯三元组(勾股数))

Lattice points on a circle
Problem 233
Let f(N) be the number of points with integer coordinates that are on a circle passing through (0,0), (N,0),(0,N), and (N,N).
It can be shown that f(10000) = 36.
What is the sum of all positive integers N ≤ 10^11 such that f(N) = 420 ?

题意:
圆周上的格点

作过点 ( 0 , 0 ) 、 ( N , 0 ) 、 ( 0 , N ) 和 ( N , N ) (0,0)、(N,0)、(0,N)和(N,N) (0,0)(N,0)(0,N)(N,N)的圆,记圆周上坐标为整数的点的数目为 f ( N ) f(N) f(N)

可以看出 f ( 10000 )   =   36 f(10000) = 36 f(10000)=36。有些正整数 N   ≤   1 0 11 N ≤ 10^{11} N1011 f ( N )   =   420 f(N) = 420 f(N)=420,这些正整数的和是多少?

题解:

这道题…额…70%的难度,难度比较高了…想了一天才想出来…唉…

一开始我就把方程化成: ( x − N / 2 ) 2 + ( y − N / 2 ) 2 = N 2 / 2 (x-N/2)^2+(y-N/2)^2=N^2/2 (xN/2)2+(yN/2)2=N2/2 ==> ( 2 x − N ) 2 + ( 2 y − N ) 2 = 2 N 2 (2x-N)^2+(2y-N)^2=2N^2 (2xN)2+(2yN)2=2N2

这时发现当 N N N是奇数时,上面方程的左边就是 2 2 2个奇数的和,那么右边就是 2 m o d ( 4 ) 2 mod(4) 2mod(4)

所以这说明所有 2 N 2 2N^2 2N2都可以表示为 2 2 2个奇数的平方之和。继续往这方向想就对了!

其实,当你计算 f ( 2 N ) : ( 0 , 0 ) ( 2 N , 0 ) ( 2 N , 2 N ) ( 0 , 2 N ) f(2N):(0,0) (2N, 0) (2N,2N) (0,2N) f(2N):(0,0)(2N,0)(2N,2N)(0,2N)时,这个就等同于计算 f ( N ) f(N) f(N)?(How to prove it?)

从上面的方程,我们就是求 ( x , y , N ) (x,y,N) x,y,N。因为N是奇数。假设 N = 5 N=5 N=5,那么我们在这个圆作一条 y = x y=x y=x的直线,很明显,
( x , y ) = (x,y)= (x,y)= ( 3 , 4 ) (3,4) (3,4)是在这个圆上的,同理 ( 4 , 3 ) (4,3) (4,3)也在圆上。我猜这就是毕格拉斯三元组(其实就是): x 2 + y 2 = N 2 x^2+y^2=N^2 x2+y2=N2。然后可以
计算出 f ( 5 ) = 12 。 f(5)=12。 f(5)=12
12 12 12个: ( 4 , 3 ) , ( 3 , 4 ) , ( − 3 , 4 ) , ( 3 , − 4 ) , ( − 4 , 3 ) , ( 4 , − 3 ) , ( − 3 , − 4 ) , ( − 4 , − 3 ) , ( 0 , 5 ) , ( 5 , 0 ) , ( − 5 , 0 ) , ( 0 , − 5 ) 。 (4,3),(3,4),(-3,4),(3,-4),(-4,3),(4,-3),(-3,-4),(-4,-3),(0,5),(5,0),(-5,0),(0,-5)。 (4,3),(3,4),(3,4),(3,4),(4,3),(4,3),(3,4),(4,3),(0,5),(5,0),(5,0),(0,5)

同样对于: f ( N ) = 420 f(N) = 420 f(N)=420。求 N N N。这里有 52 52 52个毕格拉斯三元组。 ( 52 ∗ 8 + 4 = 420 ) 。 (52 * 8 + 4 = 420)。 (528+4=420)

然后怎么求 N N N

你可从这里得到解题思路:http://mathworld.wolfram.com/PythagoreanTriple.html

420 = 8 ∗ 52 + 4 。 420 = 8*52+4。 420=852+4
52 ∗ 2 + 1 = 105 = 3 ∗ 5 ∗ 7 = 3 ∗ 35 = 5 ∗ 21 = 7 ∗ 15 。 52*2+1 = 105 = 3*5*7 = 3*35 = 5*21 = 7*15。 522+1=105=357=335=521=715

如果( P i P_i Pi是个素数) P i m o d ( 4 ) = 1 , 和 N = ( P 1 K 1 ∗ P 2 K 2 ∗ . . . ∗ P m K m ) ∗ r 。 P_i mod(4)=1,和 N = (P_1^K1 *P_2^K2*...*P_m^Km)*r。 Pimod(4)=1,N=(P1K1P2K2...PmKm)r
然后 f ( N ) = 4 ∗ ( 2 ∗ K 1 + 1 ) ∗ ( 2 ∗ K 2 + 1 ) ∗ . . . ( 2 ∗ K m + 1 ) f(N) = 4*(2*K1+1)*(2*K2+1)*...(2*Km+1) f(N)=4(2K1+1)(2K2+1)...(2Km+1)
验证 f ( 10000 ) = 36 f(10000)=36 f(10000)=36,可以试试: K 1 = 1 , K 2 = 1 和 K 1 = 4 。 { K1=1,K2=1}和 { K1=4 }。 K1=1,K2=1K1=4
10000 = 5 ∗ 5 ∗ r , 10000=5*5*r, 10000=55r,此时 r = 400.... r=400.... r=400....依次类推…
注意:对于 f ( N ) = C , N f(N)=C, N f(N)=C,N不是唯一的!
对于 f ( N ) = 420 f(N) = 420 f(N)=420 ,可以试试: K 1 = 1 , K 2 = 2 , K 3 = 3 {K1 = 1 ,K2 = 2, K3 =3} K1=1,K2=2,K3=3 K 1 = 2 , K 2 = 10 {K1 = 2,K2 = 10} K1=2,K2=10 和$ {K1 = 3,K2 = 7}$
420 = 4 ∗ 3 ∗ 5 ∗ 7 = 4 ∗ 5 ∗ 21 = 4 ∗ 7 ∗ 15 。 所 以 f ( n ) 420=4*3*5*7=4*5*21=4*7*15。所以f(n) 420=4357=4521=4715f(n)成立.

然后自己写代码求N吧…最后写出了正确的结果…再去看论坛,唉,自己太菜了…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值