如果您知道'input1'嚴格介於0和1之間,或者通常'min'和'max'(其中min和max已知在介於0之間但不是嚴格介於0和1之間)你會得到'input1'來通過'input2'給出的數值跳躍來增加或減少,保證新值嚴格在最小值和最大值之間,並且永遠不會達到最小值或最大值?增量縮放功能
增量縮放功能
回答
您需要一個distribution function,最好是可逆的(反過來稱爲quantile function)。 換句話說,你需要一個單調嚴格遞增的連續函數f與lim[x->-oo] f(x) = 0
和lim[x->oo] f(x) = 1
。
如果你有這樣的分佈函數f和它的逆f⁻¹,那麼你的調節功能得到這樣的事情:
g (x, Δ) = f(f⁻¹(x) + Δ)
這是0和1之間的值,其他區間[a, b]
我們需要按比例繪製的,使用縮放函數s
:
s(x) = (b-a)·x + a, s⁻¹(y) = (y-a)/(b-a)
然後,調整函數獲取
h(x, Δ) = s(g(s⁻¹(x), Δ) = s(f(f⁻¹(s⁻¹(x)) + Δ)).
一個容易Java的可計算的這種分佈函數將
f(x) = 1 - 0.5 * exp(-x) for 0 ≤ x
f(x) = 0.5 * exp(x) for x ≤ 0
與位數功能
f⁻¹(y) = - log(2 - 2y) for y ≤ 0.5
f⁻¹(y) = log(2 y) for 0.5 ≤ y
大廈從此您的調節功能只是把這些結合在一起。
當然,這僅適用於您的號碼精度的限制 - 你不能任意接近1
優秀,謝謝! – 2011-06-12 10:15:37
我認爲以下應在min/max
input1 = ((input1 - min + input2) % (max - min)) + min;
保持輸入1您可以使用最小/最大像
public static int adjust(int n, int adjust, int min, int max) {
return adjust0(n, adjust, min+1, max-1);
}
private static int adjust0(int n, int adjust, int trueMininum, int trueMaximum) {
return Math.max(trueMininum, Math.min(trueMaximum, n + adjust));
}
這將允許您調整自己的價值觀,並相信這將是分鐘之間和最大值但從來沒有這些值。
這肯定不會*達不到最大或最小*。 – 2011-06-11 17:36:45
如果它從未達到最大值或最小值,那麼它不是最大值或最小值。我會更新這個例子。 ;) – 2011-06-11 17:42:29
- 1. 縮放功能
- 2. 功能增量
- 3. HighCharts.StockChart移除縮放功能
- 4. Java健身功能 - 縮放
- 5. 顏色縮放功能
- 6. Matplotlib imshow縮放功能?
- 7. iphone視頻縮放功能
- 8. 圖形和縮放功能
- 9. Javascript Gmaps縮放功能
- 10. QWidget上的縮放功能
- 11. Jframe上的縮放功能?
- 12. Highcharts刪除縮放功能
- 13. TiledScrollView的捏放縮放功能
- 14. VCS增量細化功能
- 15. sqlite自動增量功能
- 16. 使用增量時間縮放對象?
- 17. 滾動視圖內縮放縮放功能
- 18. 在功能縮放,線性迴歸後重新縮放
- 19. 不縮放特定子元素的縮放功能
- 20. 拖放功能增強在AngularJS
- 21. d3縮放行爲。以小增量增加刻度
- 22. 加快ImageView中的縮放功能
- 23. Android:ImageView具有完整縮放功能
- 24. v4中的d3縮放功能問題
- 25. jqplot縮放功能不起作用
- 26. SVMlight中是否有縮放功能?
- 27. d3縮放和平移懸停功能
- 28. 創建縮放圖像...功能
- 29. 加入放大縮小功能
- 30. Highstock - 全部按功能縮放
什麼是對輸入2的限制?如果input2可以大於'max'或小於'-1 * min',那麼處理這個的規則是什麼? – SubmittedDenied 2011-06-11 15:02:28
input2> 1,你的功能需要處理保持結果之間的最小和最大 – 2011-06-11 15:06:47
我還不清楚。如果'input1 = 0.7','max = 0.75'和'input2 = 2.25',結果應該是什麼? – SubmittedDenied 2011-06-11 15:15:38