立体の表面積                             戻る

 2次関数の最大・最小の問題で、次の問題は有名だろう。

 周の長さが一定な長方形のうち面積が最大なのは、正方形のときである

(→ 参考:「周の長さ一定な図形」)

例 長さ8mのロープで長方形の土地を囲む。どのように囲ったら面積は最大になるか?

(解) 長方形の縦の長さを x mとすると、横の長さは、4−x mである。

   長方形の面積を y m2 とすると、

    y=x(4−x)=−x2+4x=−(x−2)2+4  ただし、0<x<4

   よって、x=2 のとき、面積は最大となる。

    このとき出来る図形は、1辺の長さ 2 mの正方形である。 (終)

 この事実は、次のことを我々に示唆する。すなわち、

  同じ面積の長方形においては、正方形の場合が最も周の長さは短い

 このことを、立体の場合に拡張すれば、

  同じ体積の直方体においては、立方体の場合が最も表面積は小さい

とも言える。こんなことを今日この頃お昼を食べながら考えていたら、mita さんが同趣旨の
問題を、当HPの掲示板「出会いの泉」に出題された。(平成22年10月27日付け)

 1辺が 1cm の立方体がたくさんあるものとする。この立方体は切断できないもの
とする。

 (1)この立方体を 64 個使って出来る立体の表面積の最小値はいくらか。

 (2)この立方体を 300 個使って出来る立体の表面積の最小値はいくらか。

 (3)この立方体を 2010 個使って出来る立体の表面積の最小値はいくらか。

 立体は中が空洞になってはいけません。それぞれどんな図形になるでしょうか?


 この問題に対して、当HPがいつもお世話になっているHN「らすかる」さんが解答を寄せら
れた。(平成22年10月27日付け)

 合ってるかどうかわかりませんが...(1)96 (2)276 (3)960

 (1)は立方体、(2)(3)は立方体に近い図形。


 出題者の mita さんによれば、正解!とのこと。

 らすかるさんの解答を目標に考えてみた。

(解) 1辺が 1cm の立方体の表面積は、6cm2 である。

 (1)について、

      この立方体を2個用いる場合の立体の表面積の最小値は、

        6×2−2=10cm2 である。






  この立方体を3個用いる場合の立体の表面積の最小値は、

     6×3−2×2=14cm2 である。





     この立方体を4個用いる場合の立体の表面積の最小値は、

        6×4−2×4=16cm2 である。




   この立方体を8個用いる場合の立体の表面積の最小値は、

      6×8−2×12=24cm2 である。



   したがって、立方体を64個用いる場合の立体の表面積の最小値は、

       24×8−×12=96cm2 である。・・・・・・・・・らすかるさんの答えと一致!

 (2)について、立方数 1、8、27、64、125、216、343、・・・ を考え、さらに、立方体
に近い立体を考えるということで、

    300=216+84=216+36×2+6×2

の組合せから、
           

という立体を考える。緑色の直方体は、正方形上どこにあってもよい。

 この立体の表面積は、276cm2 で、らすかるさんの答えと一致する!

 同様に、(3)について、立方数

 1、8、27、64、125、216、343、512、729、1000、1331、1728、2197、・・・

を考え、さらに、立方体に近い立体を考えるということで、

    2010=1728+144+132+6=123+122+12×11+3×2

の組合せから、
          

という立体を考える。緑色の直方体のうち小さい方は下部のどこにあってもよい。

 この立体の表面積は、

12×12×2+13×12×4+12×2+11×2+2=288+624+24+22+2=960

から、960cm2 で、らすかるさんの答えと一致する!

 らすかるさんによれば、12×13×13−18 でも 12×12×14−6 でも同じになると
のこと。

(コメント) mita さん、らすかるさんに感謝します。


 当HPがいつもお世話になっているHN「FN」さんが上記の問題を一般化し、「立方体の数
が n 個」のときを考えられました。(平成22年10月28日付け)

(0) n=k3 の場合 1辺が k の立方体のとき、最小

(1) n=k2(k+1) の場合 3辺が k、k、k+1 の直方体のとき、最小

(2) n=k(k+1)2 の場合 3辺が k、k+1、k+1 の直方体のとき、最小

 この3つは直感的には明らかそうです。ただ、このあたりの証明を要求されたら、どうした
らいいでしょう。明きらかそうだけど、証明となると難しそうです。なお、それぞれの場合の
表面積は、
          (0) 6k2  (1) 6k2+4k  (2) 6k2+8k+2

 一般の n については、まず、k3≦n<(k+1)3 となる k をとる。次に、n が k2(k+1)
より大きいかどうか、k(k+1)2 より大きいかどうかを調べて、もとになる直方体を決める。
(0)(1)(2)のどれか。あとは、残った立方体を1つの面(置くことさえできればどの面でもよ
い。面積の一番大きい面にしておけば必ずおける。)の上に積んでいく。

 1つ目をおくと、表面積は4増える。2つ目以降は1つの面を接するように置けば、2増える。
2つの面を接するようにおけば表面積は増えない。できるだけ増えないように、即ち正方形
を作るように、例えば、下図のような順で置いていけばよい。
らすかるさんからのアドバイス(平成22年10月28日付け)を参考にさせていただきました。

    923
    814
    765


 直方体を作ったあとで、残った立方体の数を R とする。

  R=k2 であれば、増える表面積は、4k

  R=k2+1 であれば、さらに、2増えて、R=k2+k までは増えない。

  R=k2+k+1 で、また、2増えて、R=k2+2k+1=(k+1)2 までは増えない。

 証明となると書きにくいですが、これで最小値は得られそうです。証明はともかく、結果ぐら
いはきちんと書きたかったのですが、うまく書けないので、ExcelのVBAで、最小値を求める
関数 M(N) を書いてみました。

Function M(N)
  K = Int(N ^ (1 / 3))
  L = 0
  R = N - K * K * K
  If R > K * K Then
    L = 1
    R = R - K * K
     If R > K * K + K Then
       L = 2
       R = R - K * K - K
     End If
  End If
  M = S(K, L) + Z(R)
End Function

Function S(K, L)
  S = 6 * K * K + 4 * L * K
  If L = 2 Then S = S + 2
End Function

Function Z(R)
  K = Int(Sqr(R))
  Z = 4 * K
  R = R - K * K
  If R > 0 Then Z = Z + 2
  If R > K Then Z = Z + 2
End Function


 FNさんの書かれたプログラムを Excel で実行し、次のような M(N) の表が得られた。

M(N) M(N) M(N) M(N) M(N)
1 6 101 134 201 212 301 278 401 334
2 10 102 136 202 212 302 278 402 336
3 14 103 138 203 212 303 278 403 336
4 16 104 138 204 212 304 280 404 336
5 20 105 140 205 212 305 280 405 338
6 22 106 140 206 214 306 280 406 338
7 24 107 142 207 214 307 282 407 338
8 24 108 142 208 214 308 282 408 338
9 28 109 142 209 214 309 282 409 340
10 30 110 144 210 214 310 282 410 340
11 32 111 144 211 216 311 284 411 340
12 32 112 144 212 216 312 284 412 340
13 36 113 146 213 216 313 284 413 342
14 38 114 146 214 216 314 284 414 342
15 40 115 146 215 216 315 286 415 342
16 40 116 146 216 216 316 286 416 342
17 42 117 148 217 220 317 286 417 342
18 42 118 148 218 222 318 286 418 344
19 46 119 148 219 224 319 286 419 344
20 48 120 148 220 224 320 288 420 344
21 50 121 150 221 226 321 288 421 344
22 50 122 150 222 226 322 288 422 344
23 52 123 150 223 228 323 288 423 346
24 52 124 150 224 228 324 288 424 346
25 54 125 150 225 228 325 290 425 346
26 54 126 154 226 230 326 290 426 346
27 54 127 156 227 230 327 290 427 346
28 58 128 158 228 230 328 290 428 346
29 60 129 158 229 232 329 290 429 348
30 62 130 160 230 232 330 290 430 348
31 62 131 160 231 232 331 292 431 348
32 64 132 162 232 232 332 292 432 348
33 64 133 162 233 234 333 292 433 348
34 66 134 162 234 234 334 292 434 348
35 66 135 164 235 234 335 292 435 350
36 66 136 164 236 234 336 292 436 350
37 70 137 164 237 236 337 294 437 350
38 72 138 166 238 236 338 294 438 350
39 74 139 166 239 236 339 294 439 350
40 74 140 166 240 236 340 294 440 350
41 76 141 166 241 236 341 294 441 350
42 76 142 168 242 238 342 294 442 352
43 78 143 168 243 238 343 294 443 352
44 78 144 168 244 238 344 298 444 352
45 78 145 168 245 238 345 300 445 352
46 80 146 170 246 238 346 302 446 352
47 80 147 170 247 240 347 302 447 352
48 80 148 170 248 240 348 304 448 352
49 84 149 170 249 240 349 304 449 356
50 86 150 170 250 240 350 306 450 358
51 88 151 174 251 240 351 306 451 360
52 88 152 176 252 240 352 306 452 360
53 90 153 178 253 244 353 308 453 362
54 90 154 178 254 246 354 308 454 362
55 92 155 180 255 248 355 308 455 364
56 92 156 180 256 248 356 310 456 364
57 92 157 182 257 250 357 310 457 364
58 94 158 182 258 250 358 310 458 366
59 94 159 182 259 252 359 310 459 366
60 94 160 184 260 252 360 312 460 366
61 96 161 184 261 252 361 312 461 368
62 96 162 184 262 254 362 312 462 368
63 96 163 186 263 254 363 312 463 368
64 96 164 186 264 254 364 314 464 368
65 100 165 186 265 256 365 314 465 370
66 102 166 186 266 256 366 314 466 370
67 104 167 188 267 256 367 314 467 370
68 104 168 188 268 256 368 314 468 370
69 106 169 188 269 258 369 316 469 372
70 106 170 188 270 258 370 316 470 372
71 108 171 190 271 258 371 316 471 372
72 108 172 190 272 258 372 316 472 372
73 108 173 190 273 260 373 316 473 372
74 110 174 190 274 260 374 318 474 374
75 110 175 190 275 260 375 318 475 374
76 110 176 192 276 260 376 318 476 374
77 112 177 192 277 260 377 318 477 374
78 112 178 192 278 262 378 318 478 374
79 112 179 192 279 262 379 318 479 376
80 112 180 192 280 262 380 320 480 376
81 116 181 196 281 262 381 320 481 376
82 118 182 198 282 262 382 320 482 376
83 120 183 200 283 264 383 320 483 376
84 120 184 200 284 264 384 320 484 376
85 122 185 202 285 264 385 320 485 378
86 122 186 202 286 264 386 322 486 378
87 124 187 204 287 264 387 322 487 378
88 124 188 204 288 264 388 322 488 378
89 124 189 204 289 266 389 322 489 378
90 126 190 206 290 266 390 322 490 378
91 126 191 206 291 266 391 322 491 380
92 126 192 206 292 266 392 322 492 380
93 128 193 208 293 266 393 326 493 380
94 128 194 208 294 266 394 328 494 380
95 128 195 208 295 270 395 330 495 380
96 128 196 208 296 272 396 330 496 380
97 130 197 210 297 274 397 332 497 380
98 130 198 210 298 274 398 332 498 382
99 130 199 210 299 276 399 334 499 382
100 130 200 210 300 276 400 334 500 382

