Jacobijev simbol

Iz testwiki
Pojdi na navigacijo Pojdi na iskanje
Predloga:Diagonal split header 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 1
3 0 1 −1
5 0 1 −1 −1 1
7 0 1 1 −1 1 −1 −1
9 0 1 1 0 1 1 0 1 1
11 0 1 −1 1 1 1 −1 −1 −1 1 −1
13 0 1 −1 1 1 −1 −1 −1 −1 1 1 −1 1
15 0 1 1 0 1 0 0 −1 1 0 0 −1 0 −1 −1
17 −0 −1 1 −1 −1 −1 −1 −1 1 −1 −1 −1 −1 1 −1 1 1

Jacobijev simbol Predloga:VelikoPredloga:SfracPredloga:Veliko za različne k (proti vrhu) in n (proti levi). Prikazani so samo Predloga:Brez preloma, saj se zaradi pravila (2) spodaj da zmanjšati k za modulo n. Kvadratni ostanki so označeni z rumeno — oglej si, da noben vnos z Jacobijevim simbolom −1 ni kvadratni ostanek, če pa je k kvadratni ostanek modula tujega števila n, potem je Predloga:Brez preloma, a niso vsi vnosi Jacobijevega simbola 1 (glej vrsti Predloga:Brez preloma in Predloga:Brez preloma) kvadratni ostanki. Opazimo tudi, da če je eden izmed n ali k kvadrat, so vse vrednosti nenegativne.

Jacobijev simbol je posplošitev Legendrovega simbola. Uvedel ga je Jacobi leta 1837,[1] navezuje pa se na modularno aritmetiko in ostale veje teorije števil, a glavna uporaba pa se nahaja v računalniški teoriji števil, še posebej v praštevilskem testu in praštevilskem razcepu; te stvari so zelo pomembne v kriptografiji.

Definicija

Za katerokoli celo število a in liho naravno število n, je Jacobijev simbol Predloga:VelikoPredloga:SfracPredloga:Veliko definiran kot produkt Legendrovih simbolov, ki predstavljajo praštevilski razcep od n:

(an)=(ap1)α1(ap2)α2(apk)αk,

kjer je

n=p1α1p2α2pkαk

praštevilski razcep od n.

Legendrov simbol Predloga:VelikoPredloga:SfracPredloga:Veliko je za vsa cela števila a in vsa liha praštevila p definiran

(ap)={0če a0(modp),1če a≢0(modp) in za neko celo število x:ax2(modp),1če a≢0(modp) in ne obstaja noben tak x.

Po standardnem sporazumu za prazni produkt, velja Predloga:VelikoPredloga:SfracPredloga:Veliko = 1.

Ko je nižji argument liho praštevilo, potem je Jacobijev simbol enak Legendrovem simbolu.

Tabela vrednosti

Sledeča tabela je seznam vseh vrednosti Jacobijevega simbola Predloga:VelikoPredloga:SfracPredloga:Veliko za n ≤ 59, k ≤ 30, n je lih.

Predloga:Diagonal split header 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 −1 1 1 −1 1 1 1 1 −1 1 1 1 1 1 1 −1 1 1 1 1 1 1 1 1 −1 1 1 1 1 1
3 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0
5 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0
7 1 1 −1 1 −1 −1 0 1 1 −1 1 −1 −1 0 1 1 −1 1 −1 −1 0 1 1 −1 1 −1 −1 0 1 1
9 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0
11 1 −1 1 1 1 −1 −1 −1 1 −1 0 1 −1 1 1 1 −1 −1 −1 1 −1 0 1 −1 1 1 1 −1 −1 −1
13 1 −1 1 1 −1 −1 −1 −1 1 1 −1 1 0 1 −1 1 1 −1 −1 −1 −1 1 1 −1 1 0 1 −1 1 1
15 1 1 0 1 0 0 −1 1 0 0 −1 0 −1 −1 0 1 1 0 1 0 0 −1 1 0 0 −1 0 −1 −1 0
17 1 1 −1 1 −1 −1 −1 1 1 −1 −1 −1 1 −1 1 1 0 1 1 −1 1 −1 −1 −1 1 1 −1 −1 −1 1
19 1 −1 −1 1 1 1 1 −1 1 −1 1 −1 −1 −1 −1 1 1 −1 0 1 −1 −1 1 1 1 1 −1 1 −1 1
21 1 −1 0 1 1 0 0 −1 0 −1 −1 0 −1 0 0 1 1 0 −1 1 0 1 −1 0 1 1 0 0 −1 0
23 1 1 1 1 −1 1 −1 1 1 −1 −1 1 1 −1 −1 1 −1 1 −1 −1 −1 −1 0 1 1 1 1 −1 1 −1
25 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
27 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0
29 1 −1 −1 1 1 1 1 −1 1 −1 −1 −1 1 −1 −1 1 −1 −1 −1 1 −1 1 1 1 1 −1 −1 1 0 1
31 1 1 −1 1 1 −1 1 1 1 1 −1 −1 −1 1 −1 1 −1 1 1 1 −1 −1 −1 −1 1 −1 −1 1 −1 −1
33 1 1 0 1 −1 0 −1 1 0 −1 0 0 −1 −1 0 1 1 0 −1 −1 0 0 −1 0 1 −1 0 −1 1 0
35 1 −1 1 1 0 −1 0 −1 1 0 1 1 1 0 0 1 1 −1 −1 0 0 −1 −1 −1 0 −1 1 0 1 0
37 1 −1 1 1 −1 −1 1 −1 1 1 1 1 −1 −1 −1 1 −1 −1 −1 −1 1 −1 −1 −1 1 1 1 1 −1 1
39 1 1 0 1 1 0 −1 1 0 1 1 0 0 −1 0 1 −1 0 −1 1 0 1 −1 0 1 0 0 −1 −1 0
41 1 1 −1 1 1 −1 −1 1 1 1 −1 −1 −1 −1 −1 1 −1 1 −1 1 1 −1 1 −1 1 −1 −1 −1 −1 −1
43 1 −1 −1 1 −1 1 −1 −1 1 1 1 −1 1 1 1 1 1 −1 −1 −1 1 −1 1 1 1 −1 −1 −1 −1 −1
45 1 −1 0 1 0 0 −1 −1 0 0 1 0 −1 1 0 1 −1 0 1 0 0 −1 −1 0 0 1 0 −1 1 0
47 1 1 1 1 −1 1 1 1 1 −1 −1 1 −1 1 −1 1 1 1 −1 −1 1 −1 −1 1 1 −1 1 1 −1 −1
49 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
51 1 −1 0 1 1 0 −1 −1 0 −1 1 0 1 1 0 1 0 0 1 1 0 −1 1 0 1 −1 0 −1 1 0
53 1 −1 −1 1 −1 1 1 −1 1 1 1 −1 1 −1 1 1 1 −1 −1 −1 −1 −1 −1 1 1 −1 −1 1 1 −1
55 1 1 −1 1 0 −1 1 1 1 0 0 −1 1 1 0 1 1 1 −1 0 −1 0 −1 −1 0 1 −1 1 −1 0
57 1 1 0 1 −1 0 1 1 0 −1 −1 0 −1 1 0 1 −1 0 0 −1 0 −1 −1 0 1 −1 0 1 1 0
59 1 −1 1 1 1 −1 1 −1 1 −1 −1 1 −1 −1 1 1 1 −1 1 1 1 1 −1 −1 1 1 1 1 1 −1

Lastnosti

Sledeča dejstva, celo obratni zakoni, so direktne dedukcije iz definicije Jacobijevega simbola in pripadajočih lastnosti Legendrovega simbola.[2]

Tacobijev simbol je definiran le, ko je števec celo število in imenovalec pozitivno liho število.

1. Če je n (liho) praštevilo, potem je Jacobijev simbol Predloga:VelikoPredloga:SfracPredloga:Veliko enak (in zapisan enako kot) pripadajoči Legendrov simbol.
2. Če je Predloga:Brez preloma, potem je (an)=(bn)=(a±mnn)
3. (an)={0če D(a,n)1,±1če D(a,n)=1.

Če je katerikoli izmed števca ali imenovalca stalen, potem je Jacobijev simbol popolnoma multiplikativna funkcija v preostalem argumentu:

4. (abn)=(an)(bn),torej (a2n)=(an)2=1 ali 0.
5. (amn)=(am)(an),torej (an2)=(an)2=1 ali 0.

Kvadratni recipročnostni zakon: če sta si m in n lihi tuji naravni števili, potem je

6. (mn)(nm)=(1)m12n12={1če n1(mod4) ali m1(mod4),1če nm3(mod4)
7. (1n)=(1)n12={1če n1(mod4),1če n3(mod4),

in to se da prepisati v

8. (2n)=(1)n218={1če n1,7(mod8),1če n3,5(mod8).
9. (2an)=(2n)(an)={(an)če n1,7(mod8),(an)če n3,5(mod8).

Če združimo lastnosti 4 in 8 dobimo:

(10019907)=(79907)(119907)(139907).(79907)=(99077)=(27)=1.(119907)=(990711)=(711)=(117)=(47)=1.(139907)=(990713)=(113)=1.(10019907)=1.

Kot Legendrov simbol:

A za razliko od Legendrovega simbola:

Če je Predloga:VelikoPredloga:SfracPredloga:Veliko = 1, potem je a lahko ali pa ne kvadratni modulo n z ostankom.

To se zgodi zato, ker mora za a, ki je kvadratni modulo n z ostankom, obstajati kvadratni modulo z ostankom za vsaki praštevilski faktor od n. A Jacobijev simbol je enak enemu od teh, če je, a enak modulu brez ostanka z natančno dvema izmed praštevilskih faktorjev od n.

Četudi se Jacobijevega simbola ne da unikatno predstaviti s kvadrati in ne-kvadrati, se lahko unikatno opredeli kot znak permutacije po Zolotarevi lemi.

Jacobijev simbol Predloga:VelikoPredloga:SfracPredloga:Veliko je Dirichletov znak k modulom n.

Izračunavanje Jacobijevega simbola

Zgornje formule vodijo v učinkoviti algoritem Predloga:Brez preloma[3] za izračunavanje Jacobijevega simbola, ki je analogen Evklidovemu algoritmu za iskanje največjega skupnega delitelja dveh števil (To se ne zdi preveč presenetljivo zaradi pravila 2).

  1. Zmanjšaj modulo števca na imenovalec z uporabo pravila 2.
  2. Izrazi katerikoli sodi števec z uporabo pravila 9.
  3. Če je števec enak 1, nam dajo pravila 3 in 4 rezultat 1. Če pa števec in imenovalec nista tuji si števili, nam pravilo 3 da rezultat 0.
  4. Če se noben izmed zgornjih primerov ni uresničil, potem sta števec in imenovalec sedaj lihi tuji si naravni števili, kar pomeni, da lahko obrnemo simbol z uporabo pravila 6 in se nato vrnemo na korak 1.

Implementacija v jeziku Lua

function jacobi(n, k)
  assert(k > 0 and k % 2 == 1)
  n = n % k
  t = 1
  while n ~= 0 do
    while n % 2 == 0 do
      n = n / 2
      r = k % 8
      if r == 3 or r == 5 then
        t = -t
      end
    end
    n, k = k, n
    if n % 4 == 3 and k % 4 == 3 then
      t = -t
    end
    n = n % k
  end
  if k == 1 then
    return t
  else
    return 0
  end
end

Primeri računanja

Legendrov simbol Predloga:VelikoPredloga:SfracPredloga:Veliko je definiran le za liha praštevila p. Upošteva enaka pravila kot Jacobijev simbol (torej recipročnost in suplementarne formule za Predloga:VelikoPredloga:SfracPredloga:Veliko in Predloga:VelikoPredloga:SfracPredloga:Veliko ter multiplikativnost števca.)

Problem: Če je 9907 praštevilo, izračunaj Predloga:VelikoPredloga:SfracPredloga:Veliko.

Z uporabo Legendrovega simbola

(10019907)=(99071001)=(8981001)=(21001)(4491001)=(4491001)=(1001449)=(103449)=(449103)=(37103)=(10337)=(2937)=(3729)=(829)=(229)3=1.

Z uporabo Jacobijevega simbola

(1945)=1 in 1945121(mod45).(821)=1 toda 821121(mod21).(521)=1 toda 5211216(mod21).

Razlika med obema izračunoma je v tem, da mora biti Legendrov simbol, ko je uporabljen kot števec, najprej faktoriziran, kasneje šele obrnjen. To spremeni izračun Legendrovega simbola opazno počasnejšega kot Jacobijevega simbola, ker sedaj še ni znan algoritem za polinomsko-časovno faktoriziranje celih števil.[4] Ravno zato je tudi Jacobi vpeljal svoj simbol.

Praštevilski test

Obstaja še ena stvar, v kateri se oba simbola razlikujeta. Če se za modulo sestavljenega števila uporablja Eulerjeva kriterijska formula, potem je rezultat lahko ali pa ni vrednost Jacobijevega simbola, v resnici lahko celo ni niti −1 niti 1. Na primer

(1945)=1 in 1945121(mod45).(821)=1 toda 821121(mod21).(521)=1 toda 5211216(mod21).

Torej če je znano, ali je število n praštevilo ali sestavljeno število, lahko izberemo naključno število a, izračunamo Jacobijev simbol Predloga:VelikoPredloga:SfracPredloga:Veliko in ga primerjamo z Eulerjevo formulo; če se razlikuje v modulu n, potem je n sestavljeno število; če pa ima enak ostanek v modulu n za več različnih vrednosti a, potem pa je n "verjetno praštevilo".

To je osnova verjetnostnega Solovay–Strassen praštevilskega testa in zožitve, kot so Baillie-PSW praštevilski test in Miller–Rabin praštevilski test.

Kot posredna uporaba, je to možno uporabiti tudi kot zaznavo napake med izvajanjem Lucas-Lehmer praštevilskega testa, ki se tudi na sodobnih računalnikih lahko izvaja tudi več tednov za izračunavanje Mersennovih števil, ki so višja od 282,589,9331 (največje znano Mersennovo število (decembra 2018). V posebnem primeru, je Jacobijev simbol:

(si2Mp)=1i0

To drži tudi za končni ostanek sp2 in se torej lahko uporablja kot potrditev verjetne veljavnosti. A če se na trdih komponentah računalnika zgodi napaka, potem obstaja 50% možnost, da bo rezultat postal 0 ali 1, in se ne bo spreminjal s s (razen če se zgodi še ena napaka, potem se spremeni nazaj na -1).

Glej tudi

Sklici

Predloga:Sklici

Viri

Zunanje povezave

  1. Predloga:Navedi revijo
  2. Ireland & Rosen pp. 56–57 or Lemmermeyer p. 10
  3. Cohen, pp. 29–31
  4. The number field sieve, the fastest known algorithm, requires