Trouver de petits ensembles d'entiers dans lesquels chaque élément est une somme de deux autres

16

Ceci fait suite à cette question sur math.stackexchange.

Disons qu'un ensemble non vide S ⊆ ℤ est autoportant si pour tout a  ∈ S, il existe des éléments distincts b, c  ∈ S tels que a  =  b  + c. Pour les entiers positifs n , des exemples simples incluent l'idéal S =  n ℤ, ou (pour n > 3) l'intervalle entier [- nn ].

Nous dirons que S est fortement autosuffisant si S est disjoint de −S: c'est-à-dire, si a  ∈ S, alors - a  ∉ S. Aucun des exemples ci-dessus n'est fortement autosuffisant, car ils sont en fait fermés en cours de négation. Il existe des ensembles finis qui sont fortement autoportants: par exemple, les ensembles {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15 , 23} et {−10, −8, −6, −2, 1, 3, 4, 5}.

Question 1. Pour un entier positif N > 0, existe-t-il un algorithme poly ( N ) -temps [ou polylog ( N )-temps] pour soit (i)  produire un ensemble fortement autosuffisant dont la valeur absolue maximale est N , ou (ii )  déterminer qu'un tel ensemble n'existe pas? [ Modifier : comme indiqué dans la réponse la plus ancienne + mon commentaire à ce sujet, il existe toujours un tel ensemble pour N  ≥ 10.]

Question 2. Pour N > 0, pouvez-vous construire l'ensemble fortement autosuffisant avec la valeur absolue maximale N , et qui a le moins d'éléments possibles?

Niel de Beaudrap
la source
1
la migration des réponses aux questions n'est pas une pratique courante et la question semble correcte ici. Mais si vous le souhaitez, je le migrerai.
Kaveh
Je ne suis pas sûr non plus qu'il soit logique de migrer une question avec réponse.
Suresh Venkat
Comme vous voulez, alors. Le fait que cette question reste ici me dérange depuis un certain temps depuis que le site est devenu un forum mature de questions / réponses sur des sujets théoriques. Je pensais que le ton pourrait être beaucoup mieux adapté au cs.SE (niveau non-recherche); mais si vous ne pensez pas qu'il y ait un problème de cohérence important, alors je vais arrêter de m'en inquiéter.
Niel de Beaudrap

Réponses:

6

Je suppose qu'un algorithme de temps linéaire devrait être possible pour la question # 1) (et si vous êtes prêt à traiter avec une représentation différente, un algorithme de temps O (1))

Étant donné tout N> = 23, nous construisons un ensemble fortement autoportant qui contient 1 et N.

Nous pouvons le faire facilement si nous construisons la même chose pour N-1, puis ajoutons N à l'ensemble résultant.

Pour le cas de base de 23, nous pouvons commencer avec votre exemple d'ensemble.

Pour réduire la taille, nous devrions pouvoir utiliser une approche similaire:

Construire des ensembles contenant 1, N and N-1.

Nous utilisons ces ensembles contraints et faisons cette construction récursivement pour ramener la taille à O (logN) comme suit:

  • Si N est pair, pour construire un ensemble contenant 1, N et N-1, construire récursivement un ensemble contenant 1, N / 2 et N / 2-1 (ie ensemble correspondant à N / 2) et ajouter N et N-1 à l'ensemble résultant. Puisque N-1 = N / 2 + N / 2-1 et N = 1 + N-1, il s'agit d'un ensemble valide.

  • Si N est impair, construisez un ensemble pour N-1 et N pour l'ensemble résultant.

Pour les cas de base, nous pouvons commencer par {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15, 23,24} pour N = 24. Pour 24 <N <= 47, nous pouvons utiliser l'algorithme de temps linéaire ci-dessus et construire sur l'ensemble pour N = 24. Pour N> = 48, nous passons à la réduction de moitié.

En fait, pour le composite N, nous pouvons ramener la taille plus bas à la taille requise pour l'un des petits nombres premiers qui divise N: Trouvez un ensemble pour le petit nombre premier et multipliez simplement tous les nombres par un facteur approprié.

Il pourrait être intéressant de prouver certaines bornes inférieures dans le cas où N est premier.

Aryabhata
la source
+1. Me sert bien pour poser une question avec trop de mou, je suppose. Vous pouvez faire de même pour N> 10, bien sûr. Ce qui nous laisse avec la question de construire des ensembles plus petits que cela (éventuellement de taille minimale, comme dans # 2).
Niel de Beaudrap du
Pour que votre réponse révisée fasse baisser la taille: je ne suis pas. Je suppose que vous voulez que N "soit pris en charge" (exprimé comme une somme d'éléments distincts) en 1 + (N-1). Mais comment "supportez-vous" N-1, alors? --- Aussi: je suis plus intéressé par la taille, c'est-à-dire la cardinalité, de l'ensemble lui-même, bien que des limites intéressantes sur sa représentation puissent également être intéressantes.
Niel de Beaudrap du
@Niel: J'étais sur le point de commenter: voir mon montage :-)
Aryabhata
Considérons le cas de N = 46. Alors N / 2 = 23; nous prenons l'exemple donné dans la question comme l'ensemble autoportant et incluons N-1 = 45 et N = 46. Comment pouvons-nous alors "soutenir" N-1 = 45?
Niel de Beaudrap du
2
(Vous voudrez peut-être envisager de changer votre surnom. Pourquoi ne pas annoncer qui vous êtes réellement? Cela me permet également de m'adresser à vous sans avoir l'air d'insulter quelqu'un, si vous décidez éventuellement de changer votre surnom plus tard.)
Niel de Beaudrap
5

Pour N ≥ 10, on peut construire un ensemble de tailles fortement autoportant au maximum onze, comme suit:

{−N, −N + 2, −N + 4, −2, 1, 3, 4, 5, N − 7, N − 6, N − 5}.

L'exemple le plus court présenté dans la question initiale correspond au cas N = 10. Ceci est presque optimal, car tout ensemble fortement autoportant doit avoir une cardinalité d' au moins huit .

Ainsi, le problème est résoluble en temps O (log (N)) [repris dans les opérations arithmétiques mondaines sur N], donnant un ensemble de cardinalité entre huit et onze.

La construction de cette réponse a d'abord été présentée pour la question math.stackoverflow , qui donne également l'intuition de la construction. Peut-on encore obtenir des constructions plus petites, par exemple en faisant correspondre la borne inférieure de huit pour chaque N> 9? Qu'en est-il des cas de N ∈ {8,9}?

Niel de Beaudrap
la source