Kaip išspręsti tiesinę diofantinę lygtį

Autorius: Mark Sanchez
Kūrybos Data: 5 Sausio Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
Linear Diophantine Equations | Road to RSA Cryptography #3
Video.: Linear Diophantine Equations | Road to RSA Cryptography #3

Turinys

Norėdami išspręsti tiesinę Diofantino lygtį, turite rasti kintamųjų „x“ ir „y“ reikšmes, kurios yra sveikieji skaičiai. Sveikasis skaičius yra sudėtingesnis nei įprasta ir reikalauja konkrečių veiksmų. Pirmiausia turite apskaičiuoti didžiausią bendrąjį koeficientų daliklį (GCD), o tada rasti sprendimą. Radę vieną sveikų skaičių sprendimą tiesinei lygčiai, galite naudoti paprastą modelį ir rasti begalę kitų sprendimų.

Žingsniai

1 dalis iš 4: Kaip parašyti lygtį

  1. 1 Užrašykite lygtį standartine forma. Tiesinė lygtis yra lygtis, kurioje kintamųjų rodikliai neviršija 1. Norėdami išspręsti tokią tiesinę lygtį, pirmiausia parašykite ją standartine forma. Standartinė linijinės lygties forma atrodo taip: Ax+By=C{ displaystyle Ax + By = C}, kur A,B{ displaystyle A, B} ir C{ displaystyle C} - Sveiki skaičiai.
    • Jei lygtis pateikta kita forma, perkelkite ją į standartinę formą naudodami pagrindines algebrines operacijas. Pavyzdžiui, atsižvelgiant į lygtį 23x+4y7x=3y+15{ displaystyle 23x + 4y -7x = -3y + 15}... Pateikite panašius terminus ir parašykite lygtį taip: 16x+7y=15{ displaystyle 16x + 7y = 15}.
  2. 2 Supaprastinkite lygtį (jei įmanoma). Rašydami lygtį standartine forma, pažiūrėkite į koeficientus A,B{ displaystyle A, B} ir C{ displaystyle C}... Jei šie koeficientai turi GCD, padalinkite visus tris koeficientus iš jo. Tokios supaprastintos lygties sprendimas taip pat bus pirminės lygties sprendimas.
    • Pavyzdžiui, jei visi trys koeficientai yra lygūs, padalinkite juos bent iš 2. Pavyzdžiui:
      • 42x+36y=48{ displaystyle 42x + 36y = 48} (visi nariai dalijasi iš 2)
      • 21x+18y=24{ displaystyle 21x + 18y = 24} (dabar visi nariai dalijasi iš 3)
      • 7x+6y=8{ displaystyle 7x + 6y = 8} (šios lygties nebeįmanoma supaprastinti)
  3. 3 Patikrinkite, ar lygtį galima išspręsti. Kai kuriais atvejais galite iš karto pasakyti, kad lygtis neturi sprendimų. Jei koeficientas „C“ nesidalija iš koeficientų „A“ ir „B“ GCD, lygtis neturi sprendimų.
    • Pavyzdžiui, jei abu koeficientai A{ displaystyle A} ir B{ displaystyle B} yra lygūs, tada koeficientas C{ displaystyle C} turi būti lygus. Bet jei C{ displaystyle C} keista, tada sprendimo nėra.
      • Lygtis 2x+4y=21{ displaystyle 2x + 4y = 21} nėra sveikų skaičių sprendimų.
      • Lygtis 5x+10y=17{ displaystyle 5x + 10y = 17} nėra sveikųjų skaičių sprendimų, nes kairioji lygties pusė dalijasi iš 5, o dešinė - ne.

2 dalis iš 4: Kaip parašyti Euklido algoritmą

  1. 1 Suprasti Euklido algoritmą. Tai yra pasikartojančių padalijimų serija, kurioje ankstesnis likutis naudojamas kaip kitas daliklis. Paskutinis daliklis, dalijantis skaičius vientisai, yra didžiausias bendras daliklis (GCD) iš dviejų skaičių.
    • Pavyzdžiui, suraskime skaičių 272 ir 36 GCD naudodami Euklido algoritmą:
      • 272=736+20{ displaystyle 272 = 7 * 36 + 20} - Padalinkite didesnį skaičių (272) iš mažesnio (36) ir atkreipkite dėmesį į likusią dalį (20);
      • 36=120+16{ displaystyle 36 = 1 * 20 + 16} - padalinkite ankstesnį daliklį (36) iš ankstesnio likučio (20). Atkreipkite dėmesį į naują liekaną (16);
      • 20=116+4{ displaystyle 20 = 1 * 16 + 4} - padalinkite ankstesnį daliklį (20) iš ankstesnio likučio (16). Atkreipkite dėmesį į naują liekaną (4);
      • 16=44+0{ displaystyle 16 = 4 * 4 + 0} - Padalinkite ankstesnį daliklį (16) iš ankstesnio likučio (4). Kadangi likusi dalis yra 0, galime pasakyti, kad 4 yra pradinių dviejų skaičių 272 ir 36 GCD.
  2. 2 Taikykite Euklido algoritmą koeficientams „A“ ir „B“. Rašydami tiesinę lygtį standartine forma, nustatykite koeficientus „A“ ir „B“, tada pritaikykite jiems Euklido algoritmą, kad surastumėte GCD. Pavyzdžiui, duota tiesinė lygtis 87x64y=3{ displaystyle 87x-64y = 3}.
    • Štai Euklido algoritmas koeficientams A = 87 ir B = 64:
      • 87=164+23{ displaystyle 87 = 1 * 64 + 23}
      • 64=223+18{ displaystyle 64 = 2 * 23 + 18}
      • 23=118+5{ displaystyle 23 = 1 * 18 + 5}
      • 18=35+3{ displaystyle 18 = 3 * 5 + 3}
      • 5=13+2{ displaystyle 5 = 1 * 3 + 2}
      • 3=12+1{ displaystyle 3 = 1 * 2 + 1}
      • 2=21+0{ displaystyle 2 = 2 * 1 + 0}
  3. 3 Raskite didžiausią bendrą veiksnį (GCD). Kadangi paskutinis daliklis buvo 1, GCD 87 ir 64 yra 1. Taigi 87 ir 64 yra pirminiai skaičiai vienas kito atžvilgiu.
  4. 4 Analizuokite rezultatą. Kai rasite gcd koeficientus A{ displaystyle A} ir B{ displaystyle B}, palyginkite jį su koeficientu C{ displaystyle C} pradinė lygtis. Jei C{ displaystyle C} dalijasi iš gcd A{ displaystyle A} ir B{ displaystyle B}, lygtis turi sveikų skaičių sprendimą; priešingu atveju lygtis neturi sprendimų.
    • Pavyzdžiui, lygtis 87x64y=3{ displaystyle 87x-64y = 3} galima išspręsti, nes 3 dalijasi iš 1 (gcd = 1).
    • Pavyzdžiui, tarkime, kad GCD = 5. 3 nėra tolygiai dalijamasi iš 5, todėl šioje lygtyje nėra sveikųjų skaičių sprendinių.
    • Kaip parodyta žemiau, jei lygtyje yra vienas sveikojo skaičiaus sprendimas, ji taip pat turi begalę kitų sveikų skaičių sprendinių.

3 dalis iš 4: Kaip rasti sprendimą naudojant Euklido algoritmą

  1. 1 Suskaičiuokite GCD apskaičiavimo veiksmus. Norėdami rasti tiesinės lygties sprendimą, turite naudoti Euklido algoritmą kaip pakeitimo ir supaprastinimo proceso pagrindą.
    • Pradėkite numeruojant GCD apskaičiavimo veiksmus. Skaičiavimo procesas atrodo taip:
      • 1 žingsnis:87=(164)+23{ displaystyle { text {1 veiksmas}}: 87 = (1 * 64) +23}
      • 2 žingsnis:64=(223)+18{ displaystyle { text {2 veiksmas}}: 64 = (2 * 23) +18}
      • 3 žingsnis:23=(118)+5{ displaystyle { text {3 veiksmas}}: 23 = (1 * 18) +5}
      • 4 žingsnis:18=(35)+3{ displaystyle { text {4 veiksmas}}: 18 = (3 * 5) +3}
      • 5 žingsnis:5=(13)+2{ displaystyle { text {5 veiksmas}}: 5 = (1 * 3) +2}
      • 6 žingsnis:3=(12)+1{ displaystyle { text {6 veiksmas}}: 3 = (1 * 2) +1}
      • 7 žingsnis:2=(21)+0{ displaystyle { text {7 veiksmas}}: 2 = (2 * 1) +0}
  2. 2 Atkreipkite dėmesį į paskutinį žingsnį, kuriame yra likutis. Perrašykite šio veiksmo lygtį, kad izoliuotumėte likusią dalį.
    • Mūsų pavyzdyje paskutinis žingsnis su likučiu yra 6 veiksmas. Likusi dalis yra 1. Perrašykite 6 veiksmo lygtį taip:
      • 1=3(12){ displaystyle 1 = 3- (1 * 2)}
  3. 3 Izoliuokite likusią ankstesnio veiksmo dalį. Šis procesas yra žingsnis po žingsnio „judėjimas aukštyn“. Kiekvieną kartą likusią dalį izoliuosite ankstesniame žingsnyje.
    • 5 veiksme išskirkite likusią lygties dalį:
      • 2=5(13){ displaystyle 2 = 5- (1 * 3)} arba 2=53{ displaystyle 2 = 5-3}
  4. 4 Pakeisti ir supaprastinti. Atkreipkite dėmesį, kad 6 veiksmo lygtyje yra skaičius 2, o 5 veiksmo lygtyje skaičius 2 yra izoliuotas. Taigi vietoj „2“ 6 veiksmo lygtyje pakeiskite 5 veiksmo išraišką:
    • 1=32{ displaystyle 1 = 3-2} (6 veiksmo lygtis)
    • 1=3(53){ displaystyle 1 = 3- (5-3)} (vietoj 2 buvo pakeista išraiška)
    • 1=35+3{ displaystyle 1 = 3-5 + 3} (atidaryti skliausteliuose)
    • 1=2(3)5{ displaystyle 1 = 2 (3) -5} (supaprastinta)
  5. 5 Pakartokite pakeitimo ir supaprastinimo procesą. Pakartokite aprašytą procesą, eidami Euklido algoritmu atvirkštine tvarka. Kiekvieną kartą perrašysite ankstesnio veiksmo lygtį ir prijungsite ją prie paskutinės gautos lygties.
    • Paskutinis žingsnis, į kurį žiūrėjome, buvo 5 žingsnis. Taigi pereikite prie 4 veiksmo ir išskirkite likusią to veiksmo lygties dalį:
      • 3=18(35){ displaystyle 3 = 18- (3 * 5)}
    • Pakeiskite šią išraišką „3“ paskutinėje lygtyje:
      • 1=2(1835)5{ displaystyle 1 = 2 (18-3 * 5) -5}
      • 1=2(18)6(5)5{ displaystyle 1 = 2 (18) -6 (5) -5}
      • 1=2(18)7(5){ displaystyle 1 = 2 (18) -7 (5)}
  6. 6 Tęskite pakeitimo ir supaprastinimo procesą. Šis procesas bus kartojamas tol, kol pasieksite pradinį Euklido algoritmo žingsnį. Proceso tikslas yra parašyti lygtį su pradinės lygties 87 ir 64 koeficientais, kuriuos reikia išspręsti. Mūsų pavyzdyje:
    • 1=2(18)7(5){ displaystyle 1 = 2 (18) -7 (5)}
    • 1=2(18)7(2318){ displaystyle 1 = 2 (18) -7 (23-18)} (pakeista 3 veiksmo išraiška)
      • 1=2(18)7(23)+7(18){ displaystyle 1 = 2 (18) -7 (23) +7 (18)}
      • 1=9(18)7(23){ displaystyle 1 = 9 (18) -7 (23)}
    • 1=9(64223)7(23){ displaystyle 1 = 9 (64-2 * 23) -7 (23)} (pakeista 2 veiksmo išraiška)
      • 1=9(64)18(23)7(23){ displaystyle 1 = 9 (64) -18 (23) -7 (23)}
      • 1=9(64)25(23){ displaystyle 1 = 9 (64) -25 (23)}
    • 1=9(64)25(8764){ displaystyle 1 = 9 (64) -25 (87-64)} (pakeista 1 veiksmo išraiška)
      • 1=9(64)25(87)+25(64){ displaystyle 1 = 9 (64) -25 (87) +25 (64)}
      • 1=34(64)25(87){ displaystyle 1 = 34 (64) -25 (87)}
  7. 7 Perrašykite gautą lygtį pagal pradinius koeficientus. Grįžę prie pirmojo Euklido algoritmo žingsnio pamatysite, kad gautoje lygtyje yra du pradinės lygties koeficientai. Perrašykite lygtį taip, kad jos sąlygų tvarka atitiktų pradinės lygties koeficientus.
    • Mūsų pavyzdyje originali lygtis 87x64y=3{ displaystyle 87x-64y = 3}... Todėl gautą lygtį perrašykite taip, kad koeficientai būtų suderinti.Ypatingą dėmesį atkreipkite į koeficientą „64“. Pradinėje lygtyje šis koeficientas yra neigiamas, o Euklido algoritme - teigiamas. Todėl koeficientas 34 turi būti neigiamas. Galutinė lygtis bus parašyta taip:
      • 87(25)64(34)=1{ displaystyle 87 (-25) -64 (-34) = 1}
  8. 8 Norėdami rasti sprendimą, pritaikykite atitinkamą daugiklį. Atkreipkite dėmesį, kad mūsų pavyzdyje GCD = 1, taigi galutinė lygtis yra 1. Tačiau pradinė lygtis (87x-64y) yra 3. Todėl, norint gauti sprendimą, visi galutinės lygties terminai turi būti padauginti iš 3:
    • 87(253)64(343)=13{ displaystyle 87 (-25 * 3) -64 (-34 * 3) = 1 * 3}
    • 87(75)64(102)=3{ displaystyle 87 (-75) -64 (-102) = 3}
  9. 9 Užrašykite sveikųjų skaičių sprendimą į lygtį. Skaičiai, padauginti iš pradinės lygties koeficientų, yra šios lygties sprendimai.
    • Mūsų pavyzdyje parašykite sprendimą kaip koordinačių porą: (x,y)=(75,102){ displaystyle (x, y) = ( - 75, -102)}.

4 dalis iš 4: Raskite begalinius kitus sprendimus

  1. 1 Supraskite, kad yra begalinis sprendimų skaičius. Jei tiesinė lygtis turi vieną sveikų skaičių sprendinį, tai turi būti be galo daug sveikų skaičių sprendinių. Štai greitas įrodymas (algebrine forma):
    • Ax+By=C{ displaystyle Ax + By = C}
    • A(x+B)+B(yA)=C{ displaystyle A (x + B) + B (y-A) = C} (jei prie „x“ pridėsite „B“ ir iš „y“ atimsite „A“, pradinės lygties vertė nesikeis)
  2. 2 Įrašykite pradines x ir y reikšmes. Kitų (begalinių) sprendimų skaičiavimo šablonas prasideda nuo vienintelio jau rastas sprendimas.
    • Mūsų pavyzdyje sprendimas yra koordinačių pora (x,y)=(75,102){ displaystyle (x, y) = ( - 75, -102)}.
  3. 3 Prie „x“ vertės pridėkite „B“ koeficientą. Padarykite tai, kad surastumėte naują x reikšmę.
    • Mūsų pavyzdyje x = -75 ir B = -64:
      • x=75+(64)=139{ displaystyle x = -75 + ( - 64) = - 139}
    • Taigi, nauja reikšmė „x“: x = -139.
  4. 4 Iš „y“ vertės atimkite koeficientą „A“. Kad pradinės lygties vertė nesikeistų, pridėjus vieną skaičių prie „x“, iš „y“ reikia atimti kitą skaičių.
    • Mūsų pavyzdyje y = -102 ir A = 87:
      • y=10287=189{ displaystyle y = -102-87 = -189}
    • Taigi, nauja „y“ reikšmė: y = -189.
    • Nauja koordinačių pora bus parašyta taip: (x,y)=(139,189){ displaystyle (x, y) = ( - 139, -189)}.
  5. 5 Patikrinkite tirpalą. Norėdami patikrinti, ar nauja koordinačių pora yra pirminės lygties sprendimas, prijunkite reikšmes prie lygties.
    • 87x64y=3{ displaystyle 87x-64y = 3}
    • 87(139)64(189)=3{ displaystyle 87 (-139) -64 (-189) = 3}
    • 3=3{ displaystyle 3 = 3}
    • Kadangi lygybė yra įvykdyta, sprendimas yra teisingas.
  6. 6 Užsirašykite išraiškas, kad rastumėte daug sprendimų. „X“ reikšmės bus lygios pradiniam sprendimui ir bet kuriam „B“ koeficiento kartotiniui. Tai galima parašyti taip:
    • x (k) = x + k (B), kur „x (k)“ yra „x“ verčių rinkinys, o „x“ yra originali (pirmoji) „x“ vertė, kurią radote.
      • Mūsų pavyzdyje:
      • x(k)=7564k{ displaystyle x (k) = - 75–64 k}
    • y (k) = y-k (A), kur y (k) yra y reikšmių rinkinys, o y yra originali (pirmoji) y vertė, kurią radote.
      • Mūsų pavyzdyje:
      • y(k)=10287k{ displaystyle y (k) = - 102–87 k}