2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: 5900f4931000cf542c50ffa6
|
2020-12-16 00:37:30 -07:00
|
|
|
|
title: 问题295:透镜孔
|
2018-10-10 18:03:03 -04:00
|
|
|
|
challengeType: 5
|
|
|
|
|
videoUrl: ''
|
2021-01-13 03:31:00 +01:00
|
|
|
|
dashedName: problem-295-lenticular-holes
|
2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
|
|
|
|
|
2020-02-18 01:40:55 +09:00
|
|
|
|
如果满足以下条件,我们称两个圆包围的凸面为透镜孔:
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
2020-02-18 01:40:55 +09:00
|
|
|
|
两个圆的中心都在晶格点上。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
|
2020-02-18 01:40:55 +09:00
|
|
|
|
两个圆在两个不同的晶格点处相交。
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
被两个圆包围的凸区域的内部不包含任何晶格点。
|
2020-02-18 01:40:55 +09:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
考虑一下圈子: C0:x2 + y2 = 25 C1:(x + 4)2+(y-4)2 = 1 C2:(x-12)2+(y-4)2 = 65
|
2020-02-18 01:40:55 +09:00
|
|
|
|
|
|
|
|
|
下图绘制了圆圈C0,C1和C2。
|
|
|
|
|
|
|
|
|
|
C0和C1以及C0和C2形成一个透镜孔。
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
如果存在两个半径为r1和r2且形成一个透镜孔的圆,我们将一个有序正实数对(r1,r2)称为透镜对。 我们可以验证(1,5)和(5,√65)是以上示例的双凸透镜对。
|
2020-02-18 01:40:55 +09:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
令L(N)为0 <r1≤r2≤N的不同双凸透镜对(r1,r2)的数量。 我们可以验证L(10)= 30和L(100)= 3442。
|
2020-02-18 01:40:55 +09:00
|
|
|
|
|
|
|
|
|
求L(100 000)。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`euler295()`应该返回4884650818。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert.strictEqual(euler295(), 4884650818);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
function euler295() {
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
euler295();
|
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
2020-08-13 17:24:35 +02:00
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
|
```js
|
|
|
|
|
// solution required
|
|
|
|
|
```
|