(コメント) 大変感動しました。FNさんに感謝します。


 mita さんからのコメントです。(平成22年10月29日付け)

 ちょうど、一般の n 個の場合の表面積の最小値はどうなるかを、一般形の式で表すこと
が出来ないか考えていました。

(0)については、私が出題した問題(1)の64個の場合を考えてみると、

   直方体において、abc=64 のとき、 2(ab+bc+ca) の最小値を求めよ

という問題に帰着できる(直方体でない形で最小値があるかも知れないという危惧はある
が...(らすかるさん))ので、相加平均と相乗平均の関係より、

     2(ab+bc+ca)≧6=96

 で考えると、最小値が 96 でそのとき、 a=b=c=4 となります。

 よって、一般化しても、n=k3 のとき、1辺が k の立方体のとき最小と言えると思います。

(1)と(2)については、 x3=n を満たす実数 x (x は整数でなくても良い)を考えたとき、

  x の小数部分が、0.5 より大きいときは、 k(k+1)2

  x の小数部分が、0.5 より小さいときは、 k2(k+1)

となりそうです。(根拠はないです。3乗根が計算できることが必要となりますが…)

 12×12×14 のケースは見落としてましたが、基本的に、3辺を a、b、c としたときに、

   | a−b |+| b−c |+| c−a |≦2

であれば最小になる可能性が高いと言えそうです。

 例えば、2002=11×13×14個のケースでも計算しましたが、12×13×13−26 と
した方が、結局、表面積は最小に出来ました。

 多少削っても値が変わらなかったりするので一般化は難しいですが、アルゴリズムはまと
められるかもしれません。

 基本的な考え方はFNさんが全部説明していただいたので、以下の3つが常に成り立つか
を考えたいと思います。

(0) n=k3 の場合 1辺が k の立方体のとき、最小

(1) n=k2(k+1) の場合 3辺が k、k、k+1 の直方体のとき、最小

(2) n=k(k+1)2 の場合 3辺が k、k+1、k+1 の直方体のとき、最小

 厳密な証明ではないのですが、考え方を示してみました。

 (0)(立方数)については、前に述べたとおり(相加相乗)とします。

 (1)について、n=k2(k+1) とする。このとき、n=k2(k+1)<(k+1)3 である。

  m=(k+1)3 とおく。m は立方数なので、このとき、1辺が k+1 の立方体を考える。

 このとき、(0)により、1辺が k+1 のき、表面積が最小になる。

 ここで、m から、いくつかの1辺が1の立方体を取り除き、個数を n にした時、表面積の
最小が k、k、k+1 の直方体であることを示す。

 まず、任意の立体から1つの立方体をとる場合、とることの出来る立体のパターンは、

 a: 1つの面が他の立方体に接している → 1つ取ると表面積が4減る
 b: 2つの面が他の立方体に接している → 1つ取ると表面積が2減る
 c: 3つの面が他の立方体に接している → 1つ取っても表面積は変わらない
 d: 4つの面が他の立方体に接している → 1つ取ると表面積が2増える
 e: 5つの面が他の立方体に接している → 1つ取ると表面積が4増える

の5パターンが考えられる。

 今、1辺が k+1 の立方体から、1つ取ることの出来るパターンは、c、d、e のどれかしか
ない。

 ここで、d、e は明らかに表面積が増えるので、表面積が変わらない c のパターンで取る。

 同様に、c のパターンで1列に取り続けるとちょうど k 個取ったときに、b のパターンで取る
ことの出来る立方体が1つ出来る。

 はじめの状態からこの時点まで表面積が変わっていないので、この取り方が表面積が最
小であるといえる。

 ここで、k+1 個目に、b のパターンで取ると、全体の表面積が2減る。ここで、FNさんとら
