続・マクドナルドで一日分の栄養を取れる組み合わせを計算したらさらに衝撃の結果に

# サイドサラダ禁止！

[前回](http://www.transrecog.com/diary/2021/02/20/post-1327/)は見事にサイドサラダ王になってしまいした。敗因（勝因）は明確で、サイドサラダは1gあたりのカロリーが全96商品中で最も少ないというとてもチートな商品だったのです。
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/091132d7-f370-9862-9fb1-dbd1f4becd9e.jpeg)


ですので、マイスーパーコンピューターのソルバーがサイドサラダに全振りしてきたというわけです。そもそも、"サイド"サラダのくせにメインディッシュとするなんて邪道中の邪道です。そこで今回は___サイドサラダ禁止___にして、改めてマクドナルドで最も健康的なメニューを調べました。

# 変更点は2か所

サイドサラダ禁止という条件に加え、炭水化物の基準量が高すぎるとのご指摘を頂いたので基準量を675gから__438.75g__に変更しました。体重60kgの30歳男子という条件は[前回](http://www.transrecog.com/diary/2021/02/20/post-1327/)と同じです。

|栄養素|基準量|
|:---|:---:|
|たんぱく質 (g)|39|
|脂質 (g)|75|
|炭水化物 (g)|__438.75__|
|ナトリウム (mg)|5,000|
|カリウム (mg)|3,000|
|カルシウム (mg)|738|
|リン (mg)|600|
|鉄 (mg)|6.3|
|ビタミンA (μg)|625|
|ビタミンB1 (mg)|1.4|
|ビタミンB2 (mg)|1.6|
|ナイアシン (mg)|15|
|ビタミンC (mg)|100|
|コレステロール (mg)|0|
|食物繊維 (g)|21|
|食塩相当量 (g)|5.0|

コードは以下２か所以外は[前回](https://qiita.com/takobaya391076/items/49b15c1fa36734b3fa53)と同じです。

```python:mac2.py
# Constraints
problem +=  47.7*AA+ 55.8*AB+ 66.6*AC+ 48.4*AD+ 52.4*AE+ 36.4*AF+ 31*AG+ 27.1*AH+ 57.5*AI+ 38.9*AJ+ 36.8*AK+ 35.5*AL+ 57.5*AM+ 9.5*AN+ 38.1*AO+ 27.3*AP+ 27.2*AQ+ 31.4*AR+ 30.8*AS+ 39.2*AT+ 37.7*AU+ 37*AV+ 47.3*AW+ 30.3*AX+ 0*AY+ 92.9*AZ+ 40.2*BA+ 41.8*BB+ 35.8*BC+ 26.4*BD+ 29.1*BE+ 52.7*BF+ 30.2*BG+ 34.3*BH+ 41.9*BI+ 42.4*BJ+ 42.4*BK+ 31.2*BL+ 0.1*BM+ 62.8*BN+ 76*BO+ 44.1*BP+ 31*BQ+ 38.9*BR+ 36.8*BS+ 35.5*BT+ 48*BU+ 31.4*BV+ 30.8*BW+ 49.1*BX+ 47.6*BY+ 64.4*BZ+ 30.3*CA+ 41.8*CB+ 45*CC+ 29.1*CD+ 35.5*CE+ 36.3*CF+ 38.2*CG+ 37.6*CH+ 32.7*CI+ 9.6*CJ+ 4.3*CK+ 28.3*CL+ 5.6*CM+ 2.3*CN+ 128.5*CO+ 18.2*CP+ 1.1*CQ+ 18.3*CR+ 1.2*CS+ 17.2*CT+ 21.1*CU+ 24.7*CV+ 39.2*CW+ 13.1*CX+ 1.6*CY+ 13.3*CZ+ 7.7*DA+ 26.4*DB+ 31.5*DC+ 26.8*DD+ 90.4*DE+ 167.7*DF+ 5.2*DG+ 64.3*DH+ 51*DI+ 28*DJ+ 37.7*DK+ 53.4*DL+ 9.7*DM+ 46.8*DN+ 44.1*DO+ 40.6*DP+ 2*DQ+ 1.2*DR >= 438.75	#111行目変更

problem += CN <= 0 #125行目追加
```
そして目的も同じく一日必要な栄養素を満たす最もカロリーの低い商品の組み合わせとします。金に糸目はつけません！

# 結果

さあ行きますよ。科学の粋を集めたソルバーが火を吹きます。
![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/76bef3ab-180c-e64d-5bbd-5824799a22a3.jpeg)

![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/1cc3fde7-12a5-c1e1-f632-2bc1b53f1d12.jpeg)

最適な組み合わせは存在するようです！しかもわずか0.28秒で計算完了！速い！世界最速のスーパーコンピューター富岳がそろばんに見えるぜ！


算出された商品の種類は8種類。偏りなく栄養を摂取するにはやはりこのぐらいの数は必要ですよね。以下がその組み合わせです！



__ソフトツイスト（1個）__
次世代の食事はデザートから入ります。
![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/fad7d5b6-5b3f-e285-a45f-3a3642dce144.jpeg)



__シャカチキ チェダーチーズ味シーズニング（1個）__
調味料も直に摂取します。
![shaka.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/f674e442-0a39-5116-ef55-0789fc4ee0ab.jpeg)


__りんご&クリーム（2個）__
ちょっと健康的になってきました。
![ringo.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/53d07e36-2917-d976-578a-b3e0ea38ceaa.jpeg)



__ストロベリージャム（2個）__
隠し味も重要です。
![スト.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/a95a67d1-450b-9952-78d6-84ba6be34b90.jpeg)



__マックフルーリー® オレオ®クッキー（3個）__
メインディッシュの前にデザートを食べるのは次世代の食事では鉄板です。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/8cbdbac7-d3a3-4efe-567c-557b04e5f2b9.png)


__シャカチキ レッドペッパー味シーズニング（3個）__
口の中が甘くなったので辛みで回復します。
![6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/58418593-763b-a2ff-dc92-8f8ea5c254dc.jpeg)


__バターパット（7個）__
ミルクのコクと風味を楽しみます。
![butter.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/b4e777d4-59c7-a61b-6c0b-7879dbd4925f.jpeg)





そしていよいよメインディッシュ…！
__ケチャップ（48個）__
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/783aee45-9e63-3df2-ad27-919e52286578.png)

おわかりでしょうか。メニューにある調味料群は、実はメインディシュだったんです！これが次世代の健康メニューです！この組み合わせによって以下の通り、一日必要な栄養素を満たす極めて健康的な栄養を摂取することができます。

|栄養素|摂取量|
|:---|:---:|
|エネルギー(kcal)|2,541|
|たんぱく質 (g)|42.2|
|脂質 (g)|75.0|
|炭水化物 (g)|439|
|ナトリウム (mg)|11,317|
|カリウム (mg)|6,020|
|カルシウム (mg)|881|
|リン (mg)|1,121|
|鉄 (mg)|6.3|
|ビタミンA (μg)|1,373|
|ビタミンB1 (mg)|1.9|
|ビタミンB2 (mg)|1.6|
|ナイアシン (mg)|15.6|
|ビタミンC (mg)|922|
|コレステロール (mg)|190|
|食物繊維 (g)|22.3|
|食塩相当量 (g)|27.1|

```kekka2.txt抜粋
ストロベリージャム: 2.0
バターパット: 7.0
りんご&クリーム: 2.0
ケチャップ: 48.0
シャカチキ チェダーチーズ味シーズニング: 1.0
シャカチキ レッドペッパー味シーズニング: 3.0
ソフトツイスト: 1.0
マックフルーリー® オレオ®クッキー: 3.0
```

# これが大人のハッピーセット！

いかがでしたか？ビッグマックもポテトもナゲットも食べずサイドサラダさえも食べず、ひたすらケチャップをペロペロ舐める。これが次世代の健康メニューです！伊能忠敬ならこれだけで日本一周するでしょう。これこそ真の完全食です。最高！塩分が多いので、真夏に溶鉱炉で働くといった汗だくの環境にぴったりですね。


ちなみにケチャップは無料とのことなので、店員さんにいくつもらえるのか確認しました。
私「ケチャップはいくつまで貰えるんですか？」
店員「__常識の範囲内まで__」
・・・「常識」はコンピュータじゃ解けないじゃん！

（2021/8/10追記）
じゃあ野菜だけで組み合わせを考えたらどうなるんだ？という疑問はこちらで解きました。
[野菜だけで一日分の栄養を取れる組み合わせを計算したら衝撃の結果が！](https://www.transrecog.com/diary/2021/08/09/post-2338/)

（2021/4/1追記）
完結編
https://www.transrecog.com/diary/2021/04/01/post-1521/
も読んでね。

元ブログ（プログラミングを主題とするように著者自身が加筆）
https://www.transrecog.com/diary/2021/02/27/post-1426/

#### （前回の反応）
「トレーニーのPFCでも是非計算してもらいたい」「線形計画法、これを探してたんだ。アセットマネジメントに使えそう」といった手法に興味を持ってくれた方がたくさんいらっしゃいました。笑ってくれて、そんなに難しくなく、数理最適化は役立ちそう、と思っていただければ私の目的は達成です。