mehran2000_544
دوشنبه 23 شهریور 1388, 23:04 عصر
با سلام.
فرض کنید لیستی از اعداد تکراری داریم و می خواهیم یک عدد را به تصادف انتخاب کنیم به نحوی که عددی که بیشتر از همه تکرار شده، بیشترین شانس انتخاب شدن و عددی که کمتر از همه تکرار شده، کمترین شانس انتخاب شدن را داشته باشه.
راه حلی که خودم در نظر دارم اینه که لیست اعداد را ابتدا Sort کنیم و سپس در هم Merge کنیم به نحوی که کاملاً به هم ریخته شود و سپس از تابع Random Generator عددی تصادفی را بگیریم و به تعداد همان عدد تصادفی، لیست در هم ریخته را پیمایش کنیم.
در این صورت عددی که حاصل می شود، در عادلانه ترین حالت ممکن به پیروزی رسیده است.
من این برنامه را برای سیستم قرعه کشی یک فروشگاه می خوام بنویسم به نحوی که افرادی که بیشترین مبلغ خرید را در ماه داشته اند، بیشترین شانس برنده شدن جایزه را داشته باشند.
به نظر شما این راه حل مناسب است؟
اگر نیست، چه راه حلی پیشنهاد می کنید.
اگر هست، چه راه حلی را برای در هم ریختن لیست با بهترین کیفیت پیشنهاد می کنید؟
با سپاس...
فرض کنید لیستی از اعداد تکراری داریم و می خواهیم یک عدد را به تصادف انتخاب کنیم به نحوی که عددی که بیشتر از همه تکرار شده، بیشترین شانس انتخاب شدن و عددی که کمتر از همه تکرار شده، کمترین شانس انتخاب شدن را داشته باشه.
راه حلی که خودم در نظر دارم اینه که لیست اعداد را ابتدا Sort کنیم و سپس در هم Merge کنیم به نحوی که کاملاً به هم ریخته شود و سپس از تابع Random Generator عددی تصادفی را بگیریم و به تعداد همان عدد تصادفی، لیست در هم ریخته را پیمایش کنیم.
در این صورت عددی که حاصل می شود، در عادلانه ترین حالت ممکن به پیروزی رسیده است.
من این برنامه را برای سیستم قرعه کشی یک فروشگاه می خوام بنویسم به نحوی که افرادی که بیشترین مبلغ خرید را در ماه داشته اند، بیشترین شانس برنده شدن جایزه را داشته باشند.
به نظر شما این راه حل مناسب است؟
اگر نیست، چه راه حلی پیشنهاد می کنید.
اگر هست، چه راه حلی را برای در هم ریختن لیست با بهترین کیفیت پیشنهاد می کنید؟
با سپاس...