【ザ・アンツ】効率の良い中立生物合成経路

効率の良い合成経路が知りたい

毎回100%合成しかしてないけど、巷ではLv差2で合成するのが良いとか聞く。
確立とかわからないので、プログラムで仮想的に100万体合成してコストを求めてみた。

私調べ、最適経路

Lv1 + Lv1 >> Lv2
Lv2 + Lv2 >> Lv3
Lv3 + Lv2 >> Lv4
Lv4 + Lv2 >> Lv5
Lv5 + Lv4 >> Lv6
Lv6 + Lv4 >> Lv7
Lv7 + Lv5 >> Lv8
Lv8 + Lv6 >> Lv9
Lv9 + Lv7 >> Lv10
Lv10 + Lv8 >> Lv11

この手順が一番素体が少なくて済む。
100%合成でLv11まで行くには1024体の素体が必要だけど、
この手順のだと「496.9体」でLv11に到達する。(期待が持てる)
また、中立飼料も全て100%合成した場合は「8,465,040」必要だが、
この手順だと「6,172,039.8」ですむ予定。

ただ、「Lv5 + Lv4 >> Lv6」のところが不自然なので、
調査プログラムにバグがあるかもしれない。

巷で聞くところのLv2差で合成がベスト説を裏付ける結果だった。

調査結果

LV1素体の必要数

合成主Lv2 - 合成従Lv1 でLv3を作る場合、
平均してLv1の素体を4.2体が合成成功期待値。

100万体合成成功するまで素体を加算して平均値を求めた。


  合成従
合成後期待Lv 100%合成時 合成主 1 2 3 4 5 6 7 8 9 10
3 4 2 4.2 4.0                
4 8 3 8.9 7.2 8.0              
5 16 4 18.2 13.2 13.7 14.4            
6 32 5 37.5 25.1 25.0 24.3 26.3          
7 64 6 78.4 49.7 48.3 44.3 44.8 48.7        
8 128 7 164.8 99.2 95.1 83.7 80.8 82.2 88.5      
9 256 8 351.0 202.3 190.9 163.4 153.3 149.1 149.4 161.7    
10 512 9 736.6 420.1 391.9 327.5 301.3 284.9 271.8 274.7 298.3  
11 1,024 10 1,519.8 859.7 813.3 664.4 600.1 557.5 514.6 496.9 504.6 543.7

中立飼料の必要数


  合成従
合成後期待Lv 100%合成時 合成主 1 2 3 4 5 6 7 8 9 10
3 5,335 2 4,677.4 5,335.0                
4 16,430 3 14,122.5 15,338.3 16,430.0              
5 44,860 4 38,008.2 40,081.1 40,452.5 42,701.1            
6 115,220 5 99,683.8 102,544.2 100,237.0 99,235.3 105,690.6          
7 283,940 6 252,678.7 256,033.4 245,997.1 234,732.0 235,711.8 251,970.6        
8 682,880 7 636,884.5 634,058.0 604,106.2 567,348.9 548,054.8 548,384.2 584,463.9      
9 1,599,760 8 1,585,476.4 1,543,082.8 1,454,868.2 1,359,358.5 1,287,886.8 1,246,099.5 1,244,794.5 1,330,109.7    
10 3,705,020 9 3,889,573.3 3,780,660.3 3,479,101.4 3,242,224.8 3,049,220.7 2,879,761.1 2,777,653.2 2,801,620.7 2,997,698.9  
11 8,465,040 10 9,360,657.3 9,112,354.1 8,420,647.0 7,677,738.4 7,151,314.2 6,731,824.2 6,352,728.5 6,172,039.8 6,182,796.7 6,610,306.3

調査スクリプト

失敗して残った分の再利用差分を埋めるところはもう少し改善の余地がある気がする
コストは下がるほうに調整されるはずなのでとりあえずこれで。

/**************************************************
 定数
**************************************************/
const C_Debug = false
const C_SynTtl = 1000000

//中立作成に必要なLv1素材数
const C_Lv1_Lv1Cst = 1            //Lv 1 
const C_Lv2_Lv1Cst = 2            //Lv 2 
const C_Lv3_Lv1Cst = 4            //Lv 3 
const C_Lv4_Lv1Cst_100p = 8       //Lv 4 
const C_Lv5_Lv1Cst_100p = 16      //Lv 5 
const C_Lv6_Lv1Cst_100p = 32      //Lv 6 
const C_Lv7_Lv1Cst_100p = 64      //Lv 7 
const C_Lv8_Lv1Cst_100p = 128     //Lv 8 
const C_Lv9_Lv1Cst_100p = 256     //Lv 9 
const C_Lv10_Lv1Cst_100p = 512    //Lv10 
const C_Lv11_Lv1Cst_100p = 1024   //Lv11 
const C_Lv4_Lv1Cst       = 7.224   //Lv 4 (4-2 Lv3とLv2を合成)
const C_Lv5_Lv1Cst       = 13.165  //Lv 5 (5-3 Lv4とLv2を合成)
const C_Lv6_Lv1Cst       = 24.335  //Lv 6 (6-2 Lv5とLv4を合成)
const C_Lv7_Lv1Cst       = 44.25   //Lv 7 (7-3 Lv6とLv4を合成)
const C_Lv8_Lv1Cst       = 80.841  //Lv 8 (8-3 Lv7とLv5を合成)
const C_Lv9_Lv1Cst       = 149.139 //Lv 9 (9-3 Lv8とLv6を合成)
const C_Lv10_Lv1Cst      = 271.836 //Lv10 (10-3 Lv9とLv7を合成)

//作成コスト(飼料)
const C_Feed_1        = 0
const C_Feed_2        = 1300
const C_Feed_3        = 5335
const C_Feed_4_100p   = 16430
const C_Feed_5_100p   = 44860
const C_Feed_6_100p   = 115220
const C_Feed_7_100p   = 283940
const C_Feed_8_100p   = 682880
const C_Feed_9_100p   = 1599760
const C_Feed_10_100p  = 3705020
const C_Feed_11_100p  = 8465040

const C_Feed_4       = 15350.55     //(4-2 Lv3とLv2を合成)
const C_Feed_5       = 40095.298    //(5-3 Lv4とLv2を合成)
const C_Feed_6       = 99235.324    //(6-2 Lv5とLv4を合成)
const C_Feed_7       = 234731.968   //(7-3 Lv6とLv4を合成)
const C_Feed_8       = 548054.837   //(8-3 Lv7とLv5を合成)
const C_Feed_9       = 1246099.468  //(9-3 Lv8とLv6を合成)
const C_Feed_10      = 2777653.156  //(10-3 Lv9とLv7を合成)

//合成コスト(飼料)
const C_Feed_1_1   = 1300
const C_Feed_2_1   = 1521
const C_Feed_2_2   = 2735
const C_Feed_3_1   = 1780
const C_Feed_3_2   = 3203
const C_Feed_3_3   = 5760
const C_Feed_4_1   = 2064
const C_Feed_4_2   = 3708
const C_Feed_4_3   = 6673
const C_Feed_4_4   = 12000
const C_Feed_5_1   = 2448
const C_Feed_5_2   = 4386
const C_Feed_5_3   = 7880
const C_Feed_5_4   = 14179
const C_Feed_5_5   = 25500
const C_Feed_6_1   = 2836
const C_Feed_6_2   = 5136
const C_Feed_6_3   = 9202
const C_Feed_6_4   = 16352
const C_Feed_6_5   = 29747
const C_Feed_6_6   = 53500
const C_Feed_7_1   = 3335
const C_Feed_7_2   = 6095
const C_Feed_7_3   = 11040
const C_Feed_7_4   = 19780
const C_Feed_7_5   = 35535
const C_Feed_7_6   = 63941
const C_Feed_7_7   = 115000
const C_Feed_8_1   = 3840
const C_Feed_8_2   = 6960
const C_Feed_8_3   = 12720
const C_Feed_8_4   = 23040
const C_Feed_8_5   = 41280
const C_Feed_8_6   = 74160
const C_Feed_8_7   = 133440
const C_Feed_8_8   = 234000
const C_Feed_9_1   = 4500
const C_Feed_9_2   = 8088
const C_Feed_9_3   = 14500
const C_Feed_9_4   = 26792
const C_Feed_9_5   = 48528
const C_Feed_9_6   = 86000
const C_Feed_9_7   = 154500
const C_Feed_9_8   = 281061
const C_Feed_9_9   = 505500
const C_Feed_10_1  = 5275
const C_Feed_10_2  = 9495
const C_Feed_10_3  = 16880
const C_Feed_10_4  = 30595
const C_Feed_10_5  = 55915
const C_Feed_10_6  = 101280
const C_Feed_10_7  = 181460
const C_Feed_10_8  = 325995
const C_Feed_10_9  = 586580
const C_Feed_10_10 = 1055000

//合成成功率
const C_Diff0_Rate = 100
const C_Diff1_Rate = 45
const C_Diff2_Rate = 20.25
const C_Diff3_Rate = 9.11
const C_Diff4_Rate = 4.10
const C_Diff5_Rate = 1.85
const C_Diff6_Rate = 0.83
const C_Diff7_Rate = 0.37
const C_Diff8_Rate = 0.17
const C_Diff9_Rate = 0.08

/***********************************************************/

function main(){
  //Lv差無し100%合成
  CalcCost("3-1A"   ,C_Lv2_Lv1Cst        ,C_Feed_2        ,C_Lv2_Lv1Cst        ,C_Feed_2        ,C_Feed_2_2   ,C_Diff0_Rate   ,C_Lv1_Lv1Cst        ,C_Feed_1)
  CalcCost("4-1A"   ,C_Lv3_Lv1Cst        ,C_Feed_3        ,C_Lv3_Lv1Cst        ,C_Feed_3        ,C_Feed_3_3   ,C_Diff0_Rate   ,C_Lv2_Lv1Cst        ,C_Feed_2)
  CalcCost("5-1A"   ,C_Lv4_Lv1Cst_100p   ,C_Feed_4_100p   ,C_Lv4_Lv1Cst_100p   ,C_Feed_4_100p   ,C_Feed_4_4   ,C_Diff0_Rate   ,C_Lv3_Lv1Cst        ,C_Feed_3)
  CalcCost("6-1A"   ,C_Lv5_Lv1Cst_100p   ,C_Feed_5_100p   ,C_Lv5_Lv1Cst_100p   ,C_Feed_5_100p   ,C_Feed_5_5   ,C_Diff0_Rate   ,C_Lv4_Lv1Cst_100p   ,C_Feed_4_100p)
  CalcCost("7-1A"   ,C_Lv6_Lv1Cst_100p   ,C_Feed_6_100p   ,C_Lv6_Lv1Cst_100p   ,C_Feed_6_100p   ,C_Feed_6_6   ,C_Diff0_Rate   ,C_Lv5_Lv1Cst_100p   ,C_Feed_5_100p)
  CalcCost("8-1A"   ,C_Lv7_Lv1Cst_100p   ,C_Feed_7_100p   ,C_Lv7_Lv1Cst_100p   ,C_Feed_7_100p   ,C_Feed_7_7   ,C_Diff0_Rate   ,C_Lv6_Lv1Cst_100p   ,C_Feed_6_100p)
  CalcCost("9-1A"   ,C_Lv8_Lv1Cst_100p   ,C_Feed_8_100p   ,C_Lv8_Lv1Cst_100p   ,C_Feed_8_100p   ,C_Feed_8_8   ,C_Diff0_Rate   ,C_Lv7_Lv1Cst_100p   ,C_Feed_7_100p)
  CalcCost("10-1A"   ,C_Lv9_Lv1Cst_100p   ,C_Feed_9_100p   ,C_Lv9_Lv1Cst_100p   ,C_Feed_9_100p   ,C_Feed_9_9   ,C_Diff0_Rate   ,C_Lv8_Lv1Cst_100p   ,C_Feed_8_100p)
  CalcCost("11-1A"   ,C_Lv10_Lv1Cst_100p   ,C_Feed_10_100p   ,C_Lv10_Lv1Cst_100p   ,C_Feed_10_100p   ,C_Feed_10_10   ,C_Diff0_Rate   ,C_Lv9_Lv1Cst_100p   ,C_Feed_9_100p)

  CalcCost("3-2   Lv2-Lv1"   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_2_1   ,C_Diff1_Rate   ,0              ,0)
  
  CalcCost("4-2   Lv3-Lv2"   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_3_2   ,C_Diff1_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("4-3   Lv3-Lv1"   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_3_1   ,C_Diff2_Rate   ,0              ,0)
  
  CalcCost("5-1   Lv4-Lv4"   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Feed_4_4   ,C_Diff0_Rate   ,C_Lv3_Lv1Cst   ,C_Feed_3)
  CalcCost("5-2   Lv4-Lv3"   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Feed_4_3   ,C_Diff1_Rate   ,C_Lv2_Lv1Cst   ,C_Feed_2)
  CalcCost("5-3   Lv4-Lv2"   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_4_2   ,C_Diff2_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("5-4   Lv4-Lv1"   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_4_1   ,C_Diff3_Rate   ,0              ,0)
  
  CalcCost("6-1   Lv5-Lv5"   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Feed_5_5   ,C_Diff0_Rate   ,C_Lv4_Lv1Cst   ,C_Feed_4)
  CalcCost("6-2   Lv5-Lv4"   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Feed_5_4   ,C_Diff1_Rate   ,C_Lv3_Lv1Cst   ,C_Feed_3)
  CalcCost("6-3   Lv5-Lv3"   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Feed_5_3   ,C_Diff2_Rate   ,C_Lv2_Lv1Cst   ,C_Feed_2)
  CalcCost("6-4   Lv5-Lv2"   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_5_2   ,C_Diff3_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("6-5   Lv5-Lv1"   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_5_1   ,C_Diff4_Rate   ,0              ,0)
  
  CalcCost("7-1   Lv6-Lv6"   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Feed_6_6   ,C_Diff0_Rate   ,C_Lv5_Lv1Cst   ,C_Feed_5)
  CalcCost("7-2   Lv6-Lv5"   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Feed_6_5   ,C_Diff1_Rate   ,C_Lv4_Lv1Cst   ,C_Feed_4)
  CalcCost("7-3   Lv6-Lv4"   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Feed_6_4   ,C_Diff2_Rate   ,C_Lv3_Lv1Cst   ,C_Feed_3)
  CalcCost("7-4   Lv6-Lv3"   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Feed_6_3   ,C_Diff3_Rate   ,C_Lv2_Lv1Cst   ,C_Feed_2)
  CalcCost("7-5   Lv6-Lv2"   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_6_2   ,C_Diff4_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("7-6   Lv6-Lv1"   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_6_1   ,C_Diff5_Rate   ,0              ,0)
  
  CalcCost("8-1   Lv7-Lv7"   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Feed_7_7   ,C_Diff0_Rate   ,C_Lv6_Lv1Cst   ,C_Feed_6)
  CalcCost("8-2   Lv7-Lv6"   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Feed_7_6   ,C_Diff1_Rate   ,C_Lv5_Lv1Cst   ,C_Feed_5)
  CalcCost("8-3   Lv7-Lv5"   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Feed_7_5   ,C_Diff2_Rate   ,C_Lv4_Lv1Cst   ,C_Feed_4)
  CalcCost("8-4   Lv7-Lv4"   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Feed_7_4   ,C_Diff3_Rate   ,C_Lv3_Lv1Cst   ,C_Feed_3)
  CalcCost("8-5   Lv7-Lv3"   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Feed_7_3   ,C_Diff4_Rate   ,C_Lv2_Lv1Cst   ,C_Feed_2)
  CalcCost("8-6   Lv7-Lv2"   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_7_2   ,C_Diff5_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("8-7   Lv7-Lv1"   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_7_1   ,C_Diff6_Rate   ,0              ,0)
  
  CalcCost("9-1   Lv8-Lv8"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Feed_8_8   ,C_Diff0_Rate   ,C_Lv7_Lv1Cst   ,C_Feed_7)
  CalcCost("9-2   Lv8-Lv7"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Feed_8_7   ,C_Diff1_Rate   ,C_Lv6_Lv1Cst   ,C_Feed_6)
  CalcCost("9-3   Lv8-Lv6"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Feed_8_6   ,C_Diff2_Rate   ,C_Lv5_Lv1Cst   ,C_Feed_5)
  CalcCost("9-4   Lv8-Lv5"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Feed_8_5   ,C_Diff3_Rate   ,C_Lv4_Lv1Cst   ,C_Feed_4)
  CalcCost("9-5   Lv8-Lv4"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Feed_8_4   ,C_Diff4_Rate   ,C_Lv3_Lv1Cst   ,C_Feed_3)
  CalcCost("9-6   Lv8-Lv3"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Feed_8_3   ,C_Diff5_Rate   ,C_Lv2_Lv1Cst   ,C_Feed_2)
  CalcCost("9-7   Lv8-Lv2"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_8_2   ,C_Diff6_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("9-8   Lv8-Lv1"   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_8_1   ,C_Diff7_Rate   ,0              ,0)

  CalcCost("10-1   Lv9-Lv9"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Feed_9_9   ,C_Diff0_Rate   ,C_Lv8_Lv1Cst   ,C_Feed_8)
  CalcCost("10-2   Lv9-Lv8"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Feed_9_8   ,C_Diff1_Rate   ,C_Lv7_Lv1Cst   ,C_Feed_7)
  CalcCost("10-3   Lv9-Lv7"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Feed_9_7   ,C_Diff2_Rate   ,C_Lv6_Lv1Cst   ,C_Feed_6)
  CalcCost("10-4   Lv9-Lv6"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Feed_9_6   ,C_Diff3_Rate   ,C_Lv5_Lv1Cst   ,C_Feed_5)
  CalcCost("10-5   Lv9-Lv5"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Feed_9_5   ,C_Diff4_Rate   ,C_Lv4_Lv1Cst   ,C_Feed_4)
  CalcCost("10-6   Lv9-Lv4"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Feed_9_4   ,C_Diff5_Rate   ,C_Lv3_Lv1Cst   ,C_Feed_3)
  CalcCost("10-7   Lv9-Lv3"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Feed_9_3   ,C_Diff6_Rate   ,C_Lv2_Lv1Cst   ,C_Feed_2)
  CalcCost("10-8   Lv9-Lv2"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_9_2   ,C_Diff7_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("10-9   Lv9-Lv1"  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_9_1   ,C_Diff8_Rate   ,0              ,0)

  CalcCost("11-1   Lv10-Lv10" ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Feed_10_10  ,C_Diff0_Rate   ,C_Lv9_Lv1Cst   ,C_Feed_9)
  CalcCost("11-2   Lv10-Lv9"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv9_Lv1Cst   ,C_Feed_9   ,C_Feed_10_9   ,C_Diff1_Rate   ,C_Lv8_Lv1Cst   ,C_Feed_8)
  CalcCost("11-3   Lv10-Lv8"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv8_Lv1Cst   ,C_Feed_8   ,C_Feed_10_8   ,C_Diff2_Rate   ,C_Lv7_Lv1Cst   ,C_Feed_7)
  CalcCost("11-4   Lv10-Lv7"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv7_Lv1Cst   ,C_Feed_7   ,C_Feed_10_7   ,C_Diff3_Rate   ,C_Lv6_Lv1Cst   ,C_Feed_6)
  CalcCost("11-5   Lv10-Lv6"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv6_Lv1Cst   ,C_Feed_6   ,C_Feed_10_6   ,C_Diff4_Rate   ,C_Lv5_Lv1Cst   ,C_Feed_5)
  CalcCost("11-6   Lv10-Lv5"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv5_Lv1Cst   ,C_Feed_5   ,C_Feed_10_5   ,C_Diff5_Rate   ,C_Lv4_Lv1Cst   ,C_Feed_4)
  CalcCost("11-7   Lv10-Lv4"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv4_Lv1Cst   ,C_Feed_4   ,C_Feed_10_4   ,C_Diff6_Rate   ,C_Lv3_Lv1Cst   ,C_Feed_3)
  CalcCost("11-8   Lv10-Lv3"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv3_Lv1Cst   ,C_Feed_3   ,C_Feed_10_3   ,C_Diff7_Rate   ,C_Lv2_Lv1Cst   ,C_Feed_2)
  CalcCost("11-9   Lv10-Lv2"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv2_Lv1Cst   ,C_Feed_2   ,C_Feed_10_2   ,C_Diff8_Rate   ,C_Lv1_Lv1Cst   ,C_Feed_1)
  CalcCost("11-10  Lv10-Lv1"  ,C_Lv10_Lv1Cst  ,C_Feed_10  ,C_Lv1_Lv1Cst   ,C_Feed_1   ,C_Feed_10_1   ,C_Diff9_Rate   ,0             ,0)
}

/**************************************************
 コスト計算
**************************************************/
function CalcCost(pTitle,pBaseLv1Cst,pBaseFeed,pAddLv1Cst,pAddFeed,pSynFeed,pSynDiffRate,pFailDiffLv1Cst,pFailDiffFeed){
  let tmpSynMst = pTitle
  let tmpSynTtl = 0              //累計合成数
  let tmpLv1Ttl = 0              //累計Lv1利用数
  let tmpFedTtl = 0              //累計飼料利用数

  // console.log("Start " + tmpSynMst)
  DebugMsg(tmpSynMst + "-1",tmpSynTtl,tmpLv1Ttl,tmpFedTtl,"START")
  
  //合成ベース中立作成
  tmpLv1Ttl = tmpLv1Ttl + pBaseLv1Cst
  tmpFedTtl = tmpFedTtl + pBaseFeed 
  DebugMsg(tmpSynMst + "-2",tmpSynTtl,tmpLv1Ttl,tmpFedTtl,"Syn Base Create")
  
  while (tmpSynTtl < C_SynTtl) {
    //合成添加中立作成
    tmpLv1Ttl = tmpLv1Ttl + pAddLv1Cst                   //添加用中立
    tmpFedTtl = tmpFedTtl + pAddFeed                     //1準備
    DebugMsg(tmpSynMst + "-3",tmpSynTtl,tmpLv1Ttl,tmpFedTtl,"Syn Add Create")
    tmpFedTtl = tmpFedTtl + pSynFeed                     //合成に使う飼料
    DebugMsg(tmpSynMst + "-4",tmpSynTtl,tmpLv1Ttl,tmpFedTtl,"Syn Execute")
    if (isSuccess(pSynDiffRate)){
      tmpSynTtl = tmpSynTtl + 1
      DebugMsg(tmpSynMst + "-5",tmpSynTtl,tmpLv1Ttl,tmpFedTtl,"Syn Success")
      if (tmpSynTtl < C_SynTtl){
        //合成ベース中立作成
        tmpLv1Ttl = tmpLv1Ttl + pBaseLv1Cst
        tmpFedTtl = tmpFedTtl + pBaseFeed 
        DebugMsg(tmpSynMst + "-6",tmpSynTtl,tmpLv1Ttl,tmpFedTtl,"Syn Base Create")
      }
    } else {
      //失敗して残った分の再利用差分を埋めるところ
      tmpLv1Ttl = tmpLv1Ttl - pFailDiffLv1Cst               
      tmpFedTtl = tmpFedTtl - pFailDiffFeed
      DebugMsg(tmpSynMst + "-7",tmpSynTtl,tmpLv1Ttl,tmpFedTtl,"Syn Fail")
    }
  }
  //new Intl.NumberFormat('ja-JP').format(num)
  console.log(tmpSynMst + 
              "   合成数 = " + new Intl.NumberFormat('ja-JP').format(tmpSynTtl) + 
              "   累計Lv1利用数 = " + new Intl.NumberFormat('ja-JP').format(tmpLv1Ttl) + 
              "   累計飼料利用数 = " + new Intl.NumberFormat('ja-JP').format(tmpFedTtl) + 
              "   平均Lv1利用数 = " + new Intl.NumberFormat('ja-JP').format(tmpLv1Ttl / tmpSynTtl) + 
              "   平均飼料利用数 = " + new Intl.NumberFormat('ja-JP').format(tmpFedTtl / tmpSynTtl))
}

/**************************************************
 合成成否取得
**************************************************/
function isSuccess(pRate){
  let tmpRnd = Math.random() * 100
  if (tmpRnd <= pRate){
    return true
  } else {
    return false
  }
}
/**************************************************
 デバッグメッセージ
**************************************************/
function DebugMsg(pPreMsg,pSynTtl,pLv1Ttl,pFedTtl,pSfxMsg){
  if (C_Debug){
    console.log(pPreMsg + "   SynTtl = " + pSynTtl + "   Lv1Ttl = " + pLv1Ttl + "   FedTtl = " + pFedTtl + " " + pSfxMsg)
  }
}