문자(이름)에 고유 번호 넣는 방법
글쓴이: wodnrrns / 작성시간: 화, 2013/05/07 - 12:01오후
간단한 웹 APP 을 만들어보려고 하는데요.
사람 이름을 입력하면, 고유한 결과를 보여주고 싶습니다.
가령 오늘의 운세라고 한다면,
그 이름을 입력하면 언제나 같은 결과가 나왔으면 좋겠는데,
이름만을 가지고 KEY로 사용하려니 어렵네요. 분포는 대략 3000건 정도인데,
그냥 바이트 배열로 바꿔서 숫자로 변경하자니.. 한쪽으로 치우칠것 같고...
질문이 좀 장황하네요,
간추려보면, 사람이름 입력이 왔을때 동일한 결과값을 보여주고 싶습니다. 그리고 Case 가 총 3000건 정도인데, 한쪽으로 치우치지 않고
고르게 보여줄 수 있는 방법이 있을까요?
Forums:
이름을 input으로 hash하면 되겠네요.
이름을 input으로 hash하면 되겠네요.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
답변 감사드립니다.
정해진 이름군이 있다면 말씀하신것과같이 할 수 있을텐데요,
위에 말씀드린것곽 타이 web app 형태로 만들고 사람들이 접속해서 이름을 치면 해당 결과로 연동되는 형태로
개발할거라 미리 어떤 인풋이 들어올지는 모르는 상태여서 hash 하는게 어떤 의미가 있을지 모르겠네요.
input 이 고정이라면 hashing table 만들어놓고 맵핑 시키면 되겠지만요..
echo wodnrrns | md5sum -b >
echo wodnrrns | md5sum -b > results.txt
a2cb3f99ebccf1b8c8421ae48c95167c *-
요런 cryptographic hash를 말씀하시는 듯합니다. 이런 거라면 웬만해서는 안 겹칠 테니까요.
음 ..
이름을 input 으로 hash 함수를 돌리고, 특정 범위의 숫자(예, 0 ~ 3000) 가 나오도록 modulation 해서, 이걸 결과의 index 로 활용..
동일한 이름에 대해서는 항상 동일한 값이 나올 테고.. 결과에 대한 distribution 은 hash 함수를 어떤 걸로 하느냐에 따라 다르겠지만..
적당히 검색해서 아무거나 골라 써도 별 문제는 없는 상황 같네요.
md5 나 sha 같은 거 돌려서 나온 값에, mask 씌워서 원하는 범위가 되도록 잘라낸다거나.. 뭐.. 아래 링크처럼 적당히 만들어도 되겠네요.
http://www.linuxquestions.org/questions/programming-9/hash-function-in-c-595021/
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기