0

質問したいのですが:

  • 私は正の整数を持っているとしましょう:10
  • 次に、ランダムな整数(ランダムな数も)を取得しました。たとえば、次のようにします。5, 7, 8
  • 次のような浮動小数点数を計算したい:5*x + 7*x + 8*x = 10
  • 現時点ではそれを取得しましたが、次のような共通の下限境界 (たとえば3) にしたいと考えています。

5 * x > 3
7 * x > 3
8 * x > 3

  • この状態を達成するために数値 (比率) を修正することが可能です。したがって、この特定の例では次のようになります。
sum = 5 + 7 + 8 = 20
x = 10 (total) / 20 (sum)
x = 0.5

results: 5*0.5 + 7*0.5 + 8*0.5 = 2.5 + 3.5 + 4 = 10 (total)

これまでのところ良好ですが、2.5現在は所定の最小値を下回っています。limit 3、これを解決する方法!

もしそうなら、どのように可能ですか?(できればC#で)

4

3 に答える 3

1

あなたの例を取り上げて、私たちがそれをどのように解決するか見てみましょう.

5x 7x 8x の使用を 5x 7y 8z の使用に変更する必要があります。これらは要件に合わせて変更する必要があり、すべてが同じではないことがすでに決定されているためです。

So currently you get a total answer of 10 by having 

5 times 0.5 = 2.5
7 times 0.5 = 3.5
8 times 0.5 = 4

ただし、0.5 の 5 倍は 3 を超えません。

したがって、5 倍 x 少なくとも 3 倍にするには、合計を 0.5 増やす必要があります。

3(少なくともあなたが望む数) - 2.5(あなたが持っている数)は0.5です

したがって、TOTAL は 0.5 増加する必要があります。

x must = 3 の 5 倍なので、x must = 3 を 5 で割ると 0.6 となります。

now lets recalculate your sum

5 times 0.6 = 3
7 tiems 0.5 = 3.5
8 times 0.5 = 4

すべて合わせて = 10.5 ...ああ、ボール。

わかりましたので、y または z を小さくして、答えがまだ正確に 10 であることを確認する必要があることがわかります。

z = 4 の 8 倍を選びましょう (4 は 3 から遠いので、最も余裕のある方法が得られます)

0.5 割る 8 = 0.0625

したがって、x の 5 倍からの 0.5 の増加を打ち消すには、z を 0.0625 減少させる必要があります。

したがって、現在の z = 0.5 - 0.0625 は 0.4375 です

lets redo your sum with these new numbers!

5 times 0.6 = 3
7 times 0.5 = 3.5
8 times  0.4375 = 3.5

3 たす 3.5 たす 3.5 = 10! 私たちはそれを釘付けにしました!やあ

これが役に立てば幸いです!うまくいかなくても、とにかく楽しんでいました:D

要約すると、5x が少なくとも 3 になるように x を増やす必要がありましたが、x の増加は答えが 10 より大きいことを意味し、したがって y または z のいずれかが合計の増加分だけ減少しなければなりませんでした。他の数値の 1 つを使用して、z または y からどれだけ減算する必要があるかを計算して、= 再び完全な 10 にします。

于 2012-05-10T15:29:23.887 に答える
0

あなたの要求は矛盾しています。x が単一の値の場合、5*x > 3 と同時に 5*x + 7*x + 8*x = 10 であることを保証することはできません。5*x + 7*y + 8*z = 10 を使用できる場合は、3*value_count < 10 の場合に可能になりますが、これは他のタスクだと思います

于 2012-05-10T15:08:23.133 に答える
0

最初にタスクを解決し、それからコーディングする必要があるようです。与えられた条件を見てみましょう X に掛けられたすべての数値は 3 より大きくなければなりません。そのため、7 * 3 は既に 21 であり、20 よりも大きいため、それらの最大数は 6 である必要があります。数値の最小値を計算する必要があります。6 の場合、20 から 6 = 3 への除算の残りの最小値があり、5 の場合、20 % 5 = 4 があります。この 2 つの条件でのみ、「X」を計算できます。

于 2012-05-10T15:10:58.187 に答える