在C++中以"对数"距离生成整数范围内的"N"个数字集

usm*_*man 4 c c++ arrays algorithm

我找不到这个问题的确切答案,所以我在这里发布:如果我有一个整数范围,我想在这个范围内以相等的对数距离计算"N"数.

下面是一个示例代码,用于查找等于"非对数"距离(或多或少)的数字:

const int N = 100; // total no of sizes to generate
const int LOW = 10; // range low-bound
const int HIGH = 1000000; // range upper-bound
int SIZES[N];
int GAP = (HIGH-LOW)/N;
SIZES[0] = LOW + GAP;
for(int i=1; i<N; ++i)
{
   SIZES[i] = SIZES[i-1] + GAP;
}
Run Code Online (Sandbox Code Playgroud)

但是,我想在"对数"距离处找到此范围内的"N"个数字.

ltj*_*jax 10

我只能猜测你真正想要的是对数刻度.

在这种情况下,不是添加常数GAP,而是乘以常数FACTOR.该因子可通过解方程被发现LOW*FACTOR^N=HIGHFACTOR.

事实证明解决方案是HIGH/LOW的第N个根.