我不是 100% 确定您在寻找什么,但您可以使用一个简单的等式,例如:
f(x) = floor(x c ) 其中 c > 1
您可以将 c 设置为提供所需陡度的任何数字。例如。对于 c = 1.5,您将有:
0, 1, 2, 5, 8, 11, 14, 18, 22, 27, 31, 36, 41, 46, 52, 58, 64, 70, 76, 82, 89, 96, 103, 110, 117, 125...
要调整不同的起始值 s,只需执行 f(x, s) = floor(x c ) + s。
另一种可能的功能是由一系列陡峭度逐渐增加的线组成。例如,这是一条由线段组成的“抛物线”:
f(x, s) = 0.5cd(地板(x/d)) 2 + 0.5cd(地板(x/d)) + c(地板(x/d) + 1)(x mod d) + s
其中 c 和 d 是您选择的常数 (≥ 1)(并且推导有点烦人)。c是初始线的斜率,d表示线段的长度。s 再次是起始值。例如,让 s = 100, c = 3, d = 4,你有以下序列(对于 x = 0, 1, 2, ...):
100, 103, 106, 109, 112, 118, 124, 130, 136, 145, 154, 163, 172, 184, 196, 208, 220, 232, 247...
现在,如果我们想要“整数”,我们会将 c 和 s 设置为“整数”。但是如果我们想从一个开始计数,我们可以定义如下:
g(x) = x when x = 0, 1, 2, 3, 4
= f(x - 5, 5) when x ≥ 5
因此,如果 c = 5 且 d = 5,我们有如下序列:
0, 1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 95, 110, 125, 140, 155, 175, 195, 215, 235, 255, 280, 305, 330, 355, 380, 410, 440, 470, 500, ...
*当然,要在给定的最大值之前停止,只需在函数返回大于所需最大值的数字时停止评估函数。