freeCodeCamp/curriculum/challenges/chinese/10-coding-interview-prep/project-euler/problem-212-combined-volume...

36 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
id: 5900f4411000cf542c50ff53
title: 问题212长方体的组合体积
challengeType: 5
videoUrl: ''
---
# --description--
由参数{x0y0z0dxdydz}指定的轴对齐长方体由所有点XYZ组成使得x0≤X≤x0+ dxy0≤ Y≤y0+ dy且z0≤Z≤z0+ dz。长方体的体积是乘积dx×dy×dz。长方体集合的总体积是它们的并集体积如果任何长方体重叠它将小于各个体积的总和。
设C1...C50000是50000轴对齐长方体的集合使得Cn具有参数
x0 = S6n-5模10000y0 = S6n-4模10000z0 = S6n-3模10000dx = 1 +S6n-2模399dy = 1 +S6n-1模399dz = 1 +S6n模399
其中S1...S300000来自“Lagged Fibonacci Generator”
对于1≤k≤55Sk = \[100003 - 200003k + 300007k3]模1000000对于56≤kSk = \[Sk-24 + Sk-55]模1000000
因此C1具有参数{7,53,18394,369,56}C2具有参数{2383,3563,507942,212,344},等等。
前100个长方体C1...C100的总体积为723581599。
所有50000个长方体的总体积是多少C1...C50000
# --hints--
`euler212()`应该返回328968937309。
```js
assert.strictEqual(euler212(), 328968937309);
```
# --solutions--