すかるさんが言及していた渦巻き型の取り方で(ただし順番は外側からの逆向きになる)表
面積を最小に保ったまま(取り除く方向を90度変えるごとに、b のパターンで取り、表面積
を減らせる。)

 最後に、(k+1)2個を取るときに、a のパターンでとり、表面積を最小に出来る。これで、
(2)の状態になったので、

(2) n=k(k+1)2 の場合 3辺が k、k+1、k+1 の直方体のとき、最小

といえる。

 (注意:他の面に移ってこのパターンで取ると、(k+1)2個目に取るときに、a のパターン
     で取ることが出来ないのでこの方法が最小と言える。)

 ここで、n=k(k+1)2 の状態から、(1)の n=k2(k+1) の状態にするには、
あと、k(k+1)個取らなくてはいけない。このとき、(k+1)2の面で先ほどのとり方を行うと
k+1個残ってしまい表面積が余分に発生する。

 よって、残った面のk(k+1)の形をした面で先ほどと同じように取っていくと、結果的に3
辺が k、k、k+1 の直方体のとき最小 といえる。

 よって(1)の場合も表面積が最小といえる。

(コメント) FNさん、らすかるさん、mita さんに感謝します。


 らすかるさんが、「与えられた自然数 n から最小表面積を求める式」を作られました。
                                     (平成22年10月30日付け)

 与えられた自然数 n に対して、n 個の立方体(1個の立方体の1辺の長さは1)で出来る
立体の表面積の最小値 S は、

     

で与えられる。ただし、

 

 

 

 

(注意) | |は絶対値、[ ]はガウス記号

  プログラムで計算する時は、[ ]で切り捨てる時、丸め誤差によって整数よりわずかに
 小さい値になっている可能性に注意して下さい。

例 n=300 の場合に、上記の式を適用してみた。

  A=[6.69433・・・ ]=6

  B=[(40.16928・・・+0.099579・・・+2)/6 ]=[7.0448・・・ ]=7

  C=[(40.16267・・・+0.099595・・・+4)/6 ]=[7.37704・・・ ]=7

  D=4(300−6×7×7)−2=22

 より、 S=2(6×7+7×7+7×6+[4.690416・・・+1])

      =2(42+49+42+5)

      =276

(コメント) イヤ〜、これは感動的ですね!上式の発見そのものが不思議です...。


 らすかるさんによれば、FNさんの作られたM(N)と n=10万まで値が一致することは確
認されたそうである。(平成22年10月30日付け)

 式は複雑ですが、結局、M(N)でやっていることと大して変わりません。

 k3 、k2(k+1) 、k(k+1)2 を考えると、

   n=A×B×C
   1=1×1×1
   2=1×1×2
   4=1×2×2
   8=2×2×2
  12=2×2×3
  18=2×3×3
  27=3×3×3
  36=3×3×4
  48=3×4×4
  64=4×4×4
   ・・・・・・


のようになりますので、

 Aは、 k3≦n<(k+1)3 となる k、つまり、

 Bは、 (k−1)k2≦n<k(k+1)2 となる k、つまり、3次方程式 (k−1)k2=n を解いて

  ガウス記号を付けたものが、

  

 Cは、 (k−1)2k≦n<k2(k+1) となる k(Bと同様)、つまり、

  

そして、n−ABC は「直前の直方体に追加した立方体の個数」であり、2[|D/√|D|+1|] は

立方体を k 個追加した時に増える表面積の

0、4、6、8、8、10、10、12、12、12、14、14、14、16、16、16、16、18、・・・

が得られる式を適当に考えたものです。

 1個以上の追加に限れば、表面積の増加分は、2[√D+1] で得られますが、0個の時に
0が得られるように少し変形したものです。

 「0個」の特別扱いが必要で追加分の式が少し面倒になっていますが、「0個」を「1個前の
直方体に立方体を追加したもの」と考えれば、式が少し簡単になるかも知れません。

(コメント) らすかるさん、公式の説明、ありがとうございます。



   以下工事中