有什么方法可以撰寫一個僅將 $size 作為引數并回傳具有 $size 隨機值的陣列的函式?
到目前為止,我的方法使用初始陣列作為引數:
function rand_vector (array $arr, int $size): array {
if (count($arr) == $size) return $arr;
array_push($arr, random_int(0, 30));
return rand_vector ($arr, $size);
}
uj5u.com熱心網友回復:
如果不需要遞回,您可以創建一個單行,在其中給出最大值和計數。
$randomSize = fn($size, $max) => array_map(fn($max) => random_int(0, $max), range(1, $size));
print_r($randomSize(20, 10));
輸出
0-10 的 20 個值
Array
(
[0] => 0
[1] => 1
[2] => 3
[3] => 4
[4] => 2
[5] => 0
[6] => 4
[7] => 0
[8] => 2
[9] => 7
[10] => 7
[11] => 3
[12] => 10
[13] => 4
[14] => 8
[15] => 1
[16] => 3
[17] => 5
[18] => 10
[19] => 3
)
uj5u.com熱心網友回復:
與其將輸入陣列$size與基本情況進行比較,$size=0不如將其用作基本情況。$size然后在進行遞回呼叫時減去 1 。然后該函式生成一個亂數并將其推送到遞回呼叫回傳的陣列中。
function rand_vector(int $size): array {
if ($size == 0) {
return [];
}
$temp = rand_vector($size-1);
$temp[] = random_int(0, 30);
return $temp;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515673.html
標籤:php数组递归
上一篇:Task.WhenAll與for回圈相比,遞回結果不一致
下一篇:列出所有中間重復結果
