如果您知道'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