如果您知道'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. Highcharts刪除縮放功能
- 3. Jframe上的縮放功能?
- 4. Matplotlib imshow縮放功能?
- 5. 圖形和縮放功能
- 6. 顏色縮放功能
- 7. TiledScrollView的捏放縮放功能
- 8. 使用jQuery縮放雙擊功能
- 9. d3縮放和平移懸停功能
- 10. Jpanel中的放大和縮小功能
- 11. Nodejs縮放和優化功能
- 12. 禁用UIWebView的放大縮小功能
- 13. D3Js樹佈局自動縮放功能
- 14. C#GDI +圖片縮放功能
- 15. 增長/縮放VB.NET表格
- 16. 縮放DB2以增加tps
- 17. 開發增量+1功能的問題
- 18. 線程安全,無鎖增量功能?
- 19. 拖放增量8?
- 20. 如何實現這種縮放和縮小功能
- 21. 自定義縮放imageview縮放功能不工作scaletype中心裏面
- 22. 如何設置縮放縮放功能並點擊返回上一個活動?
- 23. 新增功能與新增功能(以malloc爲特色)
- 24. Emacs縮進功能
- 25. 縮小JavaScript功能
- 26. 在縮小/縮小地圖時禁用縮放/增加折線
- 27. 增量變動的變量的每一個功能運行
- 28. 兩個按鈕的一個功能(增量,減量)
- 29. 的JavaScript增加功能
- 30. Restkit 10.0:新增功能
什麼是對輸入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