*[[Problem 212:http://projecteuler.net/problem=212]] 「結合直方体の体積」 [#o334d683]

座標軸に平行な直方体 (axis-aligned cuboid) は {&tex{(x_{0}, y_{0}, z_{0}), (dx, dy, dz)};} で与えられ, &tex{x_{0}}; ≤ X ≤ &tex{x_{0} + dx};,
&tex{y_{0}}; ≤ Y ≤ &tex{y_{0} + dy};,
&tex{z_{0}}; ≤ Z ≤ &tex{z_{0} + dz};,
を満たす点で構成される.
直方体の体積は &tex{dx × dy × dz};で求められる.
複数の直方体を結合したものの体積を考えた場合, 直方体に重なりがあれば, 結合直方体の体積は
それぞれの直方体の体積の和より小さくなる.

&tex{C_{1}};, …, &tex{C_{50000}}; を以下のパラメータで与えられる座標軸に平行な直方体とする.
- &tex{x_{0}}; = &tex{S_{6n-5}}; modulo 10000
- &tex{y_{0}}; = &tex{S_{6n-4}}; modulo 10000
- &tex{z_{0}}; = &tex{S_{6n-3}}; modulo 10000
- &tex{dx}; = 1 + (&tex{S_{6n-2}}; modulo 399)
- &tex{dy}; = 1 + (&tex{S_{6n-1}}; modulo 399)
- &tex{dz}; = 1 + (&tex{S_{6n}}; modulo 399)

&tex{S_{1}};,…,&tex{S_{300000}}; はラグ付きフィボナッチ法により生成される.
-  1 ≤ &tex{k}; ≤ 55 の場合, &tex{S_{k}}; = [100003 - 200003&tex{k}; + 300007&tex{k^{3}};] (modulo 1000000)
- 56 ≤ &tex{k}; の場合, [&tex{S_{k-24}}; + &tex{S_{k-55}};] (modulo 1000000)

したがって, &tex{C_{1}}; は {(7, 53, 183), (94, 369, 56)}, &tex{C_{2}}; は {(2383, 3563, 5079), (42, 212, 344)} となる

&tex{C_{1}};, …, &tex{C_{100}}; の結合直方体の体積は 723581599 である.

&tex{C_{1}};, …, &tex{C_{50000}}; の結合直方体の体積を求めよ.

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS