100개의 난수를생성해서 해시테이블을 만드는건데요
난수범위는 0부터100만까지 크게 해놓고 테이블 사이즈는 101과 211일때경우를 차례대로 찍어내야하는데요
난수생성을 한후로 어떻해 테이블을 만드는지 감이안옵니다 조건이 해싱은 세게의 디지트 단위로 FOrding을 적용한후 나눗셈을 해야하구요 충돌 발생시 Quadratic_Probing 과 연결리스트를 이용하라는데 너무 힘이드네요
도와주세요 ㅜㅜ
전 질문이 이해 안되네요.
난수는 해쉬맵 만드는데 들어가는 조건이 아닐테구..
테이블 사이즈 101 ??? 테이블 사이즈는 보통 정해 주지 않나요?
----------------------- 과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라. 그리고 내일을 알고 싶으냐? 그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동 "만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
100개의 난수를 만든 후 해시테이블을 만들어라.
조건 1: 난수는 0과 100만사이의 수를 만들것 조건 2: 테이블 사이즈는 101과 211을 사용하여 두가지 경우에 대하여 테이블에 있는 내용들을 차례로 찍어낼것. 조건 3: 충돌(Collision)이 발생할 경우 1. Quadratic_Probing과 2. 연결리스트를 이용하여 해결할 것. 조건 4. 해싱 함수는 세 개의 디지트 단위로 Folding을 적용한 후 나눗셈을 적용할 것
이게 제가해야할껍니다 근데 어떻해야할지 막막하네요
bucket 이야 101개나 211개의 배열로 만들면 되고 bucket 마다 linked list로 데이터를 넣고..
bucket을 찾아가는 룰에 조건4를 적용하면 되고 linked list를 탐색하는 부분에 조건3에 대한걸 적용하면 됩니다.
막막하면 다른 해시테이블 구현을 보시거나 네이버에서 검색해보면 블로그들에 소스코드까지 다 있습니다. 과제이신가봐요?
검색을 아무리해도 관련 소스코드 구하기가 쉽지않군요 과제가 맞긴 합니다 근데손을 못쓰겠어요 버킷사이즈 101로 잡아놨고 100크기의 배열을 잡아서 난수를 다저장했습니다 그다음에 뭐 어찌해야할지 손을 못대겠군요
C++로 한다면..
대략
typedef list<int> DataList; typedef DataList::iterator DataListIter; DataList hashTable[101]; // 값 입력. int value = rand(); int key = hashFunc( value ); DataList[key].push_back( value ); // 값 출력. for( int i = 0 ; i < 101 ; ++i ) { cout << "hashTable[" << i << "] : "; for( DataListIter iter = hashTable[i].begin() ; iter != hashTable[i].end() ; ++iter ) { cout << *iter << " "; } cout << endl; }
일것 같습니다. ----------------------- 과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라. 그리고 내일을 알고 싶으냐? 그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
전체적인 코드를 보고싶습니다 이것만 보기엔 해석하기가 너무 힘드네요 ㅜㅜ
으음. 전체적인 코드면 다 코딩하는것인데..
그것까지는 좀^^
위의것을 대략적이예요.. 참고만 하세요^^
C언어로할려면..
리스트를 구현 해야겠죠.
hashFunc 함수는 저장한 값을 hash된 값을 반환하는것입니다.
c언어로 구현중인데 연결리스트를 어떻해 할줄 몰라서 막막합니다 오늘까지 만들어야하는데
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
인용: 난수범위는
전 질문이 이해 안되네요.
난수는 해쉬맵 만드는데 들어가는 조건이 아닐테구..
테이블 사이즈 101 ???
테이블 사이즈는 보통 정해 주지 않나요?
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
이해가안가시나요~
100개의 난수를 만든 후 해시테이블을 만들어라.
조건 1: 난수는 0과 100만사이의 수를 만들것
조건 2: 테이블 사이즈는 101과 211을 사용하여 두가지 경우에 대하여
테이블에 있는 내용들을 차례로 찍어낼것.
조건 3: 충돌(Collision)이 발생할 경우
1. Quadratic_Probing과
2. 연결리스트를 이용하여 해결할 것.
조건 4. 해싱 함수는 세 개의 디지트 단위로 Folding을 적용한 후 나눗셈을
적용할 것
이게 제가해야할껍니다 근데
어떻해야할지 막막하네요
bucket 이야 101개나
bucket 이야 101개나 211개의 배열로 만들면 되고
bucket 마다 linked list로 데이터를 넣고..
bucket을 찾아가는 룰에 조건4를 적용하면 되고 linked list를 탐색하는 부분에 조건3에 대한걸 적용하면 됩니다.
막막하면 다른 해시테이블 구현을 보시거나 네이버에서 검색해보면 블로그들에 소스코드까지 다 있습니다.
과제이신가봐요?
답변은 감사합니다
검색을 아무리해도 관련 소스코드 구하기가 쉽지않군요
과제가 맞긴 합니다
근데손을 못쓰겠어요
버킷사이즈 101로 잡아놨고
100크기의 배열을 잡아서
난수를 다저장했습니다
그다음에 뭐 어찌해야할지 손을 못대겠군요
C++로
C++로 한다면..
대략
일것 같습니다.
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
감사합니다만...
전체적인 코드를 보고싶습니다 이것만 보기엔 해석하기가 너무 힘드네요 ㅜㅜ
으음. 전체적인
으음. 전체적인 코드면 다 코딩하는것인데..
그것까지는 좀^^
위의것을 대략적이예요.. 참고만 하세요^^
C언어로할려면..
리스트를 구현 해야겠죠.
hashFunc 함수는 저장한 값을 hash된 값을 반환하는것입니다.
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
흑흑 전체코드가 보고싶네요 ㅜㅜ
c언어로 구현중인데
연결리스트를 어떻해 할줄 몰라서 막막합니다
오늘까지 만들어야하는데
댓글 달기