0

これはパズル/ロジックタイプの質問であり、プログラミングの質問ではありませんが、困惑しているので、誰かが助けてくれることを望んでいました。

私は整数から始めて、そのXパーセントを取る必要があります。その2倍の数を取得したら、整数に丸める必要があります(これをYと呼びます)。私がそれを丸めるかどうかは実際には問題ではなく、それがどちらの方向(上または下)になるかは本当に気にしないので、床/天井を使用することは許容できる解決策です-私はintが必要です。

システムの後半で、int Yが表示され、元の番号が何であったかを知る必要があります。この時点で、パーセンテージがわかっていて、doubleをintにするために使用した方法がわかっている場合、元の数値を確認するにはどうすればよいですか。

これは、すべての元の数値/パーセンテージの組み合わせで機能する必要があります。

例:

Original number: 997
Percentage: 90
Int-Conversion Method: Floor

997 * .90 = 897.3
floor(897.3) = 897
Y = 897

.. .. 897が与えられ、パーセンテージと整数変換方法がわかっている場合、元の数値が997であったとどのように判断できますか?

4

2 に答える 2

2
997 * .90 = 897.3
floor(897.3) = 897
Y = 897

あなたが提案した方法を考えると、あなたが提供した方法とデータを考えると、正確な数に戻ることができない理由を説明します。

パーセンテージの計算は問題なく、double値が残ります。次に、floor関数を使用して、データの一部を効果的に切り捨てます。切り捨ては全単射ではないため、897-> 897.3から戻ることはできません。したがって、元の番号を確実に再現することはできません。提供したデータの規模を考えると、それほど間違いはありませんが、値が大きい場合、またはより高い精度が必要な状況では、この方法は推測作業によく似ている場合があります。

于 2013-03-07T17:05:18.027 に答える
0

次の式を使用します

original number = calculated number / percentage

あなたの番号を使用する

997 = 897 / 0.90

元の計算と逆の計算では、答えを丸める必要があります。

そうしないと、逆の計算を行うときに、もう1つずれることになります。

于 2013-03-07T17:05:10.423 に答える