IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

A la recherche d'un algo [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut A la recherche d'un algo
    Bonjour,

    je suis à la recherche d'un algorithme permettant de réaliser le calcul suivant :

    Pour faire simple, je modélise mon problème de la sorte : j'ai 5 quantités nommées q1 à q5 et un nombre noté n. Je voudrais récupérer n au plus parmi ces quantités. Voici quelques exemples :

    n=10
    q1=1 q2=3 q3=0 q4=0 q5=3
    =>je recupère q1 q2 et q3 soit 7 en tout
    n=10
    q1=5 q2=5 q3=5 q4=5 q5=5
    =>je recupère q1=2 q2=2 q3=2 q4=2 q5=10 soit 10 en tout
    n=10
    q1=0 q2=0 q3=3 q4=3 q5=20
    =>je recupère q3=3 q4=3 q5=4 soit 10 en tout
    Voilà, je précise que mes quantités sont dans un tableau assoc rangées par ordre de grandeur par ex:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tab['q3'] = 2;
    $tab['q1'] = 5;
    $tab['q4'] = 6;
    $tab['q2'] = 11;
    $tab['q5'] = 14;

    Si quelqu'un a une piste pour moi

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    n=10
    q1=1 q2=3 q3=0 q4=0 q5=3
    =>je recupère q1 q2 et q3 soit 7 en tout
    Si je fait q1+q2+q3, j'obtient 4
    =>je recupère q1=2 q2=2 q3=2 q4=2 q5=10 soit 10 en tout
    Si je fait q1+q2+q3+q4+q5 j'obtient 13
    =>je recupère q3=3 q4=3 q5=4 soit 10 en tout
    C'est seulement là que j'obtient 10.
    Que veux tu faire exactement

  3. #3
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Oups exact j'ai mal géré mes exemples j'étais crevé

    En fait je cherchais à récupérer sur 5 quantités tout si mon nombre était inférieur à la somme de ces quantités (cas simple) ou alors à récupérer équitablement des sommes sur ces quantités pour arriver à mon nombre.

    Mais bon j'ai réussi hier soir même si je trouve pas ma méthode très propre

    Merci

  4. #4
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    C'est peut etre clair dans ta tête, ce que tu souhaite faire.

    mais si tu veux de l'aide, va falloir expliquer mieux que sa...

  5. #5
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par thebarbarius Voir le message
    C'est peut etre clair dans ta tête, ce que tu souhaite faire.

    mais si tu veux de l'aide, va falloir expliquer mieux que sa...
    Non c'est bon j'ai réussi. Mon seul "regret" est de ne pas avoir fait mon calcul d'une seule traite et d'être passé par une boucle.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    	        $bois=0;
    		$pierre=0;
    		$fer=0;
    		$gold=0;
    		$nourriture=0;
     
    		$tab_ressources = array('bois', 'pierre', 'fer', 'gold', 'nourriture');
     
    		while(true){
     
    			//Moyenne a recupérer par ressource
    			if(!empty($tab_ressources))
    				$nb = (int)($fret_attaquant_total_restant / count($tab_ressources));
    			else
    				break;
     
    			if($nb == 0)
    				break;
     
    			foreach($tab_ressources as $cle)
    				if($pillage[$cle] > $nb){
    					$pillage[$cle] -= $nb;
    					${$cle} += $nb;
    					$fret_attaquant_total_restant -= $nb;
    				}else{
    					${$cle} += $pillage[$cle];
    					$fret_attaquant_total_restant -= $pillage[$cle];
    					$pillage[$cle] = 0;
    					unset($tab_ressources[$cle]);
    				}
     
    		}


    En gros pour un jeu, j'avais une variable $fret_attaquant_total_restant représentant la capacité (volume) qu'a un attaquant pour piller les ressources du defenseur suite à un combat réussi.
    1) Soit il peut piller tout -> cas simple
    2) Soit il ne peut pas piller tout et il doit récupérer homogénement les ressources du défenseur d'où ma demande d'algo mais j'ai réussi entre 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/01/2011, 11h17
  2. recherche code en algo
    Par elaljg dans le forum Débuter
    Réponses: 1
    Dernier message: 01/11/2008, 14h25
  3. Optimisation et Recherche opérationnelle : quel algo ?
    Par temar dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 01/04/2006, 16h46
  4. recherche algo de génération de nombre aléatoire
    Par Pascale38 dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 14h20
  5. Recherche algo tree
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/05/2002, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo