mmdsharifi
جمعه 23 خرداد 1393, 11:57 صبح
سلام
من تازه با هش آشنا شدم و باید برای یک پروژه ساختمان داده که ساخت BST با فایل تکست هست،بایستی خط به خط فایل رو بخونم و (کلمه انگلیسی و معنی فارسی) و کلمه ها شو هش کنم و با hash_value که بهم می ده BinarySearchTree رو بسازم.
public int Hash(string word)
{
if (word != null)
{
int h = 1;
for (int i = word.Length -1; i>=0 ; i--)
{
h += (((word[i]) % 97) + 1) * (word.Length - i);
}
return h;
}
return 0;
}
این تابع هش خودمه.اولین مشکلی که به نظر می رسه اینکه واسه حالتهای مختلف یک کلمه مثل ali اعداد متفاوتی رو می ده.
ail,34
ali,37
lai,48
lia,56
ایا این احتمال وجود داره،که با وجود این همه تدابیر! باز هم برای دو کلمه متفاوت یک هش یکسان بما بده؟
شما چه هش فانکشن رو پیشنهاد می دید؟
من تازه با هش آشنا شدم و باید برای یک پروژه ساختمان داده که ساخت BST با فایل تکست هست،بایستی خط به خط فایل رو بخونم و (کلمه انگلیسی و معنی فارسی) و کلمه ها شو هش کنم و با hash_value که بهم می ده BinarySearchTree رو بسازم.
public int Hash(string word)
{
if (word != null)
{
int h = 1;
for (int i = word.Length -1; i>=0 ; i--)
{
h += (((word[i]) % 97) + 1) * (word.Length - i);
}
return h;
}
return 0;
}
این تابع هش خودمه.اولین مشکلی که به نظر می رسه اینکه واسه حالتهای مختلف یک کلمه مثل ali اعداد متفاوتی رو می ده.
ail,34
ali,37
lai,48
lia,56
ایا این احتمال وجود داره،که با وجود این همه تدابیر! باز هم برای دو کلمه متفاوت یک هش یکسان بما بده؟
شما چه هش فانکشن رو پیشنهاد می دید؟