begin process at 2012 02 10 22:20:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Algorithme

 > 

Maths

 > 

Problème de logique...pourtant c'est tout con, j'en suis sur


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

Problème de logique...pourtant c'est tout con, j'en suis sur

lundi 12 juin 2006 à 14:46:53 | Problème de logique...pourtant c'est tout con, j'en suis sur

Horfee

Voilà en fait je dois réaliser un calcul :

je dispose d'une étude. Une étude comporte X avions. chaque avions comporte X moteurs.
On arrive a ce shéma :
       A1                           A2                         A3
   /     |       \                /      |      \               /      |      \
M1   M2   M3        M1   M2   M3       M1   M2   M3

Chaque moteur comporte des informations que je dois fusionner. Pour simplifier, on va dire que chaque moteur comporte un entier y.
Il faut ensuite que je calcule les différentes simulations : une simulation est l'addition de y de chaque moteur : je dois pour celà prendre y du moteur A1M1, que je l'ajoute au y de A2M1 et au y de A3M1, etc.
Et il faut ke je calcule ca pour chaque moteur.
Donc :

y1 = A1M1.y + A2M1.y + A3M1.y
y2 = A1M2.y + A2M1.y + A3M1.y
y3 = A1M3.y + A2M1.y + A3M1.y

y4 = A1M1.y + A2M2.y + A3M1.y
y5 = A1M2.y + A2M2.y + A3M1.y
y6 = A1M3.y + A2M2.y + A3M1.y

y7 = A1M1.y + A2M3.y + A3M1.y
y8 = A1M2.y + A2M3.y + A3M1.y
y9 = A1M3.y + A2M3.y + A3M1.y

y10 = A1M1.y + A2M1.y + A3M2.y
y11 = A1M2.y + A2M1.y + A3M2.y
y12 = A1M3.y + A2M1.y + A3M2.y

y13 = A1M1.y + A2M2.y + A3M2.y
y14 = A1M2.y + A2M2.y + A3M2.y
y15 = A1M3.y + A2M2.y + A3M2.y

y16 = A1M1.y + A2M3.y + A3M2.y
y17 = A1M2.y + A2M3.y + A3M2.y
y18 = A1M3.y + A2M3.y + A3M2.y

y19 = A1M1.y + A2M1.y + A3M3.y
y20 = A1M2.y + A2M1.y + A3M3.y
y21 = A1M3.y + A2M1.y + A3M3.y

y22 = A1M1.y + A2M2.y + A3M3.y
y23 = A1M2.y + A2M2.y + A3M3.y
y24 = A1M3.y + A2M2.y + A3M3.y

y25 = A1M1.y + A2M3.y + A3M3.y
y26 = A1M2.y + A2M3.y + A3M3.y
y27 = A1M3.y + A2M3.y + A3M3.y

Vous me suivez ?
Bon ca sachant que le nombre d'avions n'est pas connu au moment de la compilation, mais seulement au moment de l'execution (ainsi que le nombre de moteurs pour chaque avions)
On peut quand meme connaitre le nombre de resultats ( ici => 27 : Avion1.nbMoteur * Avion2.nbMoteur * ....)

lundi 12 juin 2006 à 15:00:30 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

Bidou

Administrateur CodeS-SourceS
Salut,

int combinaison = Math.Pow(x,y); // ou x = le nombre de moteur par avion (ici apparement tjrs 3) et y le nombre d'avion.

Dans ton cas:
avec 3 avions on aurait Math.Pow(3,3) = 27;
Autres exemples :
avec 2 avions on a Math.Pow(3,2) = 9;
avec 4 avions on a Math.Pow(3,4) = 81;

Si chaque avion peut avoir 4 moteurs et qu'on a 2 avions on a Math.Pow(4,2) = 16;
Evidemment, la formule ne fonctionne que si le nombre de moteur par avion est constant.



VC# forever
lundi 12 juin 2006 à 15:39:08 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

Horfee

non le nombre de moteurs de chaque avion est indépendamment...mais ca c'était pas compliqué...
le truc que j'arrive pas a faire c'est générer la séquence des moteurs à considéré lor du calcul (style un peu une table de verité) :
0,0,0
0,0,1
0,0,2
0,0,3
0,1,0
0,1,1
0,1,2
0,1,3
1,0,0
...
(dans ce cas là le 3eme avion a 4 moteurs, le 2nd en a 2 et le premier en a...(2))

lundi 12 juin 2006 à 15:47:47 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

Bidou

Administrateur CodeS-SourceS
Ben tu fais trois boucles et c'est terminé....



VC# forever
lundi 12 juin 2006 à 15:52:20 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

Bidou

Administrateur CodeS-SourceS

int x = 2;
int y = 4;
int z = 3;

for ( int i = 0; i < x; i++)
{
  
for ( int j = 0; j < y; j++)
   {
     
for ( int k = 0; k < z; k++)
      {
        
Console .WriteLine( "{0},{1},{2}" , i, j, k);
      }
   }
}


0,0,0
0,0,1
0,0,2
0,1,0
0,1,1
0,1,2
0,2,0
0,2,1
0,2,2
0,3,0
0,3,1
0,3,2
1,0,0
1,0,1
1,0,2
1,1,0
1,1,1
1,1,2
1,2,0
1,2,1
1,2,2
1,3,0
1,3,1
1,3,2




VC# forever
lundi 12 juin 2006 à 16:19:11 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

Horfee

nan c pas bon, tu suppose qu'il y a 3 avions...or il se peut qu'il y en ais 20...
lundi 12 juin 2006 à 16:22:17 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

MorpionMx

Membre Club Administrateur CodeS-SourceS
Avec une méthode recursive ca doit etre faisable non ?

Mx
MVP C#
 

lundi 12 juin 2006 à 16:26:04 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

Bidou

Administrateur CodeS-SourceS
Et alors? J'ai posé z=3 pour faire un exemple pratique!
Si tu as bien fait les choses, tes avions sont dans une collection, et tu peux donc sans autre savoir combien y'en a en faisant maCollection.Count.
Evidemment, si maintenant tu as programmé ça n'importe comment à la va-vite tu vas pas t'en sortir... Dans ca cas là, personne ne pourra rien pour toi.



VC# forever
lundi 12 juin 2006 à 16:39:44 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

Horfee

Réponse acceptée !
j'ai trouvé la réponse... et non je n'ai pas programmez ca n'importe comment... et ton z=3 n'a rien avoir... dans le code que tu m'a donné tu fais 3 boucle for, donc s'il fallait que je suive ta méthode avec 20 avions, il me faudrait 20 boucles...
lundi 12 juin 2006 à 16:41:33 | Re : Problème de logique...pourtant c'est tout con, j'en suis sur

MorpionMx

Membre Club Administrateur CodeS-SourceS
Bon, moi j'avais suivi une mauvaise piste je pense :p

Par contre, si tu peux nous donner ta solution, ce serait sympa. Histoire que ca puisse resservir

Mx
MVP C#
 


1 2

Cette discussion est classée dans : a1m1, a2m1, a3m1, a1m2, a1m3


Répondre à ce message

Sujets en rapport avec ce message



Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 0,187 sec (3)

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