5 votos

Dada una lista limitada de factores primeros, cuál es la forma más rápida para encontrar todos los números que se pueden formar de ellos

$$ \text{Let} \ S = {p_1,p_2,p_3,...,p_n} $$ $$ \text{where} \ p_i \in \Bbb P$$

¿Qué es el método más rápido conocido método/algoritmo para generar números únicos todos a través de la operación del producto en $S$?

$\text{Ex}: S= {3,5,2} $
SOLN:
$3\times5 = 15$
$3\times2 = 6$
$3\times5\times2 = 30$
$5\times2 = 10$

Actualmente, mis ideas flotar alrededor de generar todos los subconjuntos de $S$, multiplicando a todos los miembros de cada uno de ellos y eliminando los duplicados de la lista de los números así generados. Se trata de $O(2^n)$.

4voto

Michael Hardy Puntos 128804

Si los números primos son distintos y repeticiones (por ejemplo,$3\times3\times 5$) están prohibidas, luego ir a través de toda la lista de subconjuntos no dará ningún duplicados, debido a que el teorema fundamental de arithemetic dice el primer factorizations son únicos.

(Si un número ilimitado de repeticiones permitidas, usted obtiene una lista infinita. Es un poco edificantes ejercicio para demostrar que la suma de los recíprocos de los infinitamente muchos números de ser finito si tiene sólo un número finito de números primos en la lista inicial.)

2voto

Luke Murphey Puntos 36

Dado su solución ejemplo vi una muy buena solución (la respuesta por @Arturo Magidin) que puede ser relevante para usted.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X