Powrót do strony głównej

Grupowanie liczb naturalnych w n/2 grup wzajemnie pierwszych

Artykuł opisuje algorytm podziału liczb naturalnych 1..n na n/2 grup ze wzajemnie pierwszymi elementami wewnątrz. Użyto wzoru dla nieparzystych złożonych i właściwości 4k±1. Podano kod Python i uzasadnienie.

Jak pogrupować liczby 1..n w pary wzajemnie pierwsze
Advertisement 728x90

Grupowanie liczb naturalnych w pary liczb względnie pierwszych

Podział ciągu {1, 2, 3, ..., n} na n/2 grup, w których wszystkie liczby są względnie pierwsze, osiąga się za pomocą prostego algorytmu. Liczby pierwsze i 1 umieszcza się w pierwszej grupie. Liczby parzyste >2 tworzą elementy startowe pozostałych grup. Nieparzyste liczby złożone rozkłada się według wzoru pos_{x_i} = ⌊x_i/4 + 0,5⌋. Zapewnia to gcd każdej liczby nieparzystej z parzystym liderem grupy równe 1.

Logika rozkładu

Algorytm opiera się na właściwościach nieparzystych liczb złożonych: wszystkie mają postać 4k ± 1 dla pewnego k. Tutaj k odpowiada numerowi grupy. Dla parzystego lidera grupy 2k zachodzi gcd(2k, 4k ± 1) = 1, ponieważ 4k ± 1 ≡ ±1 (mod 2k).

Pierwsza grupa zawiera:

Google AdInline article slot
  • 1
  • Wszystkie liczby pierwsze

Pozostałe grupy (k ≥ 2):

  • Pierwsza pozycja: liczba parzysta 2k
  • Druga pozycja (opcjonalnie): nieparzyste liczby złożone x, gdzie pos_x = k

Niektóre grupy mogą zawierać 0 lub 2 liczby nieparzyste (przykłady: k=3,7 — puste; k=14,16 — po dwie).

Przykład dla n=24

Tabela pokazuje rozkład:

Google AdInline article slot

| Grupa 1 | 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 |

| Grupa 2 | 4, 9, 15, 21 |

| Grupa 3 | 6 |

Google AdInline article slot

| Grupa 4 | 8, 25? (dla n=24: 8) |

| ... | ... |

Sprawdzenie względnej pierwszości wewnątrz grup potwierdza właściwości: liczby pierwsze są parami względnie pierwsze, gcd(2k, 4k±1)=1.

Uzasadnienie matematyczne

  • Liczby pierwsze: Dowolne dwie liczby pierwsze p, q (p ≠ q) mają gcd(p,q)=1.
  • Parzysti liderzy: 2k z k≥2 jest nieparzyste, ale 2k jest parzyste.
  • Nieparzyste złożone: x = 4k ±1, gcd(2k, x) = gcd(2k, ±1 mod 2k) =1.
  • Między nieparzystymi w grupie: Możliwe pary (rzadko) też są względnie pierwsze przez konstrukcję, ponieważ rozkładają się modulo.

Wynika to pośrednio z twierdzenia Dirichleta o liczbach pierwszych w postępach arytmetycznych, ale bezpośrednio — z postaci liczb nieparzystych.

Implementacja w Pythonie

Do automatyzacji podziału:

def group_naturals(n):
    primes = [1]  # 1 + liczby pierwsze
    composites_odd = []
    evens = []
    
    for i in range(2, n+1):
        if i % 2 == 0:
            evens.append(i)
        elif is_prime(i):
            primes.append(i)
        else:
            composites_odd.append(i)
    
    groups = [primes]
    pos = {}
    for x in composites_odd:
        k = int(x / 4 + 0.5)
        if k not in pos:
            pos[k] = []
        pos[k].append(x)
    
    for k in range(2, n//2 +1):
        group = [2*k]
        if k in pos:
            group.extend(sorted(pos[k]))
        groups.append(group)
    
    return groups[:n//2]  # przycinamy nadmiarowe

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            return False
    return True

Kod generuje grupy dla danego n, sprawdzając właściwości.

Co jest ważne

  • Wszystkie grupy zawierają tylko liczby względnie pierwsze.
  • Liczba grup to dokładnie n/2 dla dowolnego naturalnego n.
  • Nieparzyste liczby złożone rozkładają się według pos = ⌊x/4 + 0,5⌋.
  • Uzasadnienie: x=4k±1 ⇒ gcd(2k, x)=1.
  • Pierwsza grupa — 1 i wszystkie liczby pierwsze.

— Editorial Team

Advertisement 728x90

Czytaj dalej