いくつかの呪文を知っているウィザードがあると想像してください。各スペルには、ダメージ、クールダウン時間、キャスト時間の3つの属性があります。かなり標準的なRPGのもの。
クールダウン時間:その呪文を再び唱えることができるまでにかかる時間(t)。呪文は、キャストを開始した瞬間に「クールダウン」します。
キャスト時間:呪文を使用するのにかかる時間(t)。ウィザードが何かを唱えている間、別の呪文は唱えられず、キャンセルすることもできません。
質問は次のとおりです。異なるスペルのセットを与えられた場合、どのようにダメージを最大化するのでしょうか?
キャストタイムごとの最大ダメージを計算するのは簡単です。しかし、はるかに高い呪文が利用可能な場合、低ダメージの呪文を「スタック」してキャストするのを待つ方が良い状況ではどうでしょうか?
例えば、
ファイアボール:3000ダメージ、3秒のキャスト時間、6秒のクールダウン。
フロストボルト:ダメージ20、キャスト時間4秒、クールダウン4秒。
ファイヤーブラスト:ダメージ3、キャスト時間3秒、クールダウン3秒。
この場合、フロストボルトではなく、DPCTの低いスペル(ファイアブラスト)を選択すると、1秒あたりのダメージが大きくなります。そのため、呪文を選択した結果を考慮する必要があります。
次の例は、「オーバーキャスト」と「待機」の場合です。