私は最近、ランキングアルゴリズムであるAllegSkillをPython 3に実装しようとしました。
数学は次のようになります。
これは私が書いたものです:
t = (µw-µl)/c # those are used in
e = ε/c # multiple places.
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5
実際、Python 3が変数名を受け入れない、√
または²
変数名として受け入れないのは残念だと思いました。
>>> √ = lambda x: x**.5
File "<stdin>", line 1
√ = lambda x: x**.5
^
SyntaxError: invalid character in identifier
私は頭がおかしいですか?ASCIIのみのバージョンに頼るべきですか?どうして?上記のASCIIのみのバージョンは、式との等価性を検証するのが難しくありませんか?
気を付けてください、いくつかのUnicodeグリフは互いに非常によく似ており、or(またはそれは▗▖)やwrittenは書かれたコードではまったく意味をなさないものに似ていることを理解しています。ただし、数学や矢印グリフの場合はほとんどそうではありません。
リクエストごとに、ASCIIのみのバージョンは次のようなものになります。
winner_sigma_new = ( winner_sigma ** 2 *
( 1 -
( winner_sigma ** 2 -
general_uncertainty ** 2
) * Wwin(t,e)
) + dynamics ** 2
)**.5
...アルゴリズムの各ステップごと。
sqrt = lambda x: x**.5
取得します。sqrt(2) => 1.41421356237