>> Delete Reply from No. 0 article
No. RE: tar에 관한 잡다한 팁 몇가지

등록 2002-02-15 19:30:00     조회 4
이름 단n키    

		### 부가 설명
 ## split 에서 숫자를 세는 방식
 우선 십진수와 형식을 비교해 봅니다.
 1자리수에서 2자리수로 넘어가는 형태
  0  1  2  3  4  ...  9 10 11 ...
 aa ab ac ad ae  ... az ba bb ...
 여기서 a는 숫자 0,  b는 1 ... z는 25가 되고 26가지가 됩니다.
 따라서 split에서 세는 방법은 26진수가 됩니다.(어찌 보면 당연한 것을 --;;)
 그렇지만 aa는 실제로 0이 아니라 1입니다.
 그래서 실제로는 위의 형태가 아래처럼 한자리씩 밀려나는 형태로 바뀝니다.
  0  1  2  3  4  ...  9 10 11 ...
 ? aa ab ac ad      ay az aa
    1  2  3  4  ... 25 26 27
 수식으로 표현하자면
 split에서 사용되는 26진법은 십진수로 이런 방식으로 치환됩니다.
 yza -->  (26^2 * 24) + (26^1 * 25) + (26^0 * 0) + 1
 그런데 문제가 있습니다.
 .... yx yy yz .. za .. zz 여기까진 문제가 없습니다만..
 다음 숫자 baa 가 (이게 맞긴 한걸까 --;;) 만들어진다면... 알파벳 순서로는 숫자의 순서가 
뒤바뀌게 됩니다.  그래서 split에서는 좀더 이상한(--;;)형태로 숫자를 셉니다.
     aa      ab      ac ...     yz    # 십진수로 650(25*26)까지
  zaaa    zaab    zaac ...   zyzz    # + 25*26*26
  zzaa    zzab    zzac ...   zzyz    # + 25*26
zzzaaa  zzzaab  zzzaac ... zzzyzz    # + 25*26*26
.
.
.
 조금 변경해서 쓰면
    /       /       /           /
   / aa    / aa    / ac ...    / yz
  z/aaa   z/aab   z/aac ...   z/yzz
 zz/ aa  zz/ aa  zz/ ac ...  zz/ yz
zzz/aaa zzz/aab zzz/aac ... zzz/yzz
 이렇게 일정한 패턴이 계속됩니다.
 이제는 알파벳순과 숫자순서가 같게됩니다.
 세는 방식이 달라진 만큼 십진수로 바꾸는 방법도 조금 달라집니다.
 우선 "/" 앞에 있는 'z'의 갯수에 따라 이전 까지 있던 숫자가 달라지게 되는데..
 "/" 앞에 있는 z의 갯수를 zt라고 자연수라고
 없으면 :   25*26 * 0    +  25*26*26 * 0       #   0 + 0 = 0
z      :   25*26 * 1    +  25*26*26 * 0       #   1 + 0 = 1
zz     :   25*26 * 1    +  25*26*26 * 1       #   1 + 1 = 2
zzz    :   25*26 * 2    +  25*26*26 * 1       #   2 + 1 = 3
.
.
.
zt     :   25*26 * (zt-(zt/2))  + 25*26*26 * (zt/2)  # zt-(zt/2) + zt/2 = zt
  # zt/2 에서의 나머지는 버립니다.
  이렇게 되고
 우선 z가 한 개면
 zaaa = (25*26*1 + 25*26*26*0) + (26^2*0 + 26^1*0 + 26^0*0  + 1)
zyzz = (25*26*1 + 25*26*26*0) + (26^2*24 + 26^1*25 + 26^0*25  + 1)
 이됩니다.
 좀 색다른 방식이어서 이것때문에 스크립트가 엄청길어졌습니다.
 그렇지만 두자의 숫자로 표현할 수 있는 것이 십진수는 100가지인데 반해
split방식은 650개까지 표현 할 수 있다는데 의미를 두어야할 것 같습니다.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved