가중치 랜덤 구하기

Jmnote (토론 | 기여)님의 2012년 4월 1일 (일) 21:11 판 (→‎PHP)


PHP 함수

function weighted_random($weights)
{
  $r = rand(1, array_sum($weights));
  for($i=0; $i<count($weights); $i++) {
  $r -= $weights[$i];
  if($r < 1) return $i;
  }
  return false;
}

위 함수를 이용하여 a, b, c 중 하나를 랜덤으로 선택하되, 그 확률이 10:20:70이 되도록 해보자.

$values = array('a','b','c');
$weights = array(10,20,70);
$index = weighted_random($weights);
$result = $values[$index];
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}