我有兩個查找表,如果可能的話,我想用簡單的數學來消除這兩個查找表。用於生成記錄序列的數學公式
第一個是從數組中的索引到序列{0} => 1,{1,2} => 2,{3,4,5} => 3,s.t.的映射。有一個1中,兩個2S,三個3S,等等或視覺:
lookup1[N] = {
1,
2, 2,
3, 3, 3,
4, 4, 4, 4,
5, 5, 5, 5, 5,
6, 6, 6, 6, 6, 6,
7, 7, 7, 7, 7, 7, 7,
8, 8, 8, 8, 8, 8, 8, 8,
...
}
第二個是用於增加序列,所述第一序列是(1),第二(1,2),所述第三(1 ,2,3)。這就像一個模數週期,但是在每個週期後都會增加。目測:
lookup2[N] = {
1,
1, 2,
1, 2, 3,
1, 2, 3, 4,
1, 2, 3, 4, 5,
1, 2, 3, 4, 5, 6,
1, 2, 3, 4, 5, 6, 7,
1, 2, 3, 4, 5, 6, 7, 8,
1, 2, 3, 4, 5, 6, 7, 8, 9,
...
}
這些需要從索引映射。對於第二次查找,輸入5,4,3分別映射到3,2,1。
是否有任何數學公式會產生這些模式?我寧願執行一些指令,而不是執行內存訪問。