上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

前回の通り、スキル振り分けを満たす最適な各職業のレベルを求めるにあたり、スキルポイントとそのスキルポイントを得られるレベルに必要な経験値との関係性を求める必要があるところまで分かりました。
今回は、どうやってその関数を導出するかについて、です。

今、分かっていることは以下の通りです。
・各レベルに必要な経験値
・各レベルで得られるスキルポイント

ということは、スキルポイントとそのスキルポイントを得るために必要な経験値は分かっている、ということです。

……ちょっと話がややこしいので、今回は「各レベルに必要な経験値」の法則性=関数を求める方法とします。
実際にシミュレータを作ったときは上記の通り、「あるスキルポイントを得るために必要なレベルの経験値」の関数を利用しています。

ドラクエ10の基本職における、各レベルとそのレベルに達するための必要経験値(累積値)をグラフにすると以下の通りです(基本職の必要経験値)。
x軸がレベル、y軸が経験値です。
2013-10-22_DQ10_01.png

ぱっと見で関数にできそうですね。
ただ、人の手で関数を出すのは難しそうです。


というわけで、この数値(数列)における関係性をなんとかさくっと出したいなあ、と思って再びインターネットで検索したところ、Excelでできる、ということが分かりました。

さすが表計算ソフト。
方眼紙じゃないだけあります。


方法は以下の通りです。

(1)
まず、上で作成した表の散布図を作成します。
普段グラフを作成するときに「折れ線」を選んでいるところを「散布図」にするだけです。

(2)
グラフを右クリックし、「近似曲線の追加」を選びます。
多項式近似で次数は「3」(3次曲線)とし、「グラフに数式を表示する」にチェックをいれます。
2013-10-22_DQ10_02.png



はい、簡単に出ます。一瞬です。
基本職において、そのレベルをx、経験値をyとした場合の関数は「y = 15.541x^3 - 626.62x^2 + 9295.5x - 34824」です。

……やはり人力で算出するのは無理そうですね。



ということで、条件式(関数)まで出せましたので、この式を使って最適化問題に挑みます。


続きます。
Related Posts

Thoughts on スポンサーサイトDQ10 エクセルのソルバーでスキルシミュレーター「関数作成」

Leave a Reply

* less than 16 characters
* less than 24 characters
* less than 16 characters
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。