Estoy interesado en construir un conjunto de de enteros positivos de modo que cualquier partición en -subconjuntos de elementos, tiene la propiedad de que las sumas
Tenga en cuenta que lo que quiero es diferente del problema de la "suma de subconjuntos" que dice que TODOS los subconjuntos de nuestros 24 enteros tienen sumas diferentes, aunque supongo que esto responde a la pregunta con una construcción subóptima (muy probablemente).
En términos más generales, tengo curiosidad por lo que se sabe sobre tales conjuntos, por entero, ¿cómo construimos un conjunto de enteros positivos tales que cada partición en subconjuntos de elementos tiene la propiedad de que el todos los subconjuntos de elementos tienen una suma diferente.
Probé el enfoque codicioso que sugerí en un comentario, y produjo un máximo de , a diferencia del valor en la tabla OEIS mencionada en los comentarios.
Escribí este pequeño script de Python:
from itertools import combinations
xs = [1,2,3]
twos = {3,4,5}
threes = {6}
nextX = 4
while len(xs) < 24:
if len(xs) != 23:
newTwos = {nextX + x for x in xs}
if newTwos & twos:
nextX += 1
continue
newThrees = {nextX + t for t in twos}
if newThrees & threes:
nextX += 1
continue
twos |= newTwos
threes |= newThrees
xs.append(nextX)
nextX += 1
print(xs)
# audit
test3 = {sum(t) for t in combinations(xs,3)}
if len(test3)== 24*23*22//6:
print('Passed audit')
else:
print('Failed audit')
empezamos con e intente agregar repetidamente el entero más pequeño aún no probado al conjunto. Hacemos un seguimiento de todos los -sumas y -sumas Cuando probamos un nuevo elemento, lo aceptamos si su adición no crearía un duplicado. -suma o -suma. El -La prueba de suma es necesaria porque si hubiera un duplicado -sum, la adición de un elemento adicional crearía necesariamente un duplicado -suma. Esta prueba es innecesaria cuando agregamos el elementos al conjunto.
El script produjo la salida.
[1, 2, 3, 5, 8, 14, 25, 45, 82, 140, 235, 388, 559, 839, 1286, 1582, 2221, 3144, 4071, 5795, 6872, 9204, 11524, 13796]
Passed audit
Por supuesto, no hay garantía de que el algoritmo codicioso produzca la respuesta óptima. Se garantiza que el algoritmo codicioso funcionará solo cuando tengamos un matroide subyacente . Podríamos definir un conjunto como independiente si todos sus -los subconjuntos tienen sumas distintas. Un subconjunto de un conjunto independiente es independiente, pero no tenemos la propiedad de que todos los subconjuntos independientes máximos tengan el mismo tamaño. y ambos son subconjuntos máximos independientes de . Entonces, llamaremos independiente a un conjunto si todos sus -los subconjuntos tienen sumas distintas, y todos sus -los subconjuntos tienen sumas distintas. Ahora no parece tan fácil producir un contraejemplo, aunque si me viera obligado a adivinar, diría que todavía no es un matroide.
Incluso si resultara ser un matroide, solo habríamos encontrado el mínimo para un superconjunto de , así que nos quedaría trabajo por hacer.
calvin lin
Trismo
calvin lin
Trismo
saulspatz
Trismo
Trismo
saulspatz