与えられた数学は私の強みではないので、3D アニメーション用にベジエ曲線を実装しています。
式はここに示されていますが、ご覧のとおり、かなり厄介です。私のプログラミングでは、わかりやすい名前を使用し、複雑な行を扱いやすい小さな行に分割するのが好きです。
このようなシナリオをどのように処理するのが最善の方法ですか?
プログラミングのベスト プラクティスを無視して、x、y、t などの変数名に固執することですか?
与えられた数学は私の強みではないので、3D アニメーション用にベジエ曲線を実装しています。
式はここに示されていますが、ご覧のとおり、かなり厄介です。私のプログラミングでは、わかりやすい名前を使用し、複雑な行を扱いやすい小さな行に分割するのが好きです。
このようなシナリオをどのように処理するのが最善の方法ですか?
プログラミングのベスト プラクティスを無視して、x、y、t などの変数名に固執することですか?
私の意見では、定義済みの数式がある場合、式に対応する x、y、t、P_0 などの短い変数名を使用しても問題ありません。ただし、式を明確に参照してください。
数式が独自の関数に拡張されている場合、私は確かに正規の数学表現を使用し、コメントに wiki ページの URL を追加することもできます
関数の特定の使用法でコードに埋め込まれている場合は、コードからドメイン名を保持する方が良いかもしれません
場合によります
あなたの中の数学者だけが実際に式を理解しようとしているのを見て、私のアドバイスは、数学者が最も快適に感じるスタイルを採用することです (変数としての文字など...)
また、「このメソッドは二次ベジエ曲線に沿った一連の点を返します」など、式が何であるか、それが何をするかを明確に示すコメントをどこかに必ず入れます。そうすれば、あなたのプログラマーがコードを再訪するときはいつでも、あなたの内なる数学者がすべて問題がないことを確認したと仮定して、数学的な複雑さを安全に無視することができます.
数学のベスト プラクティスを使用し、変数を文字で表すことをお勧めします。式の上にある変数について説明するだけです。そして、数式をより小さなサブ数式に分割できれば、さらに優れています。
気にしないでください。ドキュメント (この場合はウィキペディアのページ、または独自のドキュメント) を参照し、変数名がドキュメントと一致していることを確認してください。コードのコメントは、数式を説明するのにあまり適していません (また、その必要もありません)。
参照は、40 行のコメントや暗示的な変数名よりも優れている場合があります。
C# (または好みの他の言語) の数式を数式にできるだけ近づけ、変数の説明を含む数式への参照を含めます。コーディングの考え方は読みやすくすることであり、数式を扱っている場合、最も読みやすい表現は数学に最も似た表現です。
私は方程式をその根の部分に分解する傾向があります。
def sum(array)
array.inject(0) { |result, item| result + item }
end
def average(array)
sum(array) / array.length
end
def sum_squared_error(array)
avg = average(array)
array.inject(0) { |result, item| result + (item - avg) ** 2 }
end
def variance(array)
sum_squared_error(array) / (array.length - 1)
end
def standard_deviation(array)
Math.sqrt(variance(array))
end
これを処理するには、ドメイン固有の言語を使用することを検討してください。Mathematica では、数学的な概念で表されるのと同じように方程式を書き出すことができます。
最終的なフォームが元の方程式に似ているほど、長期的には維持しやすくなります (そうしないと、コードを見るたびに解釈する必要があります)。