提高折扣的渐进非线性算法

Bor*_*nov 3 algorithm math

一个系统必须支持100个用户,支持的价格是3

系统必须支持10 000个用户,支持价格为1

我必须设计一个算法来给我两者之间的价格,所以它会随着用户数逐渐增加.

我试图将用户数乘以0.0002得到折扣价值,我得到了

300位用户*0.0002 = 0.06折扣,因此支持价格= 2.94总收入= 300*2.94 = 882

5000个用户*0.0002 = 1个折扣,因此支持价格= 2总收入= 5000*2 = 10 000

8000个用户*0.0002 = 1.6折扣,因此支持价格= 1.4总收入= 8000*1.4 = 11 200

10 000名用户*0.0002 = 2折扣,因此支持价格= 1总收入= 8000*1.4 = 10 000

所以你看到一个给定的点后,我实际上有更多的用户,但收到的付款较少.

我不是数学家,我现在这不是一个编程问题,但我不知道在哪里可以提出这个问题.如果有人可以帮我提供任何信息,我将不胜感激.谢谢!

Pol*_*ial 5

price = n * (5 - log10(n))会为...工作100 < n < 10000.

只需确保使用base-10 log而不是自然(base-e)日志.如果您的语言没有正常的10-log日志,您可以这样计算:
function log10(x) { return log(x)/log(10); }.

对于100个用户,这是100 * (5 - log10(100))给出的100 * (5 - 2),即300.

对于1000级的用户,这是1000 * (5 - log10(1000)),这给1000 * (5 - 3),这是2000.

对于10000个用户,这是10000 * (5 - log10(10000))给出的10000 * (5 - 4),即10000.

让我们选择一些随机数字.
2500用户:2500 * (5 - log10(2500))给我们2500 * (5 - 3.39794),这是4005.
6500用户:6500 * (5 - log10(6500))给我们6500 * (5 - 3.81291),这是7716.
8000用户:8000 * (5 - log10(8000))给我们8000 * (5 - 3.90309),这是8775.

应该为你正在建模的东西做好准备.