[解決済み】最小値と最大値がわかっている数値の範囲を縮小する方法
質問
そこで、数値の範囲を取り、ある範囲に合うように値を縮小する方法を考えています。 なぜこのようなことをしたいかというと、java swing jpanelで楕円を描こうとしているからです。 各楕円の高さと幅は1-30の範囲にしたいのです。 データセットから最小値と最大値を見つけるメソッドはありますが、実行時まで最小値と最大値は得られません。 これを簡単に実行する方法はありますか?
どのように解決するのですか?
例えば、ある範囲を拡大縮小したいとします。
[min,max]
から
[a,b]
. を満たす(連続的な)関数を探しているんですね。
f(min) = a
f(max) = b
あなたの場合
a
は1であり
b
は30になりますが、まずはもっとシンプルに
[min,max]
の範囲に
[0,1]
.
プティング
min
を関数に代入し、0を得るには、次のようにします。
f(x) = x - min ===> f(min) = min - min = 0
というわけで、ほぼ思い通りになりました。 しかし
max
とすると
max - min
本当は1が欲しいのに。 そのため、スケールを変更する必要があります。
x - min max - min
f(x) = --------- ===> f(min) = 0; f(max) = --------- = 1
max - min max - min
というのは、私たちが欲しいものです。 そこで、翻訳と拡大縮小を行う必要があります。 では、代わりに任意の値を
a
と
b
のように、もう少し複雑なものが必要です。
(b-a)(x - min)
f(x) = -------------- + a
max - min
を入れることで確認できます。
min
に対して
x
が得られるようになりました。
a
を入れると
max
は
b
.
また、次のことにお気づきでしょうか。
(b-a)/(max-min)
は、新しい範囲のサイズと元の範囲のサイズとの間のスケーリングファクターである。 つまり、実際にはまず
x
によって
-min
の新しい最小値に変換し、正しい倍率でスケーリングします。
a
.
お役に立てれば幸いです。
関連
-
[解決済み】n個のノードを持つ有向グラフの最大エッジ数は何個ですか?[クローズド]。
-
[解決済み] 大きな符号なし2進数から小さな2進数の引き算
-
[解決済み] スケールファクターまで
-
[解決済み] LaTeX: 数学モードで3行をスタックする
-
[解決済み] 10進数のrange()ステップ値を使用するには?
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み] CのMINとMAX
-
[解決済み] 比率を維持したまま、数値範囲を別の範囲に変換する。
-
[解決済み】関数f(f(n))を設計する == -n
-
[解決済み】線分の法線ベクトルを計算するには?[クローズド]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】直線x=2, y=3, 3x+2y=6で形成される三角形の点での直心を求める方法とは?[クローズド]。
-
[解決済み] 大きな符号なし2進数から小さな2進数の引き算
-
[解決済み] Mathematica の行列対角化
-
[解決済み] Latexで関数の下に文字を配置するには?
-
[解決済み] n log n = c の計算方法
-
[解決済み] glm::normalizeは何をするのですか?
-
[解決済み】「エントロピーと情報利得」って何?
-
[解決済み】最小値と最大値がわかっている数値の範囲を縮小する方法
-
[解決済み] NumPyの配列を特定の範囲に正規化する方法は?
-
[解決済み] 緯度・経度をメートルに換算する方法は?