fct recursive de permutation ? [algo/C/C++/java/php/...] - Algo - Programmation
Marsh Posté le 16-11-2002 à 16:14:57
c pas de la programmation ton problème c'est de l'algorithmique. Réfléchis à ca et puis tu peux l'implémenter en ce que tu veux
Marsh Posté le 16-11-2002 à 16:23:01
je sais que c'est de l'algo mais je ne trouve quand même pas comment le faire
Marsh Posté le 16-11-2002 à 16:24:08
tu as des cours de stat?
Marsh Posté le 16-11-2002 à 16:24:57
non
Marsh Posté le 17-11-2002 à 14:42:20
qq'un svp ?
Marsh Posté le 17-11-2002 à 16:34:45
a ce ke je compren, tu veu faire un backtracking, donc ta fonction doit etre récursive, ca devrai ressembler a ca :
#include <stdio.h>
#include <conio.h>
long resultat = 0;
void perm (int n)
{
if (n == 0)
printf ("%d\n",resultat);
else
for (int i = n; i > 0 ;i--)
{
resultat *= 10;
resultat += i;
perm (i-1);
resultat /= 10;
}
}
main ()
{
perm (9);
getch();
}
Marsh Posté le 17-11-2002 à 16:37:36
mé attention, o plus ton chiffre est gran, o plus ya de possibilités et o plus ca pren du temp
Marsh Posté le 17-11-2002 à 20:17:33
non je vien d'essayer et ce n'est pas vraiment sa se que je cherhce
c (en lettre par ex)
pour une suite
abcd
toute les possiston possible =>
abcd,abdc,acdb,acbd,adbc,adcb,bacd,badc,bcad,bcda,bdac,bdca,
dacb,dabc,dbca,dbac,dcab,dcba,cbad,cbda,cabd,cadb,cdab,cdba
Marsh Posté le 16-11-2002 à 16:07:48
voila je voudrait avcoir toute les possible de placer une suite de chiffre normalement sur 10 chiffe:
4321,4312,4132,4123,4213,4231,2431,2413,2143,2134,2314,2341
3241,3214,3124,3142,3412,3421,1432,1423,1243,1234,1324,1342
=> j'ai fait une fct en C mais sa doit/peut etre independant du langage:
//mon tab de data est global
void perm(int n)
{
int tmp;
for (tmp=0;tmp<=n;tmp++)
{
if(n==0)break;
affiche();
perm(n-1);
if(tmp!=n)rev (n,n-1);//inverse 2 nbr
}
}
mais le prob c que la fct me donne:
4321,4312,4132,4123,4213,4231,2431,2413,2143,2134,2314,2341
3241,3214,3124,3142,3412,3421 jusque la ok puis
4321 => on reboucle sur les 18 mêmemais il m'en manque tj 6
Message édité par erwan_oops le 17-11-2002 à 14:40:45
---------------
la théorie c quant tout dois fonctionner mais rien ne marche la pratique c quant tout marche mais personne ne c pourquoi ici on fais un bon compromis rien ne marche et personne ne c pourquoi :D