Una divertente coppia di equivalenze è 1 + 5 = 2 · 3 e 1 · 5 = 2 + 3 . Ce ne sono molti come questi, un altro è 1 + 1 + 8 = 1 · 2 · 5 e 1 · 1 · 8 = 1 + 2 + 5 . In generale un prodotto di n numeri interi positivi equivale a una somma di n numeri interi positivi e viceversa.
In questa sfida è necessario generare tutte queste combinazioni di numeri interi positivi per un input n> 1 , escluse le permutazioni. Puoi produrli in qualsiasi formato ragionevole. Ad esempio, tutte le possibili soluzioni per n = 3 sono:
(2, 2, 2) (1, 1, 6)
(1, 2, 3) (1, 2, 3)
(1, 3, 3) (1, 1, 7)
(1, 2, 5) (1, 1, 8)
Vince il programma in grado di generare il maggior numero di combinazioni per il massimo n in un minuto sul mio laptop Intel Ubuntu a 64 bit RAM da 2 GB . Se la tua risposta utilizza più di 2 GB di RAM o è scritta in una lingua che non posso testare con un software disponibile gratuitamente, non assegnerò un punteggio alla tua risposta. Proverò le risposte tra due settimane e sceglierò il vincitore. Le risposte successive non concorrenti possono comunque essere postate ovviamente.
Poiché non è noto quali siano le serie complete di soluzioni per tutte le n , è possibile pubblicare risposte che generano soluzioni incomplete. Tuttavia, se un'altra risposta genera una (più) soluzione completa, anche se il loro massimo n è più piccolo , quella risposta vince.
Per chiarire, ecco il processo di punteggio per decidere il vincitore:
Metterò alla prova il tuo programma con n = 2, n = 3, ecc ... Memorizzerò tutte le tue uscite e mi fermerò quando il tuo programma impiegherà più di un minuto o più di 2 GB di RAM. Ogni volta che il programma viene eseguito per un dato input n, verrà terminato se impiega più di 1 minuto.
Guardo tutti i risultati per tutti i programmi per n = 2. Se un programma ha prodotto soluzioni meno valide di un altro, quel programma viene eliminato.
Ripetere il passaggio 2 per n = 3, n = 4, ecc ... Vince l'ultimo programma in piedi.