简体   繁体   中英

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

I am having mathematics oriented question.Here i like to get the all possible combinations and looking to store in array.

For example:-

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

I am having formula to find number of possibilities ie 10^n -1 .But i don't know how can i get the values.

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

} 

the function result should be

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

in array

not like

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

EDIT

I also like to mix some alphabets with the number

results like

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

Thanks in advance

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

yes, there is no integer start with zero

so, dun bother to construct an array start with leading zero ,
when you need to output str_pad can be applied


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;
}

You can't have an integer that is 0000 because that is just 0 .

To get all numbers from 0 to 9 use the range() function :

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

And alike for bigger numbers.

If you want them as strings use sprintf or related to reformat that array.

Or just use a for( loop :)

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;

} 

How about:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM