私は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から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.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
注意する:
に追加されますから、ミラーリングされます。入力、出力、それはすべて同じです。あなたはちょうど2つの数字の最小値が必要です。だから、あなたは0.1
で始まると言う。それは0.9
とミラー化され、の両方ともは0.1
にマップされます。
ありがとう@Amy。それは賢かった! –
何を0.1にする必要がありますか? 0.2は何を与えるべきですか? 0.3? 0.9? 0 => 0、1 => 0.5、それは0.4-0.8 => 0.4と思われます。これらの既知の外には、多くの不明な点があります(私が完全に間違った質問を読んでいない限り - また、 0から100までの値のパーセンテージ? –
@JaromandaX私の質問が更新されました –
0.5より大きい場合は1から減算します。 '1 - 0.9 = 0.1'条件付きを取り除くには' Math.Min(x、 1 - x) '。 – Amy