2.1 KiB
2.1 KiB
id | challengeType | title | videoUrl | localeTitle |
---|---|---|---|---|
5900f4111000cf542c50ff24 | 5 | Problem 165: Intersections | 问题165:交叉口 |
Description
考虑三个段L1,L2和L3:L1:(27,44)到(12,32)L2:(46,53)到(17,62)L3:(46,70)到(22,40)可以证实线段L2和L3具有真实的交叉点。我们注意到,作为L3的终点之一:(22,40)位于L1上,这不被认为是真正的交点。 L1和L2没有共同点。因此,在三个线段中,我们找到一个真正的交叉点。现在让我们对5000个线段进行相同的操作。为此,我们使用所谓的“Blum Blum Shub”伪随机数生成器生成20000个数字。 s0 = 290797 sn + 1 = sn×sn(modulo 50515093)tn = sn(modulo 500)为了创建每个线段,我们使用四个连续的数字tn。也就是说,第一个线段由下式给出:(t1,t2)到(t3,t4)根据上述发生器计算的前四个数字应该是:27,144,12和232.因此第一个线段是( 27,144)至(12,232)。在5000个线段中发现了多少个不同的真实交叉点?
Instructions
Tests
tests:
- text: <code>euler165()</code>应该返回2868868。
testString: 'assert.strictEqual(euler165(), 2868868, "<code>euler165()</code> should return 2868868.");'
Challenge Seed
function euler165() {
// Good luck!
return true;
}
euler165();
Solution
// solution required