簡體   English   中英

如何在PHP中為給定數字創建可能的概率(組合)數組

[英]How to create array for possible probability (combinations) for given number in php

我有一個面向數學的問題。在這里,我想獲得所有可能的組合並希望以數組形式存儲。

例如:-

1 digit = 10 (0,1,2,3,....9) 
2 digit = 100 (00,01,02,03,...)

我有公式來查找可能性的數量,即10^n -1 。但是我不知道如何獲得這些值。

function get_combinations(5){
//10^5 -1 = 99999 values 

} 

函數結果應該是

00000,00001,00010,00100,....

在數組中

不喜歡

0,1,2,... 00,01,03,... 99999

編輯

我也喜歡把一些字母和數字混在一起

結果像

0000a,000a1,000z1,00001,00000,....

提前致謝

$n = ???;
$array = range(0, pow(10, $n)-1);

是的,沒有以zero開頭的整數

因此,不願意構造一個以zero開頭的數組,
當您需要輸出str_pad可以應用


function get_combinations($n)
{
  return range(0, pow(10, $n)-1);
}

$array = get_combinations(5);
$pad   = strlen(max($array));

// to output
echo str_pad($array[0], $pad, 0, STR_PAD_LEFT);
$result = array();
$count = pow(10,$x);
for ($i = 0, $i < $count, $i++) {
  $result[] = str_repeat('0', $x - strlen($i)) . $i;
}

您不能有一個整數0000因為它只是0

要獲取0到9之間的所有數字,請使用 the range() function

$array = range(0,9); // array(0,1,2,3,4,5,6,7,8,9)

對於更大的數字也是如此。

如果希望將它們用作字符串,請使用sprintf或將其重新格式化為該數組。

或者只是使用for(循環:)

function get_combinations($exp){

    $max = pow(10, $exp) - 1;

    for ($i = 0; $i <= $max; $i++) $comb[] = str_pad($i, $exp, '0', STR_PAD_LEFT);

    return $comb;

} 

怎么樣:

$n = 3;
function format($x) {
    global $n;
    return sprintf("%0${n}d", $x);
}
$arr = array_map('format', range(0, pow(10,$n)-1));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM