在php中获取随机值,其中必须有精确的数量
我有一个问题,我需要php中的随机值。这一切我都做得很好。但是当我需要,比方说,10个随机值时,我需要其中8个至少是某个整数。我怎样才能做到这一点? 亲切问候,, 利昂在php中获取随机值,其中必须有精确的数量,php,Php,我有一个问题,我需要php中的随机值。这一切我都做得很好。但是当我需要,比方说,10个随机值时,我需要其中8个至少是某个整数。我怎样才能做到这一点? 亲切问候,, 利昂 但是,我需要在矩阵的上半部分正好有8个1。我不知道如何实现它,因为现在它将执行8以下的随机数。我将采用另一种方法: 有$vertices*($vertices-1)/2个位置需要填充(10) 应该有$edges时间1,其余0(8和2) 您可以用8个1和2个0填充数组 洗牌数组 在你的矩阵上循环,为你需要填充的每个位置弹出一个数
但是,我需要在矩阵的上半部分正好有8个1。我不知道如何实现它,因为现在它将执行8以下的随机数。我将采用另一种方法:
- 有
$vertices*($vertices-1)/2个
位置需要填充(10)
- 应该有
时间$edges
,其余1
(8和2)0
- 您可以用8个
和2个1
填充数组0
- 洗牌数组
- 在你的矩阵上循环,为你需要填充的每个位置弹出一个数组元素
(如10,8)可以更改。你如何创建一个可以使用它的数组?我如何洗牌数组?我想这可能真的可以,谢谢!我现在有一个洗牌数组。我只是想说你可以使用array\u fill
生成两个0和1的数组并合并它们。shuffle()
结果和完成:-)
<?php
$vertices = $_POST["vertices"];
echo "Vertices: $vertices <br>";
$edges = $_POST["edges"];
echo "Edges: $edges <br>";
$length = $_POST["length"];
echo "Length: $length <br><br>";
$temp1 = $edges;
for($x = 0; $x < $vertices; $x++){
for($i = 0; $i < $x; $i++){
echo "_ ";
}
for($y = $x; $y < $vertices; $y++){
$value = rand(0,1);
if($x == $y){
echo "0 ";
} else {
if($value == 1 && $temp1 > 0){
echo "1 ";
$temp1--;
} else {
echo "0 ";
}
}
}
echo "<br>";
}
?>
<html>
</font>
</html>
Vertices: 5
Edges: 8
Length: 4
0 0 1 0 1
_ 0 0 1 0
_ _ 0 1 0
_ _ _ 0 1
_ _ _ _ 0