2011-12-07 2 views
0

enter image description here이 문자열에서 문자의 위치를 ​​가져 오는 수학 공식은 무엇입니까?

위의 전체 문자열은 string-1 및 string-2라는 두 개의 다른 문자열을 결합한 형태입니다. 두 문자열의 길이는 모두 32 자입니다. 다른 두 매개 변수는 간격크기입니다. string-1은 길이가 이고 길이가이고 문자열 -2는 길이가 인 크기으로 분할되어 전체 문자열을 구성합니다. 문자열 -2의 모든 조각을 전체 문자열에 넣으면 문자열 1의 조각이 전체 문자열에 채워집니다. 크기 변수

가능한 값은 2, 4, 8, 간격 가변 16 개
가능한 값 : 모든 값 1 변수

내 요건이다 크기 값 전체 문자열을 원래의 2 개의 문자열로 분리하지 않고 문자열 -1의 n 번째 문자의 수학 수식 가져 오기 색인 (전체 문자열에서)을 작성합니다.

위의 전체 문자열에서 문자열 -1의 다섯 번째 문자를 가져 오려면 '2'이고 전체 문자열의 색인은 입니다. 이고, '1' 인 6 번째 문자의 색인은 입니다.

P. 문자의 인덱스는 0 인덱스 으로 계산되며, n 번째 문자는 내가 다른 곳과 여기에 공유에서 대답을 얻었다 N

답변

0

1에서 계산됩니다.

PHP 코드 : 귀하의 예와

min(32,(floor($n/$interval)*$size))+$n 
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 
관련 문제