首页 > 解决方案 > 模数?从序列索引中获取组索引

问题描述

我有一个 64 个项目的序列。我需要将它们以 4 人一组的形式组织起来,而这些 4 人一组则以 4 人为一组。

我正在寻找一种算法,该算法将采用序列索引并返回其组内的索引和父组 grup 索引。

我显然也想学习如何解释这些事情。我确信有一些数学术语更有意义。也许最好用例子来解释:

Index -> Returns

0 -> 1.1.0      
1 -> 1.1.1      
2 -> 1.1.2      
3 -> 1.1.3      
4 -> 1.2.0      
5 -> 1.2.1      
6 -> 1.2.2      
7 -> 1.2.3      
8 -> 1.3.0      
9 -> 1.3.1  
.......    
60 -> 4.4.0    
61 -> 4.4.1    
62 -> 4.4.2    
63 -> 4.4.3

标签: c#algorithmsorting

解决方案


假设 6 映射到 1.2.2 和 7 映射到 1.2.3 和 9 映射到 1.3.2 那么你可以使用这个:

(int First, int Second, int Third) GetSequence(int index)
{
    int first = 1;
    int second = 1;
    int third = 0;

    third += (index % 4);
    second += (index / 4) % 4;
    first+= (index / 16) % 4;

    return (first, second, third);
}

推荐阅读