Algorithme, compositions de longueur
mryapados
Messages postés
4
Statut
Membre
-
baladur13 Messages postés 50094 Date d'inscription Statut Modérateur Dernière intervention -
baladur13 Messages postés 50094 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
- Algorithme application pc - Télécharger - Édition & Programmation
- Mesurer longueur avec telephone - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes