您的位置:

php按照比例随机(php生成随机数)

本文目录一览:

php 如何随机生成指定数字和概率?

亲,你可以这样做呦!~~

如果只有这三个数,是不好弄出 0:85%  1:5%  2:10%的

但是你如果想提高某个数字出现的概率,你可以适当让这个数组增多。

你可以这样写:

?php

// 定义一个数组,里面有85个0

$num0 = array_fill(0, 85, 0); 

// 定义一个数组,里面有5个1

$num1 = array_fill(1, 5, 1); 

// 定义一个数组,里面有10个2

$num2 = array_fill(2, 10, 2); 

// 总数组,里面总共100个元素

$allNum = array_merge($num0, $num1, $num2);

// 随机取一个元素

$randKey = array_rand($allNum);

$randnum = $allNum[$randKey];

// 以上就可以实现出现0的概率是85% 出现1的概率是5% 出现2的概率是10%了,因为一共一百个数,里面有85个是0, 5个是1, 10个是2

希望可以帮到你呦!~如果有不正确的地方,欢迎指正!~~

本人博客: ,欢迎交流学习!~~

PHP生成随机数的几种方法

php生成随机数的几种方法,总结如下:

第一种方法,非常简单,直接使用系统自带的函数:

查看代码1 srand((double)microtime()*1000000);

2 //随机产生0-99之间的整数

3 $randval=rand(0,99999999);

4 echo $randval,'

';

5

6

第二种方法,稍微复杂一点,不只是生成只有数字的随机字符串,更包括了各种特殊字符:

查看代码

function randomkeys($length){

$output='';

for($a=0;$a$length; $a++){

$output.=chr(mt_rand(33, 126));

}

return $output;

}

echo randomkeys(20);

怎么控制PHP生成随机数的百分比?

$n=rand(0,9);

if ($n=0 $n=7) //这就是80%

echo $me_array[rand(0,4)];

else echo $me_array[rand(5,9)];

php 按比例输出随机数怎么实现

//概率分布

function Probability($ar) {

  $total = array_sum($ar);

  foreach($ar as $k=$v) {

    $n = rand(1, $total);

    if($n = $v) return $k;

    $total -= $v;

  }

  return $k;

}

 

$k = array(

  array(9,19),

  array(21,29),

  array(31,39),

  array(41,49),

);

 

$d = array(60,25,10,5);

 

for($i=0; $i100; $i++) {

  $t = Probability($d);

  @$r[join('-',$k[$t])]++;

  do {

    $n = rand($k[$t][0] , $k[$t][1]);

  }while($t == 0  $n == 10);

  echo " $n";

}

//ksort($r);

print_r($r); //验证算法的有效性

php 表里面按百分比概率提取某个字段值出现一个该如何实现?

不知道php里有没有random函数,如果有的话,你可以通过random函数(取值小于1的均匀分布函数)再乘以100判断,若其小于等于10,则select A,若10-35则B,若35-65则C,若65-100则DPS:你百分比总和不为100厄,可能最后一个错了吧?