Une paire amusante d'équivalences est 1 + 5 = 2 · 3 et 1 · 5 = 2 + 3 . Il y en a beaucoup comme ceux-ci, un autre est 1 + 1 + 8 = 1 · 2 · 5 et 1 · 1 · 8 = 1 + 2 + 5 . En général, un produit de n entiers positifs est égal à une somme de n entiers positifs, et vice versa.
Dans ce défi, vous devez générer toutes ces combinaisons d'entiers positifs pour une entrée n> 1 , à l'exclusion des permutations. Vous pouvez les afficher dans n'importe quel format raisonnable. Par exemple, toutes les solutions possibles pour n = 3 sont:
(2, 2, 2) (1, 1, 6)
(1, 2, 3) (1, 2, 3)
(1, 3, 3) (1, 1, 7)
(1, 2, 5) (1, 1, 8)
Le programme qui peut générer le plus de combinaisons pour le n le plus élevé en une minute sur mes 2 Go de RAM , un ordinateur portable Intel Ubuntu 64 bits gagne. Si votre réponse utilise plus de 2 Go de RAM ou est écrite dans une langue que je ne peux pas tester avec un logiciel disponible gratuitement, je ne noterai pas votre réponse. Je vais tester les réponses dans deux semaines et choisir le gagnant. Les réponses non concurrentes ultérieures peuvent toujours être publiées bien sûr.
Comme on ne sait pas quels sont les ensembles complets de solutions pour tous les n , vous êtes autorisé à publier des réponses qui génèrent des solutions incomplètes. Cependant, si une autre réponse génère une solution (plus) complète, même si leur n maximum est plus petit , cette réponse l'emporte.
Pour clarifier, voici le processus de notation pour décider du gagnant:
Je vais tester votre programme avec n = 2, n = 3, etc ... Je stocke toutes vos sorties et m'arrête lorsque votre programme prend plus d'une minute ou plus de 2 Go de RAM. Chaque fois que le programme est exécuté pour une entrée donnée n, il sera interrompu s'il prend plus d'une minute.
Je regarde tous les résultats pour tous les programmes pour n = 2. Si un programme a produit des solutions moins valides qu'un autre, ce programme est éliminé.
Répétez l'étape 2 pour n = 3, n = 4, etc ... Le dernier programme en attente l'emporte.