2014-08-27 1 views
0

SMS에서 단축 링크를 보내려면 Base32 인코딩과 함께 yoururls를 사용하고 있습니다. URL 앞에는 메시지가오고 SMS는 160 자로 제한되고 메시지는 약 140 자이므로 문자 수에 대해 매우주의해야합니다.이 구성에 몇 개의 URL이 있습니까?

내 질문은 이것입니다. Base32 인코딩을 사용하여 4 자 제한에 맞출 수있는 URL의 수를 계산하려면 어떻게합니까?

답변

0

permutations에 대해 묻는다면 잘 모르겠습니다.

base32 인코딩의 각 문자는 32 개의 값 ([A - Z] 및 [2 - 7])을 가질 수 있습니다. http://yoursite.com/xxxx 양식을 사용하는 경우 xxxx은 짧은 URL이고 4 자리 숫자는 32 순열을 포함 할 수 있습니다. 즉, 1,048,576입니다.

당신은 또한 세 자리 숫자 (예를 들어 http://yoursite.com/xxx)와 URL을 포함하는 경우

, 당신은 32 3 순열을 가질 수 있습니다. 즉, 32,768입니다. 4 자리 URL과 함께 1,081,344의 합계를 얻습니다.

두 자리 URL (예 : http://yoursite.com/xx)을 사용하는 경우 추가 1,024 개의 URL이 있으며 총 1,082,368입니다. 한 자리 숫자 (예 : http://yoursite.com/x)를 추가하면 32 점이 추가됩니다. 총액은 1,082,400입니다.


하지만 [A - Z]와 [2 - 7] 만 사용할 필요는 없습니다. RFC3986에 따라 문자 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~:/?#[]@!$&'()*+,;=을 사용할 수 있습니다. 그것은 84 개의 다른 문자입니다. 이것으로 :

http://yoursite.com/xxxx    49,787,136 
http://yoursite.com/xxx added   50,379,840 (+592,704) 
http://yoursite.com/xx added   50,386,896 (+ 7,056) 
http://yoursite.com/x added   50,386,980 (+  84) 

당신은 정말로 단축 URL에 맞지 않기 때문에, 당신은 여전히 ​​62 개 문자를 얻을 것이다, 문자 -._~:/?#[]@!$&'()*+,;=을 떠날 경우에도 마찬가지입니다. 그 번호 :

http://yoursite.com/xxxx    14,776,336 
http://yoursite.com/xxx added   15,014,664 (+238,328) 
http://yoursite.com/xx added   15,018,508 (+ 3,844) 
http://yoursite.com/x added   15,018,570 (+  62) 
+0

종합적인 답변을 주셔서 감사합니다. A-Z가베이스 32에 속해 있다는 부분을 제외하고는 좋았습니다. 당신이 a-z를 의미한다고 생각합니다. 어쨌든, 당신이 내가 그것을 이해하도록 도왔을 때 현상금을 당신에게 줄 것입니다. –

+0

감사합니다. @Michael. [RFC4648 : Base16, Base32 및 Base64 데이터 인코딩] (http://tools.ietf.org/html/rfc4648)은 대문자를 사용하기 때문에 대문자를 사용하기로 결정했습니다. RFC의 표 3을 참조하십시오. – Krumia

+0

정상적으로 이해하고 고맙습니다. –

관련 문제