概率函数

Probability function

如何创建概率函数,在两个字符串之间进行选择 概率范围在 1/3, 1/2, 1/1, 2/1, 3/1

我的值来自介于 -2 和 2 之间的滑块

这是我的代码:

$out = array('str1','str2');
$out = $out[array_rand($out)];

我想要这样的东西:

$val = 0; //-2=1/3, -1=1/2, 0=1/1, 1=2/1, 2=3/1 

function random_str($val){
  ...
  retunt $myRandomValue; //str1 or str2
}

[已编辑]

好的,这是我能做到的程度。 这个功能正是我想要的。 但我的问题从一开始就是: 如何简化这个功能?

function random_str($val){
   if($var == '-2') { $out = array('str1','str2','str2','str2'); }else
   if($var == '-1') { $out = array('str1','str2','str2'); }else
   if($var ==  '0') { $out = array('str1','str2',); }else
   if($var ==  '1') { $out = array('str1','str1','str2'); }else
   if($var ==  '2') { $out = array('str1','str1','str1','str2'); }
   retun $out[array_rand($out)];
}

好吧,在这里我只能把自己的名声搞得一团糟,但无论如何我在Whosebug Portugal

中得到了很好的帮助

这是一个很好的解决方案:

function random_str($val){
    // padrão
    $out = array('str1', 'str2');

    while ($var != 0) {

        // menor que zero
        if ($var < 0) {
            array_push($out, 'str2');
            $var++;
        } else { // maior que zero
            array_push($out, 'str1');
            $var--;
        }
    }
    return $out[array_rand($out)];
}