Created
May 1, 2014 00:00
-
-
Save suneo3476/2e059b4d4ea4ee7022ad to your computer and use it in GitHub Desktop.
効率の良い遠征の組み合わせを求めます。データはWikiから http://wikiwiki.jp/kancolle/?%B1%F3%C0%AC#id10 。combination関数は組み合わせを求める度に遠征データから最高率の遠征を除きます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//燃料、弾薬、鋼材、ボーキの時給理論値 | |
var resourceSet = [ | |
[-32,120,0,0], | |
[-56,200,60,0], | |
[54,34,120,0], | |
[-31.2,72,0,0], | |
[111.67,133.33,13.33,13.33], | |
[-24,-24,0,120], | |
[-42,0,50,30], | |
[2.67,25.33,16.67,16.67], | |
[79.25,0,0,0], | |
[-12,33.33,0,20], | |
[-5.6,0,0,50], | |
[2.75,31.25,25,6.25], | |
[48.25,62.5,0,0], | |
[-7.83,40,33.33,0], | |
[-5.17,-5,25,33.33], | |
[30.2,30,13.33,13.33], | |
[57.33,26.67,66.67,0], | |
[-14.4,-6.6,60,20], | |
[46.33,-19.33,8.33,5], | |
[-8.5,-9,75,0], | |
[109.71,89.57,0,0], | |
[-33.33,-36,0,0], | |
[-50,-53,0,25], | |
[0,0,0,0], | |
[16.15,-3.4,7.5,0], | |
[-0.9,-1,0,11.25], | |
[-0.8,-1.6,40,0], | |
[-0.96,-1.92,36,14], | |
[-1,-2,0,4.16], | |
[-1,-2,0,2.08], | |
[0,0,0,0], | |
[0,0,0,0], | |
[0,0,0,0], | |
[0,0,0,0], | |
[-17.71,-22.29,34.29,40], | |
[40.44,-13.78,22.22,22.22], | |
[-27.64,107.64,98.18,0], | |
[119.31,-32.91,68.57,0] | |
]; | |
//バケツ | |
var bucketSet = [ | |
0, | |
1, | |
0, | |
0.6, | |
0, | |
0, | |
0, | |
0, | |
0.375, | |
0.333, | |
0.2, | |
0, | |
0.25, | |
0.083, | |
0, | |
0, | |
0, | |
0.1, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0.019, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0, | |
0.111, | |
0, | |
0 | |
]; | |
function combination(resourceData,bucketData){ | |
//ここをかえます これは最低限ボーキ100とたまにバケツほしい場合の例です | |
var oil = 0; //さいていげんほしい燃料 | |
var bullet = 0; //さいていげんほしい弾薬 | |
var steel = 0; //さいていげんほしい鋼材 | |
var bauxite = 100; //さいていげんほしいボーキ | |
var bucket = 0.1; //さいていげんほしいばけつ | |
var kantai = 3; //かいほうしてるかんたいのかず | |
var sort = 6; //けっかのそーときじゅん | |
//3燃料 4弾薬 5鋼材 6ボーキ 7合計 8バケツ | |
var result = []; | |
for (var i = 0; i < resourceData.length; i++) { | |
for (var j = i; j < resourceData.length; j++) { | |
for (var k = j; k < resourceData.length; k++) { | |
var resource = [0,0,0,0]; | |
var resourceSum = 0; | |
var bucketSum = 0; | |
//資源の計算 | |
for (var l = 0; l < 4; l++){ | |
resource[l] += resourceData[i][l]; | |
resource[l] += kantai>=2 ? resourceData[j][l] : 0; | |
resource[l] += kantai>=3 ? resourceData[k][l] : 0; | |
resource[l] = Math.floor(resource[l] * 100) / 100; | |
resourceSum += resource[l]; | |
} | |
//バケツの計算 | |
bucketSum = bucketData[i] + bucketData[j] + bucketData[k]; | |
bucketSum = Math.floor(bucketSum * 100) / 100; | |
//閾値フィルター | |
if(resource[0] < oil || resource[1] < bullet || resource[2] < steel || resource[3]< bauxite) continue; | |
if(bucketSum < bucket) continue; | |
//結果に挿入 | |
resource.unshift([(i+1), (kantai>=2 ? (j+1) : ""), (kantai==3 ? (k+1) : "")]); | |
resource.push(resourceSum); | |
resource.push(bucketSum); | |
result.push(resource); | |
} | |
} | |
} | |
//重複削除 | |
for(var i = 0; i < result.length-1; i++){ | |
for(var j = i+1; j < result.length; j++){ | |
if(typeof result[i] === "undefined" || typeof result[j] === "undefined") continue; | |
if(result[i][0]==result[j][0]) result[j] = undefined; | |
} | |
} | |
//ソート | |
for(var i = 0; i < result.length-1; i++){ | |
for(var j = i+1; j < result.length; j++){ | |
if(typeof result[i] === "undefined" || typeof result[j] === "undefined") continue; | |
if(result[i][sort]<result[j][sort]){ | |
tmp = result[i]; | |
result[i] = result[j]; | |
result[j] = tmp; | |
} | |
} | |
} | |
//resourceDataのデータを置換 | |
if(result.length > 0 && typeof result !== "undefined"){ | |
for(var i = 0; i < 3; i++){ | |
resourceSet[ result[0][0][i]-1 ] = [0,0,0,0]; | |
bucketSet[ result[0][0][i]-1 ] = 0; | |
} | |
} | |
return result; | |
} | |
function show(result){ | |
var showNum = 10; //ひょうじけんすう | |
//ひょうじ | |
console.log("組み合わせ 燃料 弾薬 鋼材 ボーキ 資源合計 バケツ"); | |
for(var i = 0; i < result.length && i < showNum; i++){ | |
if(typeof result[i] === "undefined") continue; | |
console.log(result[i].join('\t')); | |
resultNum++; | |
} | |
var resultNum = 0; | |
for(var i = 0; i < result.length; i++){ | |
if(typeof result[i] === "undefined") continue; | |
resultNum++; | |
} | |
console.log(resultNum+"件"); | |
} | |
var result; | |
result = combination(resourceSet, bucketSet); | |
show(result); | |
result = combination(resourceSet, bucketSet); | |
show(result); | |
result = combination(resourceSet, bucketSet); | |
show(result); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
組み合わせ 燃料 弾薬 鋼材 ボーキ 資源合計 バケツ | |
2,5,6 31.67 309.33 73.33 133.33 547.66 1 | |
2,6,21 29.7 265.57 60 120 475.27 1 | |
2,6,38 39.31 143.09 128.57 120 430.97 1 | |
4,6,9 24.04 48 0 120 192.04 0.97 | |
9,11,11 68.05 0 0 100 168.05 0.77 | |
6,9,10 43.25 9.32 0 140 192.57 0.7 | |
11,11,13 37.04 62.5 0 100 199.54 0.65 | |
6,9,13 103.5 38.5 0 120 262 0.62 | |
4,5,6 56.47 181.33 13.33 133.33 384.46000000000004 0.6 | |
4,6,17 2.12 74.67 66.67 120 263.46000000000004 0.6 | |
74件 | |
組み合わせ 燃料 弾薬 鋼材 ボーキ 資源合計 バケツ | |
9,11,11 68.05 0 0 100 168.05 0.77 | |
11,11,13 37.04 62.5 0 100 199.54 0.65 | |
3,11,11 42.8 34 120 100 296.8 0.4 | |
11,11,16 19 30 13.33 113.33 175.66 0.4 | |
11,11,17 46.13 26.67 66.67 100 239.47000000000003 0.4 | |
11,11,21 98.51 89.57 0 100 288.08 0.4 | |
11,16,35 6.89 7.71 47.62 103.33 165.55 0.2 | |
7件 | |
組み合わせ 燃料 弾薬 鋼材 ボーキ 資源合計 バケツ | |
0件 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment