Algorithme, compositions de longueur
mryapados
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
baladur13 Messages postés 47808 Date d'inscription Statut Modérateur Dernière intervention -
baladur13 Messages postés 47808 Date d'inscription Statut Modérateur Dernière intervention -
bonsoir
Avant toute chose et pour info à M. baladur13 le modérateur, ceci n'est pas un devoir, ça fait bien longtemps que je ne suis plus à l'école !!!
Cet algorithme sera intégré dans un programme bien plus complexe (déjà conçu) cet algorithme apportera une amélioration au programme... ce n'est pas à M. baladur13 de me dire ce qui me sera profitable ou pas, c'est à mon BOSS...
voici un extrait de l'algo actuel qui n'est pas suffisant car les critères de choix ne sont plus les mêmes et celui cu ne compose qu'avec 2 longueur...
Bonjour,
Objectif : Obtenir une longueur proche (Inférieur ou égale) « l » composé de x longueurs « a », y longueur « b » et z longueurs « c » (voir plus ou moins de longueurs possibles).
Critères de choix de la solution :
Critère n°1 : longueur obtenue la plus proche possible de « l » (Inférieur ou égale)
Critère n°2 : minimum de longueurs « a + b + c + ... + n »
Exemple 1 :
l = 5361
a = 1184
b = 904
Résultats :
x = 3
y = 2
Car 3*1184 + 2*904 = 5360 ; reste 1
Exemple 2 :
l = 7265
a = 1500
b = 1250
c = 1000
Résultats :
x = 4
y = 1
z = 0
Car 4*1500 + 1*1250 = 7250 ; reste 15
Exemple 3 :
l = 4880
a = 1180
b = 1000
c = 900
Résultats :
x = 1
y = 1
z = 3
Car 1180 + 1000 + 3*900 ; Reste 0
Soit
paramètres de la fonction :
- Longueur à obtenir
- Liste de longueur pour la composer
Valeur de retour de la fonction :
- Liste de nombre des longueurs (nombre entier).
Avant toute chose et pour info à M. baladur13 le modérateur, ceci n'est pas un devoir, ça fait bien longtemps que je ne suis plus à l'école !!!
Cet algorithme sera intégré dans un programme bien plus complexe (déjà conçu) cet algorithme apportera une amélioration au programme... ce n'est pas à M. baladur13 de me dire ce qui me sera profitable ou pas, c'est à mon BOSS...
voici un extrait de l'algo actuel qui n'est pas suffisant car les critères de choix ne sont plus les mêmes et celui cu ne compose qu'avec 2 longueur...
Dim MaxNbA%, NbA%, NbB% Dim tNbA%, tNbB%, tReste% Dim LargeurReelA% = _LargeurA + _MtLargeurMilieu + _NvAddLargeur Dim LargeurReelB% = _LargeurB + _MtLargeurMilieu + _NvAddLargeur 'On calcule la longueur reel pour les niveaux Dim LongueurReel% = _Longueur - _MtLargeurDebut - _MtLargeurFin + _MtLargeurMilieu Dim Reste% = LongueurReel 'Calculer les longueurs 'On calcule le nombre maximum de niveaux A MaxNbA = CInt(Int(LongueurReel / LargeurReelA)) 'On controle le reste min For i = MaxNbA To 0 Step -1 tNbA = i tNbB = CInt(Int((LongueurReel - tNbA * LargeurReelA) / LargeurReelB)) tReste = LongueurReel - (tNbA * LargeurReelA) - (tNbB * LargeurReelB) If tNbA < tNbB Then Exit For If tReste < Reste Then NbA = tNbA NbB = tNbB Reste = tReste End If Next 'On enregistre la longueur de la travee _Longueur = _Longueur - Reste 'On Genere le longueur Text et les éléments de travée _Travees.Clear() If NbA > 1 Then _LongueurText = NbA & " X " & _LargeurA ElseIf NbA = 1 Then _LongueurText = _LargeurA.ToString End If If NbA > 0 Then _Travees.Add(New Element(_LargeurA, _Hauteur, NbA)) If NbB > 1 Then _LongueurText &= " + " & NbB & " X " & _LargeurB ElseIf NbB = 1 Then _LongueurText &= " + " & _LargeurB End If If NbB > 0 Then _Travees.Add(New Element(_LargeurB, _Hauteur, NbB))
Bonjour,
Objectif : Obtenir une longueur proche (Inférieur ou égale) « l » composé de x longueurs « a », y longueur « b » et z longueurs « c » (voir plus ou moins de longueurs possibles).
Critères de choix de la solution :
Critère n°1 : longueur obtenue la plus proche possible de « l » (Inférieur ou égale)
Critère n°2 : minimum de longueurs « a + b + c + ... + n »
Exemple 1 :
l = 5361
a = 1184
b = 904
Résultats :
x = 3
y = 2
Car 3*1184 + 2*904 = 5360 ; reste 1
Exemple 2 :
l = 7265
a = 1500
b = 1250
c = 1000
Résultats :
x = 4
y = 1
z = 0
Car 4*1500 + 1*1250 = 7250 ; reste 15
Exemple 3 :
l = 4880
a = 1180
b = 1000
c = 900
Résultats :
x = 1
y = 1
z = 3
Car 1180 + 1000 + 3*900 ; Reste 0
Soit
paramètres de la fonction :
- Longueur à obtenir
- Liste de longueur pour la composer
Valeur de retour de la fonction :
- Liste de nombre des longueurs (nombre entier).
A voir également:
- Algorithme, compositions de longueur
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Algorithme ajout rapide snapchat ✓ - Forum Snapchat
- Mesurer longueur avec telephone - Guide
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes