TL; DR
Comparez la somme de chaque triplet, le produit de chaque triplet et la somme des produits de toutes les combinaisons possibles de chaque triplet.
The Nitty Gritty
Par le théorème fondamental de l'algèbre , pour un polynôme de degré N, nous devons avoir N racines.
En utilisant ce fait, nous laissons nos zéros a1, a2, and a3
. Maintenant, nous trouvons les coefficients de ce polynôme.
(x - a1) * (x - a2) * (x - a3)
(x^2 - (a1 + a2) * x + a1a2) * (x - a3)
x^3 - (a1 + a2) * x^2 + (a1a2) * x - a3 * x^2 + (a1a3 + a2a3) * x - a1a2a3
x^3 + (-1 * (a1 + a2 + a3)) * x^2 + (a1a2 + a1a3 + a2a3) * x + (-1 * a1a2a3)
Si deux polynômes sont équivalents, ils doivent avoir les mêmes racines (là encore par l'ALE). Il suffit donc de comparer les coefficients des polynômes générés.
Donc si,
(-1 * (a1 + a2 + a3) == (-1 * (b1 + b2 + b3))
---equivalently---
a1 + a2 + a3 == b1 + b2 + b3
Et
(a1a2 + a1a3 + a2a3) == (b1b2 + b1b3 + b2b3)
Et
-1 * a1a2a3 == -1 * b1b2b3
---equivalently---
a1a2a3 == b1b2b3
Ensuite, nous pouvons conclure les triplets a1, a2, a3
et b1, b2, b3
sont équivalents.
Est-ce que ça vaut le coup?
D'un point de vue pratique, voyons si cela est en effet plus efficace que la vérification par force brute comme illustré par l'OP.
Première vérification: additionner et comparer. Cela nécessite 4 ajouts au total et 1 vérification de l'égalité.
Vérifier le total = 5; Total cumulé = 5
Deuxième vérification: produit, somme et comparaison. Cela nécessite 6 multiplications totales, 4 additions totales et 1 vérification de l'égalité.
Chèque total = 11; Total cumulé = 16
Troisième vérification: produit et comparaison. Cela nécessite 4 multiplications totales et 1 vérification de l'égalité.
Vérifier le total = 5; Total cumulé = 21
En additionnant les deux opérations ET logiques, le nombre total d'opérations binaires pour les "coefficients de l'approche polynomiale générée" ne nécessite que:
23 opérations binaires
La vérification de la force brute nécessite 18 vérifications d'égalité totale, 12 comparaisons ET logiques et 5 comparaisons OU logiques pour un total de:
35 opérations binaires
Donc, à proprement parler , la réponse est oui, les "coefficients de l'approche polynomiale générée" sont en effet plus efficaces. Cependant, comme le souligne @WJS, l'approche par force brute a beaucoup plus de possibilités de court-circuit et s'exécute donc aussi / plus efficacement que l'approche mathématique.
Pour une précision totale
Nous ne pouvons pas ignorer la vérification de la somme des produits de toutes les combinaisons possibles de chaque triplet. Si nous laissons cela de côté, il existe d'innombrables exemples où cela échoue. Considérez (23, 32, 45)
et (24, 30, 46)
* :
23 + 32 + 45 = 100
24 + 30 + 46 = 100
23 * 32 * 45 = 33120
24 * 30 * 46 = 33120
Ils ne sont pas équivalents mais donnent la même somme et le même produit. Ils ne donnent cependant pas la même somme des produits de toutes les combinaisons possibles:
23 * 32 + 23 * 45 + 32 * 45 = 3211
24 * 30 + 24 * 46 + 30 * 46 = 3204
* Si vous êtes curieux de savoir comment dériver un exemple similaire à celui ci-dessus, générez d'abord toutes les partitions entières d'un entier M de longueur 3, prenez leur produit, trouvez les doublons et choisissez une paire.