私はPythonで音楽アプリに取り組んでおり、特に拍子記号を処理するために分数モジュールを使用したいと考えています。私の問題は、分数が単純化されることです。
>>> from fractions import Fraction
>>> x = Fraction(4, 4)
>>> x
Fraction(1, 1)
ただし、音楽の観点からは、4/4が1に等しい場合でも4/4のままであることが重要です。その動作を回避するための組み込みの方法はありますか?
ありがとう!
私はPythonで音楽アプリに取り組んでおり、特に拍子記号を処理するために分数モジュールを使用したいと考えています。私の問題は、分数が単純化されることです。
>>> from fractions import Fraction
>>> x = Fraction(4, 4)
>>> x
Fraction(1, 1)
ただし、音楽の観点からは、4/4が1に等しい場合でも4/4のままであることが重要です。その動作を回避するための組み込みの方法はありますか?
ありがとう!
はい:そのためのカスタムクラスを作成します。
音楽の拍子記号は分数ではないため、数学のクラスで表すのは意味がありません。
分数以外のデータ構造を使用する必要があります。単純なタプルが最も単純ですが、独自のクラスを作成することもできます。計算を行う必要がある場合は、拍子記号を構成する個々の整数に対して計算を行います。
いいえ、ありません。GCD による除算は Fraction クラスの演算に組み込まれています。少なくとも記譜法を扱っている場合は、とにかくカスタム クラスを作成する必要があると思われるその他の理由は次のとおりです。