-1

整数型の重み値をパーセンテージで編集できるようにする必要があります。

例: 次の重みを取得しました。

可変重量
×100
50歳
50

つまり、z は 25%、y は 25%、x は 50% です。

既存の重みを編集したり、パーセンテージ入力で新しい重みを追加できるようにしたい場合、重みが引き続き整数型であり、丸めが不要であることを確認するにはどうすればよいですか。

たとえば、総重量の 25% になる新しい重量を追加したい場合、これをどのように計算できますか? これを達成するために、他の重み (インクリメント/デクリメント) を変更できることに注意してください。

ただし、ここで必要な条件は、重みが整数のままであり、新しい/編集の重みの割合が要求どおりになることです。

重みが整数であることを確認する必要がない場合は簡単でした。次の式を使用できます。

NewWeight = (合計 * 要求されたパーセンテージ)/(1-要求されたパーセンテージ)

しかし、そうではありません...

4

1 に答える 1

2

リストに w% の重みを追加するとします。最初の例の場合、w = 25 です。

まず、現在の重みの合計を見つけます。

x 100
y 50
z 50
----
Total 200

現在の各重量に (100-w) を掛けます。

x 7500
y 3750
z 3750

前に見つけた合計を w に掛けて、リストに追加します。

x 7500
y 3750
z 3750
w 5000

各数値をすべての重みのGCDで割ることにより、数値を最小の形式に減らすことができます。

x 6
y 3
z 3
w 4

このメソッドを使用するときは、オーバーフロー エラーに注意してください。ある種の bignum データ型を使用するのが最善かもしれません。

于 2013-02-19T16:18:27.030 に答える