تالار گفتمان nCIS.ir

نسخه‌ی کامل: قرعه کشی
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام

میخواستم یه سیستم قرعه کشی بنویسم به این صورت هست که هر فرد میتونه از هر دسته بندی فقط یدونه انتخاب کنه و هر دسته یک امتیاز محسوب میشه به نظرم شما چطوری بصورت رندم انتخاب کرد افرادی که تعداد بیشتری امتیاز دارن وزن یا شانس بیشتری برای برنده شدن داشته باشن ؟
(29-10-1399، 12:21 ق.ظ)farazsahebdel نوشته: [ -> ]سلام

میخواستم یه سیستم قرعه کشی بنویسم به این صورت هست که هر فرد میتونه از هر دسته بندی فقط یدونه انتخاب کنه و هر دسته یک امتیاز محسوب میشه به نظرم شما چطوری بصورت رندم انتخاب کرد افرادی که تعداد بیشتری امتیاز دارن وزن یا شانس بیشتری برای برنده شدن داشته باشن ؟

<?php
function getMostPriority(array $arr) {
$rand = mt_rand(1, (int) array_sum($arr));

foreach ($arr as $key => $value) {
 $rand -= $value;
 if ($rand <= 0) {
   return $key;
 }
}
}

$arr = array(
'Ali' => '80',
'Bahram' => '90',
'Hasan' => '30',
'Erfan' => '40'
);

echo getMostPriority($arr, 'priority');

با این کد میتونی کاربری که امتیاز بیشتری داره بصورت تصادفی انتخاب کنی (امتیاز بیشتر احتمال انتخاب شدن بالاتر)
الان احتمال برنده شدن بهرام و بعد علی و عرفان بیشتره