给定一个列表索引,我如何在数学上找到该元素的块和块索引 在 Rootish ArrayStack 中



例如,假设我得到了大量的i作为列表索引,并想弄清楚列表索引中的元素对应于Rootish ArrayStack中的哪个块和块索引。例如:

List index i = 8, I know that I am in block r = 3 and within that block, I am at index 2

由于这个列表索引很小,我可以用 Rootish ArrayStack 的小草图进行计算,但对于更大的列表索引,这不再是一个合理的选择。有没有某种数学方程可以插入我的列表索引并解决这个问题?

谢谢

术语:i 表示索引(在示例中 = 8),b 表示块 (3),j 表示 b (2) 中的索引

  1. 解决天花板 b; (B+1)(b+2)/2 = i+1; (仅正根适用)
  2. 求解 j; j = i - b*(b+1)/2;

示例:对于您提供的情况;i=8

  1. 第一个二次的根为 -6,3(天花板后)=> 选择 3
  2. j = 8-6=2

使用固定二次,您可以提出一个公式来求解正根。

最新更新