2011-05-09 97 views
3

老实说,我不能想到要搜索什么,但我试过的东西没有得到任何结果,所以我很抱歉,如果它已被问到。减少数字的公式

这不仅仅是一个数学问题,而是一个编程问题,但我正在用JavaScript来完成它,它似乎很合适。

我想要做的是减少数字越高。例如,10可能会减少到9,而100可能会减少到20.我尝试过使用数字本身和分割,但显然这只是返回一个固定的数字。我也尝试过简单的划分,但是所有这一切都减少了过多的数字,并且对比较高的数字影响不大。有没有公​​式可以使用JavaScript的Math对象来做到这一点?

+1

目前还不清楚你想从你的问题措辞中做什么。你只是想减少给定的数量一些随机数量? 'x = x - (x-1);' – mVChr 2011-05-09 04:33:56

回答

4

从你给了两个例子,你可能会寻找一个decilog规模:

function reduce(x) { 
    return 10 * Math.log(x)/Math.LN10 ; 
} 

对于你的例子,

reduce(100) = 20 
reduce(10) = 10 
+0

完美!感谢您的快速响应。现在我拥有了一些新的东西。干杯! – Ruffy 2011-05-09 04:37:58

+0

请注意,这会增加任何数字<10。 – mVChr 2011-05-09 04:42:34

1

一些数学函数,可以是一些援助,是

  1. 平方根(或一般的任何根)
  2. 日志功能(对于可满足您的扩展需求的基础)

将这些结果或输入乘以常数和/或将值添加到结果或输入中,然后将将能够拿出相当数量的缩放选择。

你甚至可以考虑结合这些功能。

一个快速的方式来看看你决定的功能将如何缩放数字,将是在图形计算器(或wolframalpha.com)输入它们,并看到图形的各种输入。

1

最后,良好的用例Wolfram Alpha的:

http://www.wolframalpha.com/input/?i=best+fit+[10%2C+9]%2C+[100%2C+ 20]