老实说,我无法想到要搜索的内容,但我所尝试的内容并没有产生任何结果,所以如果已经提出要求,我会道歉。
这也是一个数学问题,而不是一个编程问题,但我是用JavaScript做的,看起来很合适。
我想要做的是将数字越高越多。例如,10可能会减少到9,而100可能会减少到20。我已尝试使用数字本身和除法,但显然只返回一个固定数字。我也尝试过简单的划分,但是所有这些都减少了数量太少而且对比较高的数字几乎没有影响。有没有使用JavaScript的Math对象执行此操作的公式?
答案 0 :(得分:4)
从您给出的两个示例中,您可能正在寻找一个decilog标度:
function reduce(x) {
return 10 * Math.log(x) / Math.LN10 ;
}
对于您的示例,
reduce(100) = 20
reduce(10) = 10
答案 1 :(得分:1)
可以提供一些帮助的一些数学函数
将这些与将结果或输入乘以常量和/或将值添加到结果或输入相结合,您将能够提供相当数量的缩放选择。
你甚至可以考虑组合这些功能。
快速查看您决定的功能将如何缩放数字,可以在图形计算器(或wolframalpha.com)中输入它们,并查看各种输入的图形。
答案 2 :(得分:1)
最后,Wolfram Alpha的一个很好的用例:
http://www.wolframalpha.com/input/?i=best+fit+ [10%2C + 9]%2C + [100%2C + 20]