2016-11-15 3 views
1

私は0から1の間の値を持ちますが、この値を0から0.5の範囲でマップする必要があります。
例0.4では0.4になりますが0.8また、0.2を与えるだろう。
マップのパーセントを0から0.5から0の範囲にする

0.1 = 0.1、
0.2 = 0.2、
0.3 = 0.3、
0.4 = 0.4、
0.5 = 0.5、
0.6 = 0.4、
0.7 = 0.3、
0.8 = 0.2、
0.9 = 0.1

これをどうすれば実現できますか?

+0

何を0.1にする必要がありますか? 0.2は何を与えるべきですか? 0.3? 0.9? 0 => 0、1 => 0.5、それは0.4-0.8 => 0.4と思われます。これらの既知の外には、多くの不明な点があります(私が完全に間違った質問を読んでいない限り - また、 0から100までの値のパーセンテージ? –

+0

@JaromandaX私の質問が更新されました –

+7

0.5より大きい場合は1から減算します。 '1 - 0.9 = 0.1'条件付きを取り除くには' Math.Min(x、 1 - x) '。 – Amy

答えて

10

0.5より大きい場合は、1から引きます。1 - 0.9 = 0.1条件を削除するには、Math.Min(x, 1 - x)を使用します。これは、動作するため:

0.1 = 0.1、
0.2 = 0.2、
0.3 = 0.3、
0.4 = 0.4、
0.5 = 0.5、
0.6 = 0.4、
0.7 = 0.3、
0.8 = 0.2、
0.9 = 0.1

注意する:

  • リストは、[0,1] 0.5
  • 周りの各ライン上に2つの数字があり、かつ中間点過去のすべての行がMath.Minが動作する理由です。1.

に追加されますから、ミラーリングされます。入力、出力、それはすべて同じです。あなたはちょうど2つの数字の最小値が必要です。だから、あなたは0.1で始まると言う。それは0.9とミラー化され、の両方とも0.1にマップされます。

+0

ありがとう@Amy。それは賢かった! –

関連する問題