begin process at 2012 05 29 00:11:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

combinaison de 3 chiffres sur 20 emplacements ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

combinaison de 3 chiffres sur 20 emplacements ?

mercredi 25 mars 2009 à 02:20:15 | combinaison de 3 chiffres sur 20 emplacements ?

fjx

Bonjour à tous,

Je cherche à produire la liste des combinaisons de trois chiffres sur 20 emplacements différents...
je m'explique :
j'ai les chiffre 1, 2 et 3 que je veux lister sur 20 emplacements possibles,
exemple :
1,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1,2,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0
....
0,0,0,1,0,2,0,0,0,0,0,0,0,0,3,0,0,0,0,0
0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3
......
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,2,1
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,2,1

J'ai beau essayer mais je plante et le pc aussi d'ailleur

Sachant aussi, que çà pourrait servir pour 3, 4 ou 5 chiffres...

Merci pour votre aide,
Pierre.



mercredi 25 mars 2009 à 22:47:21 | Re : combinaison de 3 chiffres sur 20 emplacements ?

kohntark

Membre Club
Salut Fjx,

Peut être avec un truc comme ça :

$nb_chiffre = 3;
$arr = array_fill(1, 20, 0);

for ($i=1; $i <= $nb_chiffre; $i++) {
  $arr[rand(1,20)] = $i;
}


en principe le PC devrait ne pas planter ... et toi non plus (?)

Cordialement,

Kohntark -

jeudi 26 mars 2009 à 01:28:30 | Re : combinaison de 3 chiffres sur 20 emplacements ?

fjx

Bonjour Kohntark,

ce n'est pas tout à fait ce que je souhaiterai.

En fait, je souhaiterai obtenir dans un tableau ou autre,
la liste complète de toutes les combinaisons possibles de 1, 2 et 3 sur les 20 places.

Merci pour ton aide,
Cordialement,
Pierre


jeudi 26 mars 2009 à 13:24:29 | Re : combinaison de 3 chiffres sur 20 emplacements ?

olive73

Salut,

moi je vois le truc comme ça :
Exemple sur 2 emplacements

C1   C0
0       0
0       1
0       2
0       3
1       0
1       1
1       2
1       3
2       0
2       1
2       2
2       3
3       0
3       1
3       2
3       3


Ca te fais 4^2 possibilités.
Donc sur 20 emplacements ça te donne 4^20 soit 1099511627776 possibilités.

Ensuite tu fais 20 tableaux, un par colonne + un tableau élément.

$tab_elemt = array(0, 1, 2, 3);


// Tableau col 0
for ($i=0;$i<=1099511627776;){
    $tab_c0[$i] = $tab_elemt[0];
    $tab_c0[$i+1] = $tab_elemt[1];
    $tab_c0[$i+2] = $tab_elemt[2];
    $tab_c0[$i+3] = $tab_elemt[3];
    $i = $i+4;
}


// Tableau col 1
for ($i=0;$i<=1099511627776;){
    for ($j=0;$j<=4;$j++){
        $tab_c1[$i+$j] = $tab_elemt[0];
    }
    for ($j=4;$j<=8;$j++){
        $tab_c1[$i+$j] = $tab_elemt[1];
    }
    for ($j=8;$j<=12;$j++){
        $tab_c1[$i+$j] = $tab_elemt[2];
    }
    for ($j=12;$j<=16;$j++){
        $tab_c1[$i+$j] = $tab_elemt[3];
    }
    
    $i = $i+bcpow(4, 2);    // Avec 4: nb element et 2: n° de colonne+1
}

// Tableau col 2
for ($i=0;$i<=1099511627776;){
    for ($j=0;$j<=16;$j++){
        $tab_c2[$i+$j] = $tab_elemt[0];
    }
    for ($j=16;$j<=32;$j++){
        $tab_c2[$i+$j] = $tab_elemt[1];
    }
    for ($j=32;$j<=48;$j++){
        $tab_c2[$i+$j] = $tab_elemt[2];
    }
    for ($j=48;$j<=64;$j++){
        $tab_c2[$i+$j] = $tab_elemt[3];
    }
    
    $i = $i+bcpow(4, 3);    
}

Etc... pour les tableaux suivants.

jeudi 26 mars 2009 à 17:37:29 | Re : combinaison de 3 chiffres sur 20 emplacements ?

fjx

Bonjour Olive73,
l'idée y est, mais incroyablement lourd.

sinon j'ai peut-être quelques choses dans le genre :



$tab_elemt = '0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0';
$combinaison = '';
$io = 20; $yo= 19; $a=1;    $i=0; $o=0;
while($i <= $io){
    $tab_elemt1 = explode ('-', $tab_elemt);
    $tab_elemt1[$i] = 1;
    $tab_elemt1[$o] = 2;
    $tab_elemt1[$a] = 3;
    $tab_elemt2 = implode ('-', $tab_elemt1);
    $test = explode ('-', $tab_elemt2);
    $tot = array_sum($test);
    if ($tot==6){
    $combinaison[] = $tab_elemt2;
    }
$i++;   
    if($i == $yo){$a++; $i=0;}
    if ($a == $yo){$o++; $a=0;}
    if ($o > $yo){$i=23;}
}

$a=1;    $i=0; $o=0;
while($i <= $io){
    $tab_elemt1 = explode ('-', $tab_elemt);
    $tab_elemt1[$i] = 1;
    $tab_elemt1[$o] = 3;
    $tab_elemt1[$a] = 2;
    $tab_elemt2 = implode ('-', $tab_elemt1);
    $test = explode ('-', $tab_elemt2);
    $tot = array_sum($test);
    if ($tot==6){
    $combinaison[] = $tab_elemt2;
    }
$i++;   
    if($i == $yo){$a++; $i=0;}
    if ($a == $yo){$o++; $a=0;}
    if ($o > $yo){$i=23;}
}

$a=1;    $i=0; $o=0;
while($i <= $io){
    $tab_elemt1 = explode ('-', $tab_elemt);
    $tab_elemt1[$i] = 2;
    $tab_elemt1[$o] = 1;
    $tab_elemt1[$a] = 3;
    $tab_elemt2 = implode ('-', $tab_elemt1);
    $test = explode ('-', $tab_elemt2);
    $tot = array_sum($test);
    if ($tot==6){
    $combinaison[] = $tab_elemt2;
    }
$i++;   
    if($i == $yo){$a++; $i=0;}
    if ($a == $yo){$o++; $a=0;}
    if ($o > $yo){$i=23;}
}

$a=1;    $i=0; $o=0;
while($i <= $io){
    $tab_elemt1 = explode ('-', $tab_elemt);
    $tab_elemt1[$i] = 2;
    $tab_elemt1[$o] = 3;
    $tab_elemt1[$a] = 1;
    $tab_elemt2 = implode ('-', $tab_elemt1);
    $test = explode ('-', $tab_elemt2);
    $tot = array_sum($test);
    if ($tot==6){
    $combinaison[] = $tab_elemt2;
    }
$i++;   
    if($i == $yo){$a++; $i=0;}
    if ($a == $yo){$o++; $a=0;}
    if ($o > $yo){$i=23;}
}

$a=1;    $i=0; $o=0;
while($i <= $io){
    $tab_elemt1 = explode ('-', $tab_elemt);
    $tab_elemt1[$i] = 3;
    $tab_elemt1[$o] = 1;
    $tab_elemt1[$a] = 2;
    $tab_elemt2 = implode ('-', $tab_elemt1);
    $test = explode ('-', $tab_elemt2);
    $tot = array_sum($test);
    if ($tot==6){
    $combinaison[] = $tab_elemt2;
    }
$i++;   
    if($i == $yo){$a++; $i=0;}
    if ($a == $yo){$o++; $a=0;}
    if ($o > $yo){$i=23;}
}

$a=1;    $i=0; $o=0;
while($i <= $io){
    $tab_elemt1 = explode ('-', $tab_elemt);
    $tab_elemt1[$i] = 3;
    $tab_elemt1[$o] = 2;
    $tab_elemt1[$a] = 1;
    $tab_elemt2 = implode ('-', $tab_elemt1);
    $test = explode ('-', $tab_elemt2);
    $tot = array_sum($test);
    if ($tot==6){
    $combinaison[] = $tab_elemt2;
    }
$i++;   
    if($i == $yo){$a++; $i=0;}
    if ($a == $yo){$o++; $a=0;}
    if ($o > $yo){$i=23;}
}


$combinaison = array_unique($combinaison);
$nbb = count($combinaison);

echo $nbb;
    echo '<pre>';
        print_r($combinaison);
    echo '</pre>';

Celà me donne 6840 combinaisons ...
Quelqu'un peut-il me confirmer ou infirmer?

Merci pour votre aide,
Pierre.


Cette discussion est classée dans : chiffres, aussi, combinaison, emplacements


Répondre à ce message

Sujets en rapport avec ce message

serveur CVS !? [ par ec4 ] c'est ptet pas le bon endroit pour ke les webmaters mentendent mais bon... je leur ecrirai directement si y a pas de reponse...Pour ceux ki savent pas colorer le texte dynamiquement [ par DARCH ] Bonjour,je me demande un truc tout bete mais qui est pas forcement a mettre dans le phorum php. Aussi toutes mes excuses si j'ai derrangé quelqu'un.Da Enregistrer un fichier envoyé à partir d'un formulaire [ par Totofweb ] SalutIl me faut envoyer un fichier par formulaire. dans mon formulaire j'ai mis ceci : ...... chiffres après la virgule [ par Xuor ] salutj'ai un petit problème, comment faire pour limiter le nombre de chiffre après la virgule quand on affiche un reel qui est stocké dans une variabl Codes Php pour des news et autre... [ par Boby_ ] Bonjour,je cherche les codes Php pour les news,et les tests etc.Pour un site sur les jeux vidéos vous comprenez?Et j'aimerais aussi avoir quelle est l ereg aide sur les different masque ?! [ par amosc ] amos salut tt le monde,j ai une chaine de caractere $prest et je voudrai savoir à l aide de la fonction ereg si son contenu contien les caractere de " récupérer les 7 premiers chiffre de l'IP [ par pyranhaz ] Bonjour,J'aimerais pouvoir récupérer seulement les 7 premiers chiffres de $REMOTE_ADDR;C'est possible ???mon script anti-aspirateur serait davantage e Expression rationnelle [ par perig ] Bonjours (j'espère que malgré le design du new site du monde est resté)voici mon probceci : $chaine_MEP = ereg_replace("\[c\]([^\[]*)\[/c\]", "<div al Sum [ par ksinteractive ] Bonjour,je cherche a faire la SUM d'une colonne mais il y a des chiffres positifs et negatifs et je veut faire la sum uniquement des chiffres positif.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,635 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales