ビデオゲームのキャラクターのアイテムビルドを把握するために、javascript でアプリを作成しています。上位アイテムは約25個あり、一度に6個運ぶことができます。効果が大きく異なるので、単体ではあまり良くないように見えても、他のアイテムと組み合わせると非常に強力になると私は信じています。興味があれば詳しく説明します。
質問:
6 つのアイテムの異なる組み合わせすべてのリストを取得するにはどうすればよいですか? 組み合わせは何通りあるでしょう?25c6 (~134k) だけですか? または、重複を削除する必要がありますか? (すみません、しばらく数学の授業を休んでいました。)
このようなものをJavascriptでどのように実装しますか? これを行うことができる数学ライブラリはすでにありますか? (具体的には、アイテムの可能なすべての組み合わせを繰り返します。)
考えられるすべての組み合わせのダメージを力ずくで計算し、最上位のアイテムの組み合わせを保存することは可能でしょうか? そうでない場合、強い組み合わせを見つけるためのより良いアルゴリズムはありますか?
みんなの入力に基づいた私のコードは次のとおりです。
function getAllCombinations(n, k, callback)
{
var iterate = function(remaining, args)
{
var len = args.length;
for (var i = args[len - 1]; i < n; i++)
{
args.splice(len);
args[len - 1] = i;
if (remaining)
{
args.push(i);
iterate(remaining - 1, args);
}
else
{
callback.apply(null, args);
}
}
}
iterate(k - 1, [0]);
}
var itemsCount = 25;
var itemSlots = 6;
getAllCombinations(itemsCount, itemSlots, function(a, b, c, d, e, f)
{
// calculateDamage(hero, arguments);
});