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

时间:2016-02-06 02:00:10

标签: java arraylist indexing data-structures

假设例如我被赋予了一个大数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的小草图进行计算,但对于更大的列表索引,这不再是一个合理的选择。是否有某种数学方程式,我可以插入我的列表索引并解决此问题?

由于

1 个答案:

答案 0 :(得分:0)

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

  1. 解决天花板b; (b + 1)(b + 2)/ 2 = i + 1; (只有正根适用)
  2. 解决j; j = i - b *(b + 1)/ 2;
  3. 示例:对于您提供的案例; I = 8

    1. 第一个二次方具有根-6,3(在天花板之后)=>选择3
    2. j = 8-6 = 2
    3. 使用固定的二次方法,您可以得出一个公式来求解正根。