2011-06-17 4 views
2

Je suis ayant mathématiques orienté question.Ici j'aime obtenir toutes les combinaisons possibles et cherche à stocker dans le tableau.Comment créer un tableau pour la probabilité possible (combinaisons) pour un nombre donné en PHP

Par exemple: -

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

Je formule pour trouver nombre de possibilités i.e. 10^n -1 .Mais je ne sais pas comment puis-je obtenir les valeurs.

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

} 

le résultat de la fonction doit être

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

dans le tableau

pas comme

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

EDIT

J'aime aussi mélanger alphabets avec le nombre

résultats comme

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

Merci à l'avance

+0

Vous pouvez compter de 0 à 10^5 -1 et ajouter des zéros à gauche si nécessaire. –

+0

Je pense que tout mettre dans un tableau est la mauvaise solution ici. Vous utiliserez probablement les valeurs de tableau * une à la fois *, alors pourquoi les précalculer et pas simplement les générer dans une boucle si nécessaire? – Jon

+1

'2 chiffres = 99 (00,01,02,03, ...)' <- Pourquoi ça? Quel numéro n'est pas compté? Je vois que '00' est compté, je suppose que' 99' est aussi compté, donc il y a 100 combinaisons, pas 99. – binaryLV

Répondre

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

oui, il n'y a pas de départ entier avec zero

donc, Dún la peine de construire un tableau commence avec les plus grands zero,
lorsque vous avez besoin à la sortie str_pad peut être appliqué


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); 
+0

j'ai besoin de résultats dans le tableau .can vous donnez la suggestion – Gowri

+0

les résultats sont déjà dans le tableau ... pas tout à fait sûr de ce qui manque encore? – ajreal

+0

Merci ça marche. – Gowri

1

Vous ne pouvez pas avoir un nombre entier égal à 0000 parce que c'est juste 0.

Pour obtenir tous les chiffres de 0 à 9 utiliserthe range() function:

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

Et aussi bien pour les grands nombres.

Si vous les souhaitez en tant que chaînes, utilisez sprintf ou associé pour reformater ce tableau.

Ou tout simplement utiliser une boucle for( :)

2
$result = array(); 
$count = pow(10,$x); 
for ($i = 0, $i < $count, $i++) { 
    $result[] = str_repeat('0', $x - strlen($i)) . $i; 
} 
0
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; 

} 
0

Que diriez-vous:

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