概率函数
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)];
}
如何创建概率函数,在两个字符串之间进行选择 概率范围在 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)];
}