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

# マックで一日分の栄養を取りたい！

マクドナルド。関東ではマック、関西ではマクドと呼ばれている、おなじみのファーストチェーン店です。全国津々浦々にありますので、よく食べる方もいらっしゃるでしょう。私も大好きで、よく食べています。

ところで、マクドナルドって栄養的にどうなんでしょう？ファーストフードばかり食べていると体に悪いという話をよく聞きますが、そんなに偏っているのでしょうか？メニューの組み合わせさえ気を付ければ大丈夫なのでしょうか。

そこで、マクドナルドで一日に必要な栄養素を取るための商品の組み合わせを調べてみました。
# 計算は簡単
### 式を立てる

組み合わせを見つけるのはそれほど難しくありません。線形計画法という手法を用いれば簡単に解くことができます。特に最低限必要な栄養素を求める問題はダイエット問題という名前で知られています。

マクドナルドの商品の栄養素は公開されているデータを使用します。

日本人が一日必要な栄養素は厚生労働省が公表しています。年齢や性別によって基準量が異なりますが、30歳男子をターゲットとすると以下のようになります。「20～25g」のように基準量に幅がある場合は中央値を取りました。体重は60kgを想定しました。

| 栄養素 | 基準量 |
| :--- | :---: |
| たんぱく質 (g) | 39※1 |
|脂質 (g)|75※1|
|炭水化物 (g)|675※1|
|ナトリウム (mg)|5000
|カリウム (mg)|3000
|カルシウム (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としています（実はこれが伏線になっている）。

そして目的は、一日必要な栄養素を満たす最もカロリーの低い商品の組み合わせとします。金に糸目はつけません。健康第一！


### 解く

商品の数が96個、栄養素の数が16個なので、とても人間の手では解けません。そこでコンピューターの力を借ります。幸いPuLPというPythonで無料で利用できるソルバーがあるので、これで計算します。ちなみにExcelにもソルバーが搭載されていますが、この程度の数の決定変数でもエラーになって計算できませんでした。

```python:mac.py
# Import PuLP modeler functions
from pulp import *
# A new LP problem
prob = LpProblem(name="mac", sense=LpMinimize)

# Variables
AA = LpVariable(name = "AA", lowBound = 0, cat="Integer")
AB = LpVariable(name = "AB", lowBound = 0, cat="Integer")
AC = LpVariable(name = "AC", lowBound = 0, cat="Integer")
AD = LpVariable(name = "AD", lowBound = 0, cat="Integer")
AE = LpVariable(name = "AE", lowBound = 0, cat="Integer")
AF = LpVariable(name = "AF", lowBound = 0, cat="Integer")
AG = LpVariable(name = "AG", lowBound = 0, cat="Integer")
AH = LpVariable(name = "AH", lowBound = 0, cat="Integer")
AI = LpVariable(name = "AI", lowBound = 0, cat="Integer")
AJ = LpVariable(name = "AJ", lowBound = 0, cat="Integer")
AK = LpVariable(name = "AK", lowBound = 0, cat="Integer")
AL = LpVariable(name = "AL", lowBound = 0, cat="Integer")
AM = LpVariable(name = "AM", lowBound = 0, cat="Integer")
AN = LpVariable(name = "AN", lowBound = 0, cat="Integer")
AO = LpVariable(name = "AO", lowBound = 0, cat="Integer")
AP = LpVariable(name = "AP", lowBound = 0, cat="Integer")
AQ = LpVariable(name = "AQ", lowBound = 0, cat="Integer")
AR = LpVariable(name = "AR", lowBound = 0, cat="Integer")
AS = LpVariable(name = "AS", lowBound = 0, cat="Integer")
AT = LpVariable(name = "AT", lowBound = 0, cat="Integer")
AU = LpVariable(name = "AU", lowBound = 0, cat="Integer")
AV = LpVariable(name = "AV", lowBound = 0, cat="Integer")
AW = LpVariable(name = "AW", lowBound = 0, cat="Integer")
AX = LpVariable(name = "AX", lowBound = 0, cat="Integer")
AY = LpVariable(name = "AY", lowBound = 0, cat="Integer")
AZ = LpVariable(name = "AZ", lowBound = 0, cat="Integer")
BA = LpVariable(name = "BA", lowBound = 0, cat="Integer")
BB = LpVariable(name = "BB", lowBound = 0, cat="Integer")
BC = LpVariable(name = "BC", lowBound = 0, cat="Integer")
BD = LpVariable(name = "BD", lowBound = 0, cat="Integer")
BE = LpVariable(name = "BE", lowBound = 0, cat="Integer")
BF = LpVariable(name = "BF", lowBound = 0, cat="Integer")
BG = LpVariable(name = "BG", lowBound = 0, cat="Integer")
BH = LpVariable(name = "BH", lowBound = 0, cat="Integer")
BI = LpVariable(name = "BI", lowBound = 0, cat="Integer")
BJ = LpVariable(name = "BJ", lowBound = 0, cat="Integer")
BK = LpVariable(name = "BK", lowBound = 0, cat="Integer")
BL = LpVariable(name = "BL", lowBound = 0, cat="Integer")
BM = LpVariable(name = "BM", lowBound = 0, cat="Integer")
BN = LpVariable(name = "BN", lowBound = 0, cat="Integer")
BO = LpVariable(name = "BO", lowBound = 0, cat="Integer")
BP = LpVariable(name = "BP", lowBound = 0, cat="Integer")
BQ = LpVariable(name = "BQ", lowBound = 0, cat="Integer")
BR = LpVariable(name = "BR", lowBound = 0, cat="Integer")
BS = LpVariable(name = "BS", lowBound = 0, cat="Integer")
BT = LpVariable(name = "BT", lowBound = 0, cat="Integer")
BU = LpVariable(name = "BU", lowBound = 0, cat="Integer")
BV = LpVariable(name = "BV", lowBound = 0, cat="Integer")
BW = LpVariable(name = "BW", lowBound = 0, cat="Integer")
BX = LpVariable(name = "BX", lowBound = 0, cat="Integer")
BY = LpVariable(name = "BY", lowBound = 0, cat="Integer")
BZ = LpVariable(name = "BZ", lowBound = 0, cat="Integer")
CA = LpVariable(name = "CA", lowBound = 0, cat="Integer")
CB = LpVariable(name = "CB", lowBound = 0, cat="Integer")
CC = LpVariable(name = "CC", lowBound = 0, cat="Integer")
CD = LpVariable(name = "CD", lowBound = 0, cat="Integer")
CE = LpVariable(name = "CE", lowBound = 0, cat="Integer")
CF = LpVariable(name = "CF", lowBound = 0, cat="Integer")
CG = LpVariable(name = "CG", lowBound = 0, cat="Integer")
CH = LpVariable(name = "CH", lowBound = 0, cat="Integer")
CI = LpVariable(name = "CI", lowBound = 0, cat="Integer")
CJ = LpVariable(name = "CJ", lowBound = 0, cat="Integer")
CK = LpVariable(name = "CK", lowBound = 0, cat="Integer")
CL = LpVariable(name = "CL", lowBound = 0, cat="Integer")
CM = LpVariable(name = "CM", lowBound = 0, cat="Integer")
CN = LpVariable(name = "CN", lowBound = 0, cat="Integer")
CO = LpVariable(name = "CO", lowBound = 0, cat="Integer")
CP = LpVariable(name = "CP", lowBound = 0, cat="Integer")
CQ = LpVariable(name = "CQ", lowBound = 0, cat="Integer")
CR = LpVariable(name = "CR", lowBound = 0, cat="Integer")
CS = LpVariable(name = "CS", lowBound = 0, cat="Integer")
CT = LpVariable(name = "CT", lowBound = 0, cat="Integer")
CU = LpVariable(name = "CU", lowBound = 0, cat="Integer")
CV = LpVariable(name = "CV", lowBound = 0, cat="Integer")
CW = LpVariable(name = "CW", lowBound = 0, cat="Integer")
CX = LpVariable(name = "CX", lowBound = 0, cat="Integer")
CY = LpVariable(name = "CY", lowBound = 0, cat="Integer")
CZ = LpVariable(name = "CZ", lowBound = 0, cat="Integer")
DA = LpVariable(name = "DA", lowBound = 0, cat="Integer")
DB = LpVariable(name = "DB", lowBound = 0, cat="Integer")
DC = LpVariable(name = "DC", lowBound = 0, cat="Integer")
DD = LpVariable(name = "DD", lowBound = 0, cat="Integer")
DE = LpVariable(name = "DE", lowBound = 0, cat="Integer")
DF = LpVariable(name = "DF", lowBound = 0, cat="Integer")
DG = LpVariable(name = "DG", lowBound = 0, cat="Integer")
DH = LpVariable(name = "DH", lowBound = 0, cat="Integer")
DI = LpVariable(name = "DI", lowBound = 0, cat="Integer")
DJ = LpVariable(name = "DJ", lowBound = 0, cat="Integer")
DK = LpVariable(name = "DK", lowBound = 0, cat="Integer")
DL = LpVariable(name = "DL", lowBound = 0, cat="Integer")
DM = LpVariable(name = "DM", lowBound = 0, cat="Integer")
DN = LpVariable(name = "DN", lowBound = 0, cat="Integer")
DO = LpVariable(name = "DO", lowBound = 0, cat="Integer")
DP = LpVariable(name = "DP", lowBound = 0, cat="Integer")
DQ = LpVariable(name = "DQ", lowBound = 0, cat="Integer")
DR = LpVariable(name = "DR", lowBound = 0, cat="Integer")

# Objective
prob +=  395*AA+ 545*AB+ 532*AC+ 441*AD+ 498*AE+ 478*AF+ 387*AG+ 311*AH+ 1067*AI+ 428*AJ+ 527*AK+ 489*AL+ 776*AM+ 38*AN+ 389*AO+ 475*AP+ 395*AQ+ 457*AR+ 307*AS+ 431*AT+ 345*AU+ 364*AV+ 465*AW+ 256*AX+ 60*AY+ 979*AZ+ 659*BA+ 525*BB+ 323*BC+ 292*BD+ 374*BE+ 319*BF+ 121*BG+ 419*BH+ 420*BI+ 550*BJ+ 396*BK+ 695*BL+ 1*BM+ 553*BN+ 768*BO+ 728*BP+ 486*BQ+ 594*BR+ 693*BS+ 655*BT+ 542*BU+ 655*BV+ 406*BW+ 584*BX+ 498*BY+ 709*BZ+ 356*CA+ 724*CB+ 434*CC+ 473*CD+ 642*CE+ 625*CF+ 471*CG+ 579*CH+ 558*CI+ 83*CJ+ 31*CK+ 287*CL+ 23*CM+ 10*CN+ 1034*CO+ 252*CP+ 8*CQ+ 249*CR+ 6*CS+ 243*CT+ 275*CU+ 148*CV+ 810*CW+ 270*CX+ 109*CY+ 145*CZ+ 33*DA+ 161*DB+ 304*DC+ 211*DD+ 1057*DE+ 1844*DF+ 44*DG+ 517*DH+ 410*DI+ 225*DJ+ 235*DK+ 337*DL+ 59*DM+ 257*DN+ 295*DO+ 232*DP+ 108*DQ+ 7*DR 

# Constraints
prob +=  12.5*AA+ 14.5*AB+ 19*AC+ 16.7*AD+ 20.2*AE+ 15.5*AF+ 22.3*AG+ 19.2*AH+ 61.9*AI+ 19.9*AJ+ 26.5*AK+ 27.3*AL+ 39.5*AM+ 0*AN+ 14.2*AO+ 21.5*AP+ 15*AQ+ 26.5*AR+ 15.8*AS+ 17.1*AT+ 14*AU+ 15.2*AV+ 20*AW+ 12.8*AX+ 0*AY+ 34.1*AZ+ 26.2*BA+ 26*BB+ 14.4*BC+ 15.9*BD+ 17.7*BE+ 8*BF+ 0*BG+ 17.2*BH+ 10.4*BI+ 20.3*BJ+ 15.7*BK+ 29.7*BL+ 0*BM+ 19.4*BN+ 35.3*BO+ 25.8*BP+ 30*BQ+ 33.3*BR+ 39.8*BS+ 40.6*BT+ 23.2*BU+ 42*BV+ 23.5*BW+ 26.1*BX+ 23*BY+ 34.8*BZ+ 20.6*CA+ 41.4*CB+ 22.7*CC+ 25.5*CD+ 27.2*CE+ 39*CF+ 26.7*CG+ 21.4*CH+ 32.4*CI+ 5.2*CJ+ 0.2*CK+ 3*CL+ 0.4*CM+ 0.5*CN+ 13.4*CO+ 15.3*CP+ 0.5*CQ+ 15*CR+ 0.2*CS+ 14.8*CT+ 5*CU+ 3.8*CV+ 47.3*CW+ 15.8*CX+ 0.3*CY+ 1.2*CZ+ 0.2*DA+ 3.8*DB+ 3.7*DC+ 1.9*DD+ 38.2*DE+ 60.6*DF+ 0.4*DG+ 6.7*DH+ 5.3*DI+ 2.9*DJ+ 5.9*DK+ 8*DL+ 3.2*DM+ 5.4*DN+ 5.9*DO+ 5.3*DP+ 0.4*DQ+ 0.4*DR >= 39
prob +=  17.4*AA+ 29.4*AB+ 21.1*AC+ 20*AD+ 23.2*AE+ 30.2*AF+ 18.9*AG+ 13.5*AH+ 65.5*AI+ 21.7*AJ+ 30.7*AK+ 26.6*AL+ 43.1*AM+ 0*AN+ 20.2*AO+ 30.6*AP+ 25.1*AQ+ 25*AR+ 13.4*AS+ 23*AT+ 15.5*AU+ 17.3*AV+ 21.9*AW+ 9.4*AX+ 6.7*AY+ 51.3*AZ+ 42.7*BA+ 28.3*BB+ 13.9*BC+ 13.3*BD+ 20.8*BE+ 8.6*BF+ 0*BG+ 23.7*BH+ 23.8*BI+ 33.2*BJ+ 18.1*BK+ 49.7*BL+ 0*BM+ 25.5*BN+ 36.1*BO+ 50*BP+ 26.5*BQ+ 34.2*BR+ 43.2*BS+ 39.1*BT+ 28.7*BU+ 40.1*BV+ 21*BW+ 31.6*BX+ 24*BY+ 34.7*BZ+ 16.9*CA+ 43.4*CB+ 18.6*CC+ 28.4*CD+ 43.5*CE+ 36.2*CF+ 23.7*CG+ 38.3*CH+ 33.1*CI+ 3*CJ+ 1.5*CK+ 18*CL+ 0*CM+ 0.1*CN+ 51.8*CO+ 13.1*CP+ 0.2*CQ+ 12.9*CR+ 0*CS+ 12.8*CT+ 18.9*CU+ 3.9*CV+ 51.6*CW+ 17.2*CX+ 11.2*CY+ 9.6*CZ+ 0.1*DA+ 4.4*DB+ 18.1*DC+ 10.7*DD+ 60.3*DE+ 103.4*DF+ 2.3*DG+ 25.9*DH+ 20.6*DI+ 11.3*DJ+ 7*DK+ 10.6*DL+ 0.8*DM+ 5.5*DN+ 10.7*DO+ 5.5*DP+ 10.9*DQ+ 0*DR >= 75
prob +=  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 >= 675
prob +=  919*AA+ 986*AB+ 1296*AC+ 994*AD+ 1216*AE+ 829*AF+ 813*AG+ 649*AH+ 2326*AI+ 816*AJ+ 1052*AK+ 1129*AL+ 1714*AM+ 4*AN+ 996*AO+ 789*AP+ 722*AQ+ 1132*AR+ 747*AS+ 1060*AT+ 850*AU+ 813*AV+ 1139*AW+ 542*AX+ 36*AY+ 1673*AZ+ 962*BA+ 1007*BB+ 644*BC+ 636*BD+ 837*BE+ 711*BF+ 1*BG+ 890*BH+ 971*BI+ 1193*BJ+ 1030*BK+ 1358*BL+ 254*BM+ 1309*BN+ 2082*BO+ 1308*BP+ 965*BQ+ 987*BR+ 1223*BS+ 1300*BT+ 1501*BU+ 1435*BV+ 898*BW+ 1565*BX+ 1355*BY+ 1778*BZ+ 693*CA+ 1310*CB+ 816*CC+ 989*CD+ 1142*CE+ 1428*CF+ 1340*CG+ 1245*CH+ 1554*CI+ 84*CJ+ 2*CK+ 222*CL+ 210*CM+ 1*CN+ 830*CO+ 791*CP+ 152*CQ+ 730*CR+ 91*CS+ 639*CT+ 55*CU+ 83*CV+ 1517*CW+ 506*CX+ 283*CY+ 307*CZ+ 182*DA+ 318*DB+ 154*DC+ 217*DD+ 1426*DE+ 2346*DF+ 182*DG+ 415*DH+ 329*DI+ 181*DJ+ 155*DK+ 268*DL+ 37*DM+ 135*DN+ 118*DO+ 118*DP+ 222*DQ+ 384*DR >= 5000
prob +=  119*AA+ 237*AB+ 328*AC+ 212*AD+ 343*AE+ 255*AF+ 297*AG+ 183*AH+ 860*AI+ 366*AJ+ 432*AK+ 379*AL+ 536*AM+ 7*AN+ 262*AO+ 235*AP+ 170*AQ+ 358*AR+ 232*AS+ 277*AT+ 246*AU+ 258*AV+ 345*AW+ 214*AX+ 0*AY+ 730*AZ+ 477*BA+ 372*BB+ 198*BC+ 148*BD+ 230*BE+ 254*BF+ 0*BG+ 266*BH+ 167*BI+ 256*BJ+ 172*BK+ 415*BL+ 2*BM+ 138*BN+ 610*BO+ 433*BP+ 405*BQ+ 551*BR+ 617*BS+ 565*BT+ 445*BU+ 574*BV+ 340*BW+ 460*BX+ 430*BY+ 596*BZ+ 322*CA+ 588*CB+ 342*CC+ 338*CD+ 428*CE+ 523*CF+ 467*CG+ 294*CH+ 401*CI+ 206*CJ+ 7*CK+ 30*CL+ 103*CM+ 137*CN+ 2260*CO+ 256*CP+ 5*CQ+ 259*CR+ 8*CS+ 251*CT+ 191*CU+ 179*CV+ 786*CW+ 262*CX+ 6*CY+ 194*CZ+ 45*DA+ 112*DB+ 219*DC+ 55*DD+ 1654*DE+ 3046*DF+ 14*DG+ 1130*DH+ 897*DI+ 492*DJ+ 280*DK+ 347*DL+ 118*DM+ 235*DN+ 253*DO+ 215*DP+ 16*DQ+ 30*DR >= 3000
prob +=  64*AA+ 33*AB+ 20*AC+ 103*AD+ 38*AE+ 51*AF+ 146*AG+ 171*AH+ 259*AI+ 42*AJ+ 134*AK+ 217*AL+ 250*AM+ 1*AN+ 33*AO+ 183*AP+ 158*AQ+ 216*AR+ 121*AS+ 124*AT+ 31*AU+ 62*AV+ 39*AW+ 30*AX+ 1*AY+ 257*AZ+ 123*BA+ 143*BB+ 75*BC+ 137*BD+ 122*BE+ 134*BF+ 0*BG+ 50*BH+ 79*BI+ 188*BJ+ 174*BK+ 200*BL+ 1*BM+ 97*BN+ 48*BO+ 76*BP+ 149*BQ+ 47*BR+ 140*BS+ 223*BT+ 39*BU+ 223*BV+ 124*BW+ 130*BX+ 37*BY+ 48*BZ+ 33*CA+ 149*CB+ 80*CC+ 125*CD+ 73*CE+ 232*CF+ 139*CG+ 231*CH+ 394*CI+ 27*CJ+ 4*CK+ 10*CL+ 4*CM+ 13*CN+ 45*CO+ 33*CP+ 23*CQ+ 12*CR+ 2*CS+ 10*CT+ 134*CU+ 121*CV+ 31*CW+ 10*CX+ 4*CY+ 5*CZ+ 2*DA+ 60*DB+ 44*DC+ 5*DD+ 43*DE+ 76*DF+ 5*DG+ 22*DH+ 18*DI+ 10*DJ+ 174*DK+ 181*DL+ 89*DM+ 143*DN+ 144*DO+ 136*DP+ 3*DQ+ 3*DR >= 738
prob +=  102*AA+ 149*AB+ 319*AC+ 214*AD+ 320*AE+ 149*AF+ 274*AG+ 211*AH+ 596*AI+ 171*AJ+ 300*AK+ 334*AL+ 428*AM+ 1*AN+ 227*AO+ 211*AP+ 121*AQ+ 318*AR+ 184*AS+ 301*AT+ 222*AU+ 225*AV+ 319*AW+ 109*AX+ 2*AY+ 273*AZ+ 273*BA+ 275*BB+ 205*BC+ 235*BD+ 215*BE+ 0*BF+ 1*BG+ 172*BH+ 372*BI+ 535*BJ+ 499*BK+ 245*BL+ 0*BM+ 143*BN+ 588*BO+ 246*BP+ 332*BQ+ 273*BR+ 402*BS+ 436*BT+ 400*BU+ 435*BV+ 242*BW+ 475*BX+ 395*BY+ 583*BZ+ 167*CA+ 392*CB+ 328*CC+ 273*CD+ 265*CE+ 422*CF+ 312*CG+ 296*CH+ 461*CI+ 80*CJ+ 4*CK+ 26*CL+ 8*CM+ 16*CN+ 497*CO+ 282*CP+ 18*CQ+ 266*CR+ 3*CS+ 264*CT+ 140*CU+ 125*CV+ 758*CW+ 253*CX+ 10*CY+ 47*CZ+ 5*DA+ 0*DB+ 75*DC+ 23*DD+ 754*DE+ 1255*DF+ 11*DG+ 249*DH+ 198*DI+ 108*DJ+ 187*DK+ 218*DL+ 70*DM+ 154*DN+ 167*DO+ 151*DP+ 7*DQ+ 9*DR >= 600
prob +=  0.8*AA+ 0.9*AB+ 0.8*AC+ 1.1*AD+ 0.9*AE+ 1.1*AF+ 2.1*AG+ 1.3*AH+ 5.2*AI+ 1.9*AJ+ 2.1*AK+ 1.9*AL+ 3.1*AM+ 0*AN+ 0.8*AO+ 1.7*AP+ 0.8*AQ+ 2*AR+ 1.2*AS+ 0.8*AT+ 0.7*AU+ 0.7*AV+ 0.9*AW+ 1.2*AX+ 0*AY+ 6.2*AZ+ 2.9*BA+ 2.2*BB+ 0.5*BC+ 1.3*BD+ 1.3*BE+ 3.3*BF+ 0*BG+ 1.1*BH+ 2*BI+ 3.1*BJ+ 2.5*BK+ 2.3*BL+ 0*BM+ 1*BN+ 1.4*BO+ 1.8*BP+ 2.8*BQ+ 3.2*BR+ 3.4*BS+ 3.2*BT+ 1.1*BU+ 3.5*BV+ 1.9*BW+ 1.1*BX+ 1*BY+ 1.3*BZ+ 1.9*CA+ 3.8*CB+ 0.6*CC+ 2.1*CD+ 1.7*CE+ 3.2*CF+ 2.2*CG+ 1.1*CH+ 2*CI+ 1.1*CJ+ 0*CK+ 0.1*CL+ 0.1*CM+ 0.2*CN+ 2.6*CO+ 0.5*CP+ 0*CQ+ 0.5*CR+ 0*CS+ 0.4*CT+ 0.3*CU+ 0*CV+ 1.4*CW+ 0.5*CX+ 0*CY+ 0.3*CZ+ 0.1*DA+ 1.4*DB+ 2.9*DC+ 0.3*DD+ 2.2*DE+ 4*DF+ 0.1*DG+ 1.3*DH+ 1*DI+ 0.6*DJ+ 0.5*DK+ 1.5*DL+ 0*DM+ 0.2*DN+ 0.4*DO+ 0.1*DP+ 0.1*DQ+ 0.1*DR >= 6.3
prob +=  8*AA+ 10*AB+ 11*AC+ 60*AD+ 10*AE+ 11*AF+ 131*AG+ 118*AH+ 149*AI+ 63*AJ+ 114*AK+ 147*AL+ 127*AM+ 0*AN+ 25*AO+ 118*AP+ 48*AQ+ 118*AR+ 61*AS+ 62*AT+ 13*AU+ 13*AV+ 12*AW+ 14*AX+ 99*AY+ 141*AZ+ 141*BA+ 74*BB+ 28*BC+ 118*BD+ 61*BE+ 0*BF+ 0*BG+ 8*BH+ 9*BI+ 125*BJ+ 115*BK+ 123*BL+ 0*BM+ 9*BN+ 14*BO+ 17*BP+ 141*BQ+ 78*BR+ 129*BS+ 161*BT+ 35*BU+ 137*BV+ 71*BW+ 72*BX+ 22*BY+ 16*BZ+ 23*CA+ 93*CB+ 30*CC+ 71*CD+ 14*CE+ 124*CF+ 82*CG+ 108*CH+ 217*CI+ 7*CJ+ 1*CK+ 7*CL+ 9*CM+ 27*CN+ 0*CO+ 7*CP+ 3*CQ+ 10*CR+ 6*CS+ 4*CT+ 255*CU+ 42*CV+ 69*CW+ 23*CX+ 3*CY+ 0*CZ+ 3*DA+ 8*DB+ 4*DC+ 1*DD+ 46*DE+ 69*DF+ 1*DG+ 0*DH+ 0*DI+ 0*DJ+ 61*DK+ 61*DL+ 10*DM+ 47*DN+ 47*DO+ 47*DP+ 5*DQ+ 0*DR >= 625
prob +=  0.09*AA+ 0.16*AB+ 0.13*AC+ 0.11*AD+ 0.16*AE+ 0.19*AF+ 0.13*AG+ 0.13*AH+ 0.31*AI+ 0.17*AJ+ 0.24*AK+ 0.18*AL+ 0.23*AM+ 0*AN+ 0.11*AO+ 0.18*AP+ 0.15*AQ+ 0.13*AR+ 0.1*AS+ 0.11*AT+ 0.12*AU+ 0.15*AV+ 0.16*AW+ 0.1*AX+ 0*AY+ 0.25*AZ+ 0.25*BA+ 0.17*BB+ 0.11*BC+ 0.14*BD+ 0.14*BE+ 0*BF+ 0*BG+ 0.26*BH+ 0.3*BI+ 0.32*BJ+ 0.23*BK+ 0.28*BL+ 0*BM+ 0.1*BN+ 0.26*BO+ 0.32*BP+ 0.16*BQ+ 0.21*BR+ 0.28*BS+ 0.22*BT+ 0.16*BU+ 0.18*BV+ 0.13*BW+ 0.16*BX+ 0.17*BY+ 0.26*BZ+ 0.12*CA+ 0.22*CB+ 0.17*CC+ 0.16*CD+ 0.39*CE+ 0.19*CF+ 0.25*CG+ 0.2*CH+ 0.14*CI+ 0.1*CJ+ 0*CK+ 0.04*CL+ 0.02*CM+ 0.03*CN+ 0.61*CO+ 0.1*CP+ 0*CQ+ 0.31*CR+ 0.22*CS+ 0.09*CT+ 0.05*CU+ 0.05*CV+ 0.28*CW+ 0.09*CX+ 0.01*CY+ 0.05*CZ+ 0.01*DA+ 0*DB+ 0.08*DC+ 0.05*DD+ 0.5*DE+ 0.9*DF+ 0.01*DG+ 0.31*DH+ 0.24*DI+ 0.13*DJ+ 0.07*DK+ 0.09*DL+ 0.03*DM+ 0.07*DN+ 0.07*DO+ 0.07*DP+ 0.01*DQ+ 0.01*DR >= 1.4
prob +=  0.06*AA+ 0.16*AB+ 0.09*AC+ 0.14*AD+ 0.12*AE+ 0.19*AF+ 0.36*AG+ 0.31*AH+ 0.54*AI+ 0.16*AJ+ 0.25*AK+ 0.3*AL+ 0.38*AM+ 0*AN+ 0.09*AO+ 0.37*AP+ 0.17*AQ+ 0.28*AR+ 0.16*AS+ 0.16*AT+ 0.09*AU+ 0.1*AV+ 0.12*AW+ 0.09*AX+ 0*AY+ 0.51*AZ+ 0.51*BA+ 0.24*BB+ 0.09*BC+ 0.31*BD+ 0.18*BE+ 0*BF+ 0*BG+ 0.21*BH+ 0.2*BI+ 0.46*BJ+ 0.41*BK+ 0.45*BL+ 0*BM+ 0.08*BN+ 0.2*BO+ 0.35*BP+ 0.42*BQ+ 0.26*BR+ 0.35*BS+ 0.4*BT+ 0.14*BU+ 0.39*BV+ 0.22*BW+ 0.21*BX+ 0.14*BY+ 0.2*BZ+ 0.15*CA+ 0.35*CB+ 0.13*CC+ 0.23*CD+ 0.36*CE+ 0.37*CF+ 0.24*CG+ 0.32*CH+ 0.41*CI+ 0.06*CJ+ 0.01*CK+ 0.01*CL+ 0.01*CM+ 0.02*CN+ 0.07*CO+ 0.09*CP+ 0.01*CQ+ 0.09*CR+ 0.01*CS+ 0.08*CT+ 0.24*CU+ 0.2*CV+ 0.31*CW+ 0.1*CX+ 0.01*CY+ 0.01*CZ+ 0*DA+ 0*DB+ 0.03*DC+ 0*DD+ 0.24*DE+ 0.38*DF+ 0*DG+ 0.03*DH+ 0.03*DI+ 0.01*DJ+ 0.29*DK+ 0.3*DL+ 0.13*DM+ 0.23*DN+ 0.26*DO+ 0.23*DP+ 0*DQ+ 0.01*DR >= 1.6
prob +=  1*AA+ 3.3*AB+ 7.9*AC+ 2.3*AD+ 8.1*AE+ 3.6*AF+ 2.6*AG+ 1.2*AH+ 10.7*AI+ 3.9*AJ+ 4.8*AK+ 4.3*AL+ 6.2*AM+ 0*AN+ 5*AO+ 2.9*AP+ 2.9*AQ+ 4.1*AR+ 2.5*AS+ 5*AT+ 5.3*AU+ 5.6*AV+ 8.2*AW+ 2.5*AX+ 0*AY+ 3.9*AZ+ 3.9*BA+ 4.4*BB+ 1.4*BC+ 1.3*BD+ 2.6*BE+ 0*BF+ 0*BG+ 4.3*BH+ 4.2*BI+ 4.2*BJ+ 2.6*BK+ 5.4*BL+ 0*BM+ 1.3*BN+ 15.8*BO+ 6.6*BP+ 4.1*BQ+ 6.6*BR+ 7.5*BS+ 7*BT+ 9.5*BU+ 7.2*BV+ 4.1*BW+ 9.5*BX+ 9.8*BY+ 15.7*BZ+ 4*CA+ 7.5*CB+ 2.1*CC+ 4.1*CD+ 7.3*CE+ 6.4*CF+ 4.9*CG+ 3.6*CH+ 4.1*CI+ 1*CJ+ 0*CK+ 0.1*CL+ 0.3*CM+ 0.2*CN+ 12.5*CO+ 7.7*CP+ 0.1*CQ+ 7.6*CR+ 0*CS+ 7.6*CT+ 0.2*CU+ 0.2*CV+ 21.3*CW+ 7.1*CX+ 0*CY+ 0.9*CZ+ 0.2*DA+ 0*DB+ 0.8*DC+ 0.3*DD+ 20.5*DE+ 33.9*DF+ 0.1*DG+ 6.3*DH+ 5*DI+ 2.7*DJ+ 0.3*DK+ 0.6*DL+ 0.1*DM+ 0.4*DN+ 0.4*DO+ 0.3*DP+ 0.1*DQ+ 0.1*DR >= 15
prob +=  1*AA+ 1*AB+ 1*AC+ 6*AD+ 1*AE+ 1*AF+ 1*AG+ 0*AH+ 2*AI+ 6*AJ+ 17*AK+ 7*AL+ 2*AM+ 0*AN+ 1*AO+ 0*AP+ 0*AQ+ 1*AR+ 1*AS+ 1*AT+ 0*AU+ 0*AV+ 1*AW+ 1*AX+ 0*AY+ 1*AZ+ 1*BA+ 2*BB+ 0*BC+ 6*BD+ 7*BE+ 0*BF+ 0*BG+ 6*BH+ 0*BI+ 0*BJ+ 5*BK+ 6*BL+ 0*BM+ 1*BN+ 2*BO+ 2*BP+ 1*BQ+ 6*BR+ 17*BS+ 7*BT+ 1*BU+ 1*BV+ 1*BW+ 1*BX+ 0*BY+ 1*BZ+ 1*CA+ 2*CB+ 0*CC+ 7*CD+ 6*CE+ 0*CF+ 17*CG+ 1*CH+ 1*CI+ 8*CJ+ 5*CK+ 0*CL+ 19*CM+ 15*CN+ 40*CO+ 0*CP+ 0*CQ+ 0*CR+ 0*CS+ 0*CT+ 0*CU+ 0*CV+ 3*CW+ 1*CX+ 0*CY+ 1*CZ+ 1*DA+ 0*DB+ 0*DC+ 0*DD+ 22*DE+ 43*DF+ 0*DG+ 20*DH+ 16*DI+ 9*DJ+ 0*DK+ 0*DL+ 0*DM+ 3*DN+ 0*DO+ 0*DP+ 0*DQ+ 0*DR >= 100
prob +=  66*AA+ 56*AB+ 49*AC+ 47*AD+ 50*AE+ 56*AF+ 248*AG+ 231*AH+ 187*AI+ 49*AJ+ 73*AK+ 74*AL+ 109*AM+ 0*AN+ 37*AO+ 255*AP+ 45*AQ+ 76*AR+ 38*AS+ 50*AT+ 35*AU+ 35*AV+ 49*AW+ 26*AX+ 18*AY+ 478*AZ+ 458*BA+ 69*BB+ 40*BC+ 228*BD+ 47*BE+ 21*BF+ 0*BG+ 54*BH+ 30*BI+ 254*BJ+ 227*BK+ 294*BL+ 0*BM+ 126*BN+ 93*BO+ 105*BP+ 274*BQ+ 93*BR+ 118*BS+ 119*BT+ 69*BU+ 127*BV+ 64*BW+ 82*BX+ 66*BY+ 92*BZ+ 52*CA+ 121*CB+ 68*CC+ 73*CD+ 103*CE+ 113*CF+ 68*CG+ 79*CH+ 99*CI+ 0*CJ+ 0*CK+ 7*CL+ 0*CM+ 0*CN+ 23*CO+ 44*CP+ 1*CQ+ 43*CR+ 0*CS+ 43*CT+ 116*CU+ 12*CV+ 188*CW+ 63*CX+ 7*CY+ 4*CZ+ 0*DA+ 11*DB+ 5*DC+ 2*DD+ 136*DE+ 210*DF+ 2*DG+ 11*DH+ 9*DI+ 5*DJ+ 17*DK+ 17*DL+ 4*DM+ 14*DN+ 14*DO+ 14*DP+ 6*DQ+ 0*DR >= 0
prob +=  2.9*AA+ 0.8*AB+ 1.9*AC+ 0.9*AD+ 2.8*AE+ 1.7*AF+ 1.5*AG+ 1.7*AH+ 3.2*AI+ 2.3*AJ+ 2.4*AK+ 1.9*AL+ 3.2*AM+ 0.2*AN+ 2.2*AO+ 1.7*AP+ 1.7*AQ+ 1.7*AR+ 1.5*AS+ 2.2*AT+ 1.9*AU+ 2.5*AV+ 2.8*AW+ 1.5*AX+ 0*AY+ 6.1*AZ+ 3.2*BA+ 2.6*BB+ 2.1*BC+ 1.1*BD+ 1.7*BE+ 2.8*BF+ 0*BG+ 1.5*BH+ 1.6*BI+ 1.7*BJ+ 1.8*BK+ 2*BL+ 0*BM+ 3.9*BN+ 4*BO+ 1.8*BP+ 1.6*BQ+ 2.3*BR+ 2.5*BS+ 2*BT+ 2.9*BU+ 1.8*BV+ 1.6*BW+ 2.9*BX+ 2.5*BY+ 3.9*BZ+ 1.6*CA+ 2.7*CB+ 3*CC+ 1.8*CD+ 1.5*CE+ 1.8*CF+ 2.3*CG+ 1.7*CH+ 1.7*CI+ 2.9*CJ+ 0*CK+ 0.5*CL+ 0.4*CM+ 0.8*CN+ 12*CO+ 1.1*CP+ 0*CQ+ 1.2*CR+ 0.1*CS+ 1.1*CT+ 0.2*CU+ 0.3*CV+ 2.6*CW+ 0.9*CX+ 0.1*CY+ 1.5*CZ+ 0.3*DA+ 1.3*DB+ 2.3*DC+ 1*DD+ 7.7*DE+ 14.6*DF+ 0.3*DG+ 6*DH+ 4.8*DI+ 2.6*DJ+ 0.7*DK+ 1.7*DL+ 0.1*DM+ 1*DN+ 1.1*DO+ 0.7*DP+ 0.1*DQ+ 0.1*DR >= 21
prob +=  2.3*AA+ 2.5*AB+ 3.3*AC+ 2.5*AD+ 3.1*AE+ 2.1*AF+ 2.1*AG+ 1.6*AH+ 6*AI+ 2.1*AJ+ 2.7*AK+ 2.9*AL+ 4.4*AM+ 0*AN+ 2.5*AO+ 2*AP+ 1.8*AQ+ 2.9*AR+ 1.9*AS+ 2.7*AT+ 2.2*AU+ 2.1*AV+ 2.9*AW+ 1.4*AX+ 0.1*AY+ 4.2*AZ+ 2.4*BA+ 2.6*BB+ 1.6*BC+ 1.6*BD+ 2.1*BE+ 1.8*BF+ 0*BG+ 2.3*BH+ 2.5*BI+ 3*BJ+ 2.6*BK+ 3.4*BL+ 0.6*BM+ 3.3*BN+ 5.3*BO+ 3.3*BP+ 2.4*BQ+ 2.5*BR+ 3.1*BS+ 3.3*BT+ 3.8*BU+ 3.6*BV+ 2.3*BW+ 4*BX+ 3.4*BY+ 4.5*BZ+ 1.8*CA+ 3.3*CB+ 2.1*CC+ 2.5*CD+ 2.9*CE+ 3.6*CF+ 3.4*CG+ 3.2*CH+ 3*CI+ 0.2*CJ+ 0*CK+ 0.6*CL+ 0.5*CM+ 0*CN+ 2.1*CO+ 2*CP+ 0.4*CQ+ 1.9*CR+ 0.2*CS+ 1.6*CT+ 0.1*CU+ 0.2*CV+ 3.9*CW+ 1.3*CX+ 0.7*CY+ 0.8*CZ+ 0.5*DA+ 0.8*DB+ 0.4*DC+ 0.6*DD+ 3.6*DE+ 6*DF+ 0.5*DG+ 1.1*DH+ 0.8*DI+ 0.5*DJ+ 0.4*DK+ 0.7*DL+ 0.1*DM+ 0.3*DN+ 0.3*DO+ 0.3*DP+ 0.6*DQ+ 1*DR >= 5

# Solve the problem using the default solver
prob.solve()
print(LpStatus[prob.status])

# Print the value of the variables at the optimum
print("Result")
print("えびフィレオ:", AA.value())
print("ごはんてりやき:", AB.value())
print("ごはんチキンフィレオ:", AC.value())
print("ごはんベーコンレタス:", AD.value())
print("てりやきチキンフィレオ:", AE.value())
print("てりやきマックバーガー:", AF.value())
print("エグチ(エッグチーズバーガー):", AG.value())
print("エッグマックマフィン:", AH.value())
print("ギガビッグマック®:", AI.value())
print("グラン ガーリックペッパー:", AJ.value())
print("グラン クラブハウス:", AK.value())
print("グラン ベーコンチーズ:", AL.value())
print("グランドビッグマック®:", AM.value())
print("ストロベリージャム:", AN.value())
print("スパチキ(スパイシーチキンバーガー):", AO.value())
print("ソーセージエッグマフィン:", AP.value())
print("ソーセージマフィン:", AQ.value())
print("ダブルチーズバーガー:", AR.value())
print("チーズバーガー:", AS.value())
print("チキチー(チキンチーズバーガー):", AT.value())
print("チキンクリスプ:", AU.value())
print("チキンクリスプマフィン:", AV.value())
print("チキンフィレオ:", AW.value())
print("ハンバーガー:", AX.value())
print("バターパット:", AY.value())
print("ビッグブレックファスト デラックス(ハッシュポテト含む):", AZ.value())
print("ビッグブレックファスト(ハッシュポテト含む):", BA.value())
print("ビッグマック®:", BB.value())
print("フィレオフィッシュ:", BC.value())
print("ベーコンエッグマックサンド:", BD.value())
print("ベーコンレタスバーガー:", BE.value())
print("ホットケーキ:", BF.value())
print("ホットケーキシロップ:", BG.value())
print("マクポ(ベーコンマックポーク):", BH.value())
print("マックグリドル ソーセージ:", BI.value())
print("マックグリドル ソーセージエッグ:", BJ.value())
print("マックグリドル ベーコンエッグ:", BK.value())
print("メガマフィン:", BL.value())
print("塩・コショウ:", BM.value())
print("倍えびフィレオ:", BN.value())
print("倍てりやきチキンフィレオ:", BO.value())
print("倍てりやきマックバーガー:", BP.value())
print("倍エグチ(倍エッグチーズバーガー):", BQ.value())
print("倍グラン ガーリックペッパー:", BR.value())
print("倍グラン クラブハウス:", BS.value())
print("倍グラン ベーコンチーズ:", BT.value())
print("倍スパチキ(倍スパイシーチキンバーガー):", BU.value())
print("倍ダブルチーズバーガー:", BV.value())
print("倍チーズバーガー:", BW.value())
print("倍チキチー(倍チキンチーズバーガー):", BX.value())
print("倍チキンクリスプ:", BY.value())
print("倍チキンフィレオ:", BZ.value())
print("倍ハンバーガー:", CA.value())
print("倍ビッグマック®:", CB.value())
print("倍フィレオフィッシュ:", CC.value())
print("倍ベーコンレタスバーガー:", CD.value())
print("倍マクポ(倍ベーコンマックポーク):", CE.value())
print("炙り醤油風 ダブル肉厚ビーフ:", CF.value())
print("炙り醤油風 ベーコントマト肉厚ビーフ:", CG.value())
print("チーズチーズてりやきマックバーガー:", CH.value())
print("チーズチーズダブルチーズバーガー:", CI.value())
print("えだまめコーン:", CJ.value())
print("りんご&クリーム:", CK.value())
print("クリームブリュレパイ:", CL.value())
print("ケチャップ:", CM.value())
print("サイドサラダ:", CN.value())
print("シェアポテト:", CO.value())
print("シャカチキ チェダーチーズ:", CP.value())
print("シャカチキ チェダーチーズ味シーズニング:", CQ.value())
print("シャカチキ レッドペッパー:", CR.value())
print("シャカチキ レッドペッパー味シーズニング:", CS.value())
print("シャカチキ(チキンのみ):", CT.value())
print("スジャータアイスバニラ:", CU.value())
print("ソフトツイスト:", CV.value())
print("チキンマックナゲット 15ピース:", CW.value())
print("チキンマックナゲット 5ピース:", CX.value())
print("トリュフ香るパルメザンチーズソース:", CY.value())
print("ハッシュポテト:", CZ.value())
print("バーベキューソース:", DA.value())
print("プチパンケーキ:", DB.value())
print("ベルギーショコラパイ:", DC.value())
print("ホットアップルパイ:", DD.value())
print("ポテナゲ大:", DE.value())
print("ポテナゲ特大:", DF.value())
print("マスタードソース:", DG.value())
print("マックフライポテト(L):", DH.value())
print("マックフライポテト(M):", DI.value())
print("マックフライポテト(S):", DJ.value())
print("マックフルーリー® オレオ®クッキー:", DK.value())
print("マックフルーリー® 超 オレオ®:", DL.value())
print("ヨーグルト:", DM.value())
print("ワッフルコーン ストロベリー:", DN.value())
print("ワッフルコーン チョコ&アーモンド:", DO.value())
print("ワッフルコーン プレーン:", DP.value())
print("伊勢海老と紅ズワイガニソース:", DQ.value())
print("低カロリー玉ねぎ:", DR.value())

```

### 結果

さあ計算しましょう。なんだかワクワクしてきました。

```kekka.txt
Result - Optimal solution found

Objective value:                972.00000000
Enumerated nodes:               0
Total iterations:               117
Time (CPU seconds):             0.10
Time (Wallclock seconds):       0.10
```

条件を満たす組み合わせは存在するようです！マクドナルドだけで生きていけるかもしれません！これで一人暮らしでも健康に生きていける！

マイスーパーコンピューターがはじき出した商品の種類は5種類。5種類だけ食べれば健康になれるようです。すげー。以下がその商品です！

__バター（7個）__
いきなり変化球です。朝マック以外ではお目にかかりません。
![butter.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/63d50f30-19b2-6c5a-3837-0d77d01ec606.jpeg)

__ストロベリージャム（2個）__
またまた変化球です。朝食かな？
![スト.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/ce70670e-b1a5-7517-e8fc-d019854aa39a.jpeg)

__ケチャップ（1個）__
なんか健康的な予感。
![ケチャ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/18e54b40-47be-0354-17d1-414fc72d2a4a.jpeg)

__塩・コショウ（18個）__
マクドナルドに塩・コショウなんてあるんですね。初めて知りました。
![peppersalt.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/d9c8cc8c-b799-568e-a9d7-cb34b7d20d75.jpeg)


そして最後が・・・

__サイドサラダ（282個）__
![salad.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670191/6d901b83-e305-d7f4-14b7-1f614cf1c7de.jpeg)

圧倒的ですね。ギャル曽根でも助走つけて殴るレベルの量です。（訂正前の3倍になっています。）

ひたすらサラダを食えとのお達しです。この組み合わせによって以下の通り、一日必要な栄養素を満たす極めて健康的な栄養を摂取することができます。ちなみにカロリーは3357kcalですが目的関数はカロリー最小化ですのでこれ以上は下がりません。

|栄養素|摂取量|
|:---|:---:|
|エネルギー(kcal)|3357|
|たんぱく質 (g)|141.4|
|脂質 (g)|75.1|
|炭水化物 (g)|675|
|ナトリウム (mg)|5324|
|カリウム (mg)|38787|
|カルシウム (mg)|3697|
|リン (mg)|4536|
|鉄 (mg)|56.5|
|ビタミンA (μg)|8316|
|ビタミンB1 (mg)|8.48|
|ビタミンB2 (mg)|5.65|
|ナイアシン (mg)|56.7|
|ビタミンC (mg)|4249|
|コレステロール (mg)|126|
|食物繊維 (g)|226.4|
|食塩相当量 (g)|12|

```kekka.txt
Optimal Result
バターパット: 7.0
塩・コショウ: 18.0
ケチャップ: 1.0
サイドサラダ: 282.0
```
# サイドサラダ王になる！

いかがでしたか？バーガーもポテトもナゲットさえも無視して、ひたすらサイドサラダを食べる。これが健康への近道です！私も無人島に食べ物を一種類だけ持っていくとしたら間違いなくサイドサラダを選びます。完全食です。最高！わんこそばのように流れ作業で食べると効率が上がると思います。

でも、カリウムを38gも取って大丈夫なのか？そういえば日本人の食事摂取基準には過剰摂取に由来する健康障害のリスクも載っていたような？・・・そもそもここであげた12種類以外にも人類に必要な栄養素があるのでは？（さっきの伏線回収）

と、ツッコミどころを上げたらきりがありません。頭使ったらお腹が減ってきたので、今からビッグマック食べにいこっと。


# 続編
より衝撃的な[続編も読んでね](http://www.transrecog.com/diary/2021/02/27/post-1426/)。

じゃあモスバーガーではどうなるんだ？という疑問はこちらで解きました→[モスバーガーで一日分の栄養を取れる組み合わせを計算したら衝撃的な結果が！](https://www.transrecog.com/diary/2021/12/11/post-2540/)


# 関連記事
[マクドナルドでアルバイトの採用を数理的に最適化したら衝撃の結果に！](https://www.transrecog.com/diary/2021/06/29/post-1758/)

[AIに「マクド」と「マック」のどちらが正しいか聞いたら衝撃の結果が！](https://www.transrecog.com/diary/2021/07/12/post-2202/)

[野菜だけで一日分の栄養を取れる組み合わせを計算したら衝撃の結果が！](https://www.transrecog.com/diary/2021/08/09/post-2338/)

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



### 訂正
（2021/2/21訂正）
たんぱく質の基準量は体重当たりでしたので、体重60kgを想定して訂正しました。再計算の結果、商品の組み合わせは訂正前と変わりません。また、最後の摂取できる栄養素が2倍になってしまっていました。訂正いたします。失礼いたしました。

（2021/2/22訂正）
たんぱく質、脂質、炭水化物の基準値が誤っていたので修正しました（※1）。これに伴い、商品の組み合わせが変わりました。最も大きな変更は、サイドサラダが79個から273個になって、海原雄山のように「店長、この店にあるサイドサラダを全部くれたまえ」と言わなければいけないという点です。

（2021/2/22訂正2）
たんぱく質の基準量を再計算しました。組み合わせはより健康的になり、オチに変更はありません。