4

私はPythonで音楽アプリに取り組んでおり、特に拍子記号を処理するために分数モジュールを使用したいと考えています。私の問題は、分数が単純化されることです。

>>> from fractions import Fraction
>>> x = Fraction(4, 4)
>>> x
Fraction(1, 1)

ただし、音楽の観点からは、4/4が1に等しい場合でも4/4のままであることが重要です。その動作を回避するための組み込みの方法はありますか?

ありがとう!

4

3 に答える 3

9

はい:そのためのカスタムクラスを作成します。

音楽の拍子記号は分数ではないため、数学のクラスで表すのは意味がありません。

于 2010-05-19T06:19:30.340 に答える
3

分数以外のデータ構造を使用する必要があります。単純なタプルが最も単純ですが、独自のクラスを作成することもできます。計算を行う必要がある場合は、拍子記号を構成する個々の整数に対して計算を行います。

于 2010-05-19T06:19:05.927 に答える
0

いいえ、ありません。GCD による除算は Fraction クラスの演算に組み込まれています。少なくとも記譜法を扱っている場合は、とにかくカスタム クラスを作成する必要があると思われるその他の理由は次のとおりです。

  • 4/4 と 2/4 の一般的な時間 (C) とカット時間 (スラッシュ-C) の置換を処理できるようにする – またはさらに良いことに、それをオプションにする
  • 複合拍子記号を表現できるようにする (例: 2+3+2/8)
于 2010-06-03T06:33:02.563 に答える