Această întrebare interesantă este mult mai greu decât pare, și nu a primit un răspuns. Problema poate fi luat în 2 întrebări foarte diferite.
1 dat N, găsiți lista L de prim factori N lui
2 L dată, se calculează numărul de combinații unice
Toate răspunsurile pe care le văd până acum se referă la # 1 și nu reușesc să menționeze că nu este maleabil pentru un număr enorm. Pentru moderat de dimensiuni N, chiar și numere pe 64 de biți, este ușor; pentru enorm N, problema factoring poate lua „pentru totdeauna“. criptare cu cheie publica depinde de acest lucru.
Întrebarea # 2 are nevoie de mai multe discuții. Dacă L conține doar numere unice, acesta este un calcul simplu, folosind formula de combinație pentru a alege obiecte k din n elemente. De fapt, trebuie să însumați rezultatele din aplicarea formulei în timp ce variază k de la 1 la sizeof (L). Cu toate acestea, L va conține, de obicei, mai multe apariții ale mai multor amorse. De exemplu, L = {2,2,2,3,3,5} este factorizarea N = 360. Acum, această problemă este destul de dificil!
Retratarea # 2, având în vedere colecția C care conține elemente k, astfel încât elementul A are un „duplicate, iar elementul b are b“ duplicate, etc. numărul de combinații unice de la 1 la k-1 elemente sunt acolo? De exemplu, {2}, {2,2}, {2,2,2}, {2,3}, {2,2,3,3} trebuie de fiecare dată să apară și numai o singură dată, dacă L = {2,2 , 2,3,3,5}. Fiecare astfel de sub-colecție unică este un divizor unic de N prin înmulțirea elementelor din subcolecțiilor.