【放置少女】育成結果を線形連立方程式・逆行列で求めてみる

育成の結果がプラスになるのかマイナスになるのか、

それぞれのステータスがどれほどの重みを持っているのか求めるにはどうするのか、調べた結果を記録

育成の各ステータスの伸びを行列としてAに格納

育成の総戦力の伸びを行列としてbに格納

Aの逆行列を np.linalg.inv()で求めて、Ainvに格納。

bにAinvをかけると筋力・敏捷・知力・体力 それぞれの重みがわかる。

import numpy as np
#育成の各ステータスの伸び
A = np.array([[13,-14,12,-11],[10,11,12,-6],[10,-12,-2,5],[5,8,3,-9]])
#育成後の総戦力の伸び
b = np.array([49,91,97,3])

Ainv = np.linalg.inv(A)

x= np.dot(Ainv,b)
#各ステータスの重みを求めることができる
print(x)
#[8.6197591  1.41495949 2.35168356 6.49705801]

#求めた重みxを使えば育成で予想される戦力の伸びを計算することができる。
test = np.array([[-3],[13],[14],[-2]])
print(np.dot(x,test))