모든 요소가 다른 두 요소의 합인 작은 정수 세트 찾기


16

이것은 math.stackexchange 에서이 질문 에 대한 후속 조치입니다.

우리는 비어 있지 않은 세트 S ⊆ ℤ이라고 생각한 자립 마다위한 경우  ∈ S, 별개의 요소가 존재한다 (B)을, C는  ∈ S되도록  =  B  + C. 양의 정수 n의 경우 간단한 예에는 이상적인 S =  n or 또는 ( n > 3의 경우) 정수 간격 [ -nn ]이 포함됩니다.

우리는 S이라고 말할 것이다 강하게 자립을 하는 경우입니다 : S는 -S에서 분리 된 경우  - 다음 ∈ S,  ∉ S. 어느 쪽도 위의 예 강하게 자기가지지 자들은 사실 때문에 폐쇄, 부정하에. 강력하게 자체 지원되는 유한 세트가 있습니다. 예를 들어, 세트 {−22, -20, -18, -16, -14, -12, -10, -2, 1, 3, 7, 8, 15 , 23} 및 {-10, -8, -6, -2, 1, 3, 4, 5}.

질문 1. 정수 양 들어 N > 0, 폴리 (이 존재 N을 ) - 시간 [또는 polylog ( N ) - 시간] 알고리즘 중 어느 하나에 (i)는  그 최대 절대치 강하게 자립 세트 생성 N 또는 (II를 )  그러한 세트가 존재하지 않는다고 판단합니까? [ 편집 : 가장 오래된 답변 + 내 의견에서 지적했듯이 항상 N  ≥ 10에 대한 설정이 있습니다 .]

질문 # 2. 들면 N > 0 인 경우는 최대 절대 값을 갖는 강한 자립 세트 만들 수 N을 하고, 이는 가능한 한 적은 요소가?


1
답변 된 질문을 마이그레이션하는 것은 일반적인 관행이 아니며 여기서 질문이 잘 보입니다. 그러나 원하는 경우 마이그레이션합니다.
Kaveh

또한 답변 된 질문을 마이그레이션하는 것이 이치에 맞지 않습니다.
Suresh Venkat

당신이 원하는대로. 이 질문이 여기에 남아 있다는 사실은 사이트가 이론적 인 주제에 대한 Q & A를위한 성숙한 포럼이 된 이후 얼마 동안 나를 귀찮게했습니다. 나는 그 톤이 (연구 수준이 아닌) cs.SE에 훨씬 더 적합 할 것이라고 생각했다. 그러나 중요한 일관성 문제가 있다고 생각하지 않으면 걱정하지 않아도됩니다.
Niel de Beaudrap

답변:


6

질문 # 1에 선형 시간 알고리즘이 가능해야한다고 가정합니다 (그리고 다른 표현을 기꺼이 처리하려면 O (1) 시간 알고리즘)

N> = 23이 주어지면 1과 N을 포함하는 강력한 자체 지원 세트를 구성합니다.

N-1에 대해 동일하게 구성한 다음 결과 집합에 N을 추가하면 쉽게 수행 할 수 있습니다.

기본 사례 23의 경우 예제 세트로 시작할 수 있습니다.

크기를 줄이려면 비슷한 방법을 사용해야합니다.

다음을 포함하는 구성 세트 1, N and N-1.

이러한 제한 세트를 사용하고 다음과 같이이 구성을 재귀 적으로 수행하여 크기를 O (logN)로 줄입니다.

  • N이 짝수 인 경우 1, N 및 N-1을 포함하는 집합을 구성하려면 1, N / 2 및 N / 2-1 (즉, N / 2에 해당하는 집합)을 포함하는 집합을 반복적으로 구성하고 N과 N-1을 더합니다 결과 집합에. N-1 = N / 2 + N / 2-1 및 N = 1 + N-1이므로 유효한 세트입니다.

  • N이 홀수이면 N-1 및 N에 대한 세트를 결과 세트로 구성하십시오.

기본 사례의 경우 N에 대해 {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15, 23,24}로 시작할 수 있습니다. = 24. 24 <N <= 47의 경우 위의 선형 시간 알고리즘을 사용하고 N = 24에 대한 집합을 기반으로 빌드 할 수 있습니다. N> = 48의 경우 절반으로 줄입니다.

실제로 합성 N의 경우 N을 나누는 작은 소수 중 하나에 필요한 크기로 크기를 더 줄일 수 있습니다. 작은 소수에 대한 집합을 찾고 모든 숫자에 적절한 인수를 곱하십시오.

N이 소수 인 경우 일부 하한을 증명하는 것이 흥미로울 수 있습니다.


+1. 여유 공간이 너무 많은 질문을 제기하는 데 적합합니다. 물론 N> 10에 대해서도 동일한 작업을 수행 할 수 있습니다. 이것보다 작은 세트를 구성하는 문제가 있습니다 (2 번과 같이 크기가 최소화 될 수 있음).
Niel de Beaudrap

수정 된 답변으로 크기를 줄이십시오 : 나는 따르지 않습니다. 나는 당신이 N "지원"(개별 요소의 합으로 표현)을 1 + (N-1)로하고 싶다고 수집합니다. 그렇다면 N-1을 어떻게 "지원"합니까? --- 또한 ​​: 세트 자체의 크기, 즉 카디널리티에 더 관심이 있지만 그 표현에 대한 흥미로운 한계도 흥미로울 수 있습니다.
Niel de Beaudrap

@ 닐 : 나는 의견을 말하려고했다 : 내 편집을 참조하십시오 :-)
Aryabhata

N = 46의 경우를 고려하십시오. 그런 다음 N / 2 = 23; 질문에 제시된 예를 자체 지원 세트로 취하고 N-1 = 45 및 N = 46을 포함합니다. 그렇다면 우리는 어떻게 N-1 = 45를 "지원"합니까?
Niel de Beaudrap

2
닉네임 변경을 고려할 수도 있습니다. 실제로 누구인지 광고하지 않겠습니까? 또한 누군가를 모욕하는 것처럼 보이지 않고 나중에 닉네임을 변경하도록 선택하면 나에게 연락 할 수 있습니다.
Niel de Beaudrap

5

N ≥ 10 인 경우 다음과 같이 최대 11 개의 강력한 자체 지원 크기 세트를 만들 수 있습니다.

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

원래 질문에 제시된 더 짧은 예는 사례 N = 10에 해당합니다. 이는 강력하게 자체 지원되는 세트가 카디널리티 가 8 이상 이어야하므로 최적에 가깝습니다 .

따라서, 문제는 O (log (N)) 시간 [N에 대한 평범한 산술 연산에서 발생]에서 해결할 수 있으며, 8과 11 사이의 카디널리티 세트를 생성합니다.

이 답변의 구성 은 math.stackoverflow question에 대해 처음 제시되었으며 , 구성에 대한 직관도 제공합니다. 더 작은 구성을 얻을 수 있습니까? 예를 들어 N> 9마다 8의 하한을 일치시킬 수 있습니까? N ∈ {8,9}의 경우는 어떻습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.