上面的完整字符串是两个不同字符串的组合形式,名为string-1和string-2。两个字符串的长度相等,均为32个字符。还有另外两个参数区间和大小。 string-1被分成长度= interval 的片段,string-2被分成长度= size 的片段以形成完整的字符串。将字符串-2的所有部分放入完整字符串后,将字符串-1填充到整个字符串中。
size 变量的可能值为:2,4,8,16 区间变量的可能值为:从1到大小变量值的任何值
我的要求是写一个数学方程式获取索引(以完整字符串形式)第n个字符串-1的字符串,而不将整个字符串分成2个原始字符串。
例如 在上面的完整字符串中,如果我想获取字符串-1的第5个字符,它将是'2',其完整字符串中的索引是 12 。 第6个字符'1'的索引 15 。
P.S。字符的索引从0到索引计算,第n个字符从1到 n 计算
答案 0 :(得分:0)
我从其他地方得到了答案并在此处分享。
PHP代码:
min(32,(floor($n/$interval)*$size))+$n
答案 1 :(得分:0)
index = group_size*group_number + group_offset
where
group_size = size + interval
group_number = floor((character - 1)/interval)
group_offset = (character - 1) % interval
或者
index = (size + interval)*floor((character - 1)/interval) + (character - 1) % interval
举例:
character = 5, interval = 1, size = 2
index = (2 + 1)*floor((5 - 1)/1) + (5 - 1) % 1
= 3*floor(4) + 0
= 12
character = 6, interval = 1, size = 2
index = (2 + 1)*floor((6 - 1)/1) + (6 - 1) % 1
= 3*floor(5) + 0
= 15