View Full Version : سیستم قرعه کشی با احتساب امتیازات هر کاربر
H:Shojaei
سه شنبه 10 شهریور 1394, 17:42 عصر
سلام...
یه سیستم قرعه کشی که قراره بین چندین نفر از ۲ نفر تا زیر ۱ میلیون نفر باید انجام بشه که هر کدوم از افراد یه امتیاز هم دارن که باید تو نتیجه قرعه کشی دخالت داده بشه...
مثلا یک کاربر امکان داره ۱ امتیاز و یک کاربر دیگه ۵۰ امتیاز داشته باشن بهترین و امنترین و غیر قابل پیشبینی ترین راه واسه این کار چیه!؟
us1234
سه شنبه 10 شهریور 1394, 20:23 عصر
یک آرایه در نظر بگیرید که هر شخص به میزان امتیاز هایش در این آرایه آیتم دارد .
با یک تابع رندوم از این آرایه آیتم انتخاب کنید ...
H:Shojaei
سه شنبه 10 شهریور 1394, 20:44 عصر
خوب این که ساده ترین و اولین راهیه که به ذهن میرسه...
الگوریتم دیگه ای چیزی نداره!؟ قرعه کشی واسه پوله یکم حساسه (هرچند rand مشکلی نداره و قابل اطمینانه ولی الگوریتم دیگه باشه ترجیها بهتره...)
و یه چیز دیگه این که اگر قرار باشه هر کاربر به عنوان عدد شانس مثلا یه عدد بفرسته که توی قرعه کشی تاثیر بذاره این رو چطور میشه انجام داد!؟
us1234
چهارشنبه 11 شهریور 1394, 10:24 صبح
خوب این که ساده ترین و اولین راهیه که به ذهن میرسه...
الگوریتم دیگه ای چیزی نداره!؟ قرعه کشی واسه پوله یکم حساسه (هرچند rand مشکلی نداره و قابل اطمینانه ولی الگوریتم دیگه باشه ترجیها بهتره...)
و یه چیز دیگه این که اگر قرار باشه هر کاربر به عنوان عدد شانس مثلا یه عدد بفرسته که توی قرعه کشی تاثیر بذاره این رو چطور میشه انجام داد!؟
مشکل شما تابع rand نیست . چون به سادگی میشود چند پارامتر دیگر را هم در تابع رندوم اعمال کرد که مطمئن شویم مشکلی بابت احتمال وجود ندارد ( مثلا استفاده 5 بار پشت سر هم برای بست آوردن شاخص رندوم یا ... )
مشکلی اصلی با روشی که گفتم با بزرگی اعداد است . مثلا اگر امتیاز شخص 5000 شود باید 5000 آیتم درست کنید که معقول نیست .
برای این کار باید تابع توزیع چگالی احتمال را به دست بیارید و با آن تابع احتمال هر شخص را محاسبه کنید و سپس شروع انتخاب رندوم کنید .
من آمار و احتمالات زیاد یادم نیست ولی دنبال همین مطلب بگرد
توزیع چگالی احتمال
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.