おっぱい曲面方程式による長さ計算

hirax.net::「Cカップのバストなんて実在するわけがない!」ことの数学的証明 にインスパイヤされて、引き続き書いてみます。 そこで、おっぱい解析に欠かすことのできない「おっぱい曲面方程式」を示します。

(6 * exp(-((2 / 3 * abs(x) - 1) ^ 2 + (2 / 3 * y) ^ 2) - 1 / 3 * (2 / 3 * y + 0.5) ^ 3) \
+ 2 / 3 * exp(-2.818 ^ 11 * ((abs(2 / 3 * x) - 1) ^ 2 + (2 / 3 * y) ^ 2) ^ 2) \
- (2 / 3 * x) ^ 4) / 8

とても複雑な方程式ですが、第 1 項が胸の大きさを示し、第 2 項が乳首の大きさを示していて、大人になってから学ぶとても重要な公式です。 実際にパラメトリックに係数を変化させてみると楽しい (?) と思います。

実際に gnuplot で描かせてみましょう。

$ cat oppai.plt
set     isosamples 50,50
set     xlabel 'X'
set     ylabel 'Y'
set     terminal png
set     output "test.png"
splot[-3:3][-3:3]   (6 * exp(-((2 / 3.0 * abs(x) - 1) ** 2 + (2 / 3.0 * y) ** 2) - 1 / 3.0 * (2 / 3.0 * y + 0.5) ** 3) \
                    + 2 / 3.0 * exp(-2.818 ** 11 * ((abs(2 / 3.0 * x) - 1) ** 2 + (2 / 3.0 * y) ** 2) ** 2) \
                    - (2 / 3.0 * x) ** 4) / 8.0
quit

$ gnuplot oppai.plt

doukaku_315_01.png

さて、第 1 項が胸の大きさということで、係数 6 を 0 にしてみます。 話が面倒なので、Y = 0 の断面で話を進めます。

$ cat oppai.plt
set     xrange[-3:3]
set     terminal png
plot    (0  * exp(-((2 / 3.0 * abs(x) - 1) ** 2) - 1 / 3.0 * 0.5 ** 3) \
        + 2 / 3.0 * exp(-2.818 ** 11 * ((abs(2 / 3.0 * x) - 1) ** 2) ** 2) \
        - (2 / 3.0 * x) ** 4) / 8.0
set     output "test.png"
quit

$ gnuplot oppai.plt

doukaku_315_02.png

見事な貧乳です。

さて、貧乳 (というか胸が全くない) という時の胸囲を仮に 70 cm くらいとし、実寸換算の係数を求めます。

#! /usr/local/bin/gawk -f
# oppai_len.awk

BEGIN {
    x = 0;
    y = 0;

    for (i = -300; i <= 300; i++) {
        x = i / 100;

        val = (0 * exp(-((2 / 3 * abs(x) - 1) ^ 2 + (2 / 3 * y) ^ 2) - 1 / 3 * (2 / 3 * y + 0.5) ^ 3) \
              + 2 / 3 * exp(-2.818 ^ 11 * ((abs(2 / 3 * x) - 1) ^ 2 + (2 / 3 * y) ^ 2) ^ 2) \
              - (2 / 3 * x) ^ 4) / 8;

        if (past["x"] != 0) {
            len = len + sqrt((x - past["x"]) ^ 2 + (val - past["val"]) ^ 2);
        }

        past["x"] = x;
        past["val"] = val;

    }

    print len * 2 * 4.31;  # 係数

}

function abs(num) {
    return num >= 0 ? num : -num;
}

面倒なので、表裏同じ長さということで計算すると、4.31 という係数が求まります。

$ gawk -f oppai_len.awk
69.9897     # 約 70 cm

さて、貧乳でない場合には、バストトップの位置がおっぱい曲面方程式の大体 1.5 付近にあるので、-3.0 から -1.5 の長さを計算したものを倍にして、それに 3 (-1.5 から 1.5 までは直線と仮定) を加えたものになります。

ここでの計算で求める差は背中は同じということで計算していますので、差は胸のある側で全て計算できるとします。

#! /usr/local/bin/gawk -f
# oppai_len2.awk

BEGIN {
    x = 0;
    y = 0;

    # 胸がない場合の計算
    for (i = -300; i <= 300; i++) {
        x = i / 100;

        val = (0 * exp(-((2 / 3 * abs(x) - 1) ^ 2 + (2 / 3 * y) ^ 2) - 1 / 3 * (2 / 3 * y + 0.5) ^ 3) \
              + 2 / 3 * exp(-2.818 ^ 11 * ((abs(2 / 3 * x) - 1) ^ 2 + (2 / 3 * y) ^ 2) ^ 2) \
              - (2 / 3 * x) ^ 4) / 8;

        if (past["x"] != 0) {
            hin_len = hin_len + sqrt((x - past["x"]) ^ 2 + (val - past["val"]) ^ 2);
        }

        past["x"] = x;
        past["val"] = val;

    }

    hin_len = hin_len * 4.31;

    # 胸がある場合の計算
    for (j = 1; j <= 50; j++) {
        past["x"] = 0;
        past["val"] = 0;
        len = 0;

        for (i = -300; i <= -150; i++) {
            x = i / 100;

            val = (j * exp(-((2 / 3 * abs(x) - 1) ^ 2 + (2 / 3 * y) ^ 2) - 1 / 3 * (2 / 3 * y + 0.5) ^ 3) \
                  + 2 / 3 * exp(-2.818 ^ 11 * ((abs(2 / 3 * x) - 1) ^ 2 + (2 / 3 * y) ^ 2) ^ 2) \
                  - (2 / 3 * x) ^ 4) / 8;

            if (past["x"] != 0) {
                len = len + sqrt((x - past["x"]) ^ 2 + (val - past["val"]) ^ 2);
            }

            past["x"] = x;
            past["val"] = val;

        }

        print j, (len * 2 + 3) * 4.31 - hin_len;
    }
}

function abs(num) {
    return num >= 0 ? num : -num;
}

実行してみます。

$ gawk -f oppai_len2.awk
1 0.317355
2 0.836693
<snip>
17 9.26382
18 9.85451
19 10.4477
<snip>
49 28.9338
50 29.564

簡単に言えば、AAA カップと C カップとでは 2.5 x 4 = 10 cm 差ですから、おっぱい曲面方程式の第 1 項の係数は約 18 となります。

プロットしてみましょう。

$ cat test.plt
set     xrange[-3:3]
set     terminal png
plot    (18 * exp(-((2 / 3.0 * abs(x) - 1) ** 2) - 1 / 3.0 * 0.5 ** 3) \
        + 2 / 3.0 * exp(-2.818 ** 11 * ((abs(2 / 3.0 * x) - 1) ** 2) ** 2) \
        - (2 / 3.0 * x) ** 4) / 8.0
set     output "test.png"
replot  (0  * exp(-((2 / 3.0 * abs(x) - 1) ** 2) - 1 / 3.0 * 0.5 ** 3) \
        + 2 / 3.0 * exp(-2.818 ** 11 * ((abs(2 / 3.0 * x) - 1) ** 2) ** 2) \
        - (2 / 3.0 * x) ** 4) / 8.0
quit

$ gnuplot test.plt

doukaku_315_03.png

もう、アフロダイやダイアナン A もビックリです。

もっと大きなところまで計算すれば分かりますが、ZZZ カップは AAA カップと 72.5 cm 差ですから・・・係数は 117 になります。

$ cat test.plt
set     xrange[-3:3]
set     terminal png
plot    (117 * exp(-((2 / 3.0 * abs(x) - 1) ** 2) - 1 / 3.0 * 0.5 ** 3) \
        + 2 / 3.0 * exp(-2.818 ** 11 * ((abs(2 / 3.0 * x) - 1) ** 2) ** 2) \
        - (2 / 3.0 * x) ** 4) / 8.0
set     output "test.png"
replot  (0  * exp(-((2 / 3.0 * abs(x) - 1) ** 2) - 1 / 3.0 * 0.5 ** 3) \
        + 2 / 3.0 * exp(-2.818 ** 11 * ((abs(2 / 3.0 * x) - 1) ** 2) ** 2) \
        - (2 / 3.0 * x) ** 4) / 8.0
quit

$ gnuplot test.plt

doukaku_315_04.png

もう既におっぱいに見えません。山ですよ山。

と、計算するのも空しいので、やめておきましょう。 awk の女性ファンを失いたくありませんから。w

awk 的には、方程式が与えられた場合に、その曲線の長さを数値計算するために分割した上で三平方の定理を用いて計算したということで、おっぱいについて言及したものではありません。

今回は gnuplot を用いていますが、特に可視化するというのは非常に重要で、Amazon.co.jp: 論理的にプレゼンする技術 聴き手の記憶に残る話し方の極意 (サイエンス・アイ新書): 平林 純: 本 で私は教わりました。

tag_nawk.png tag_nawk.png tag_nawk.png tag_nawk.png