PDA

View Full Version : سوال: تبدیل عدد به عدد دیگر



Mr.Dead
یک شنبه 31 اردیبهشت 1391, 00:19 صبح
سلام.
چه طوری میشه یک عدد رو به عدد دیگه تبدیل کرد به طوری که x را به y تبدیل کنه و y عددی است که از 1 شروع میشود.و اگر y را به برنامه بدهیم x را برگرداند(در ضمن از سیستم ذخیره و بازیابی و پایگاه داده استفاده نکنیم.)

مسعود اقدسی فام
یک شنبه 31 اردیبهشت 1391, 12:58 عصر
سلام.
چه طوری میشه یک عدد رو به عدد دیگه تبدیل کرد به طوری که x را به y تبدیل کنه و y عددی است که از 1 شروع میشود.و اگر y را به برنامه بدهیم x را برگرداند(در ضمن از سیستم ذخیره و بازیابی و پایگاه داده استفاده نکنیم.)

متوجه سوالتون نشدم. کمی مبهم بود.

Mr.Dead
یک شنبه 31 اردیبهشت 1391, 23:45 عصر
متوجه سوالتون نشدم. کمی مبهم بود.
یعنی مثلا عدد 300 رو به برنامه میدی 1 رو بت برگردونه و اگه 1 رو به برنامه بدی 300 رو برگردونه.

soorena
دوشنبه 01 خرداد 1391, 08:45 صبح
سلام

یک تبدیل یک به یک کار شما رو راه میندازه فقط باید بگید برای چی‌ میخواید شاید بشه بیشتر کمک کرد.

Mr.Dead
دوشنبه 01 خرداد 1391, 20:07 عصر
سلام

یک تبدیل یک به یک کار شما رو راه میندازه فقط باید بگید برای چی‌ میخواید شاید بشه بیشتر کمک کرد.

میخوام شماره دانشجویی رو به سیستم بدم و سیستم یک عدد به عنوان کد کاربری از 1 تا 4000 به من برگردونه.و اگه من کد کاربری رو به سیستم دادم همون شماره دانشجویی رو برگردونه.(با همان اوصافی که بالا گفتم.)

Negin.cs
دوشنبه 01 خرداد 1391, 20:25 عصر
سلام

شما باید از Hash استفاده کنین
ببینید:

http://en.wikipedia.org/wiki/Perfect_hash_function

"A perfect hash function for a set S is a hash function that maps distinct elements in S to a set of integers, with no collisions."

همایون افشاری
دوشنبه 01 خرداد 1391, 20:43 عصر
شما باید از Hash استفاده کنین
hash خاصیت یک به یک بودن رو نداره. (یک طرفه است!)
تنها راه اینه که از یه map استفاده کنید (مثلا آرایه 4000 تایی) یا اینکه ممکنه بشه با توجه به مقدار ورودی ها (شماره دانشجویی) یه تابع یک به یک تعریف کرد که این حالت کاملا وابسته مقادیریه که استفاده می کنید.

soorena
دوشنبه 01 خرداد 1391, 21:18 عصر
سلام

استفاده از هش امکان پذیر نیست چون یکطرفه هستش میتونی‌ از map استفاده کنی‌ ولی‌ خوب یک سری محدودیت‌ها برات ایجاد می‌شه یک راه دیگه اینه که عدد رو تبدیل به متن کنی‌ که خوب متن کوتاهتری خواهد شد ضمن اینکه برگشت پذیره مثلا یک عدد ۱۰ رقمی‌ تبدیل به ۵ تا کارکتر بشه که خوب کوتاهتره بعد این کارکتر‌ها رو ذخیره کنی‌ ولی‌ در نهایت اگه خیلی‌ این قضیه مهم هستش برات میتونی‌ از همون تبدیل‌های ۱ به ۱ که گفتم استفاده کنی‌ مثلا از BWTS که تو فشرده سازی استفاده می‌شه البته باید مقالش رو بخونی‌ و با یک کم دستکاری میتونی‌ برای خودت بنویسی‌.یک راه دیگه هم استفاده از اعداد اول هستش که این روش رو من زیاد بلد نیستم و یک کم هم پیچیده هستش.