Olimpiada masalalari



Yüklə 0,83 Mb.
səhifə14/34
tarix30.03.2023
ölçüsü0,83 Mb.
#91326
1   ...   10   11   12   13   14   15   16   17   ...   34
Olimpiada masalalari

1) a va b sonlarining chiziqli kombinatsiyasi sifatida 1 ni olish yo‘li orqali ах + by = 1 tenglamaning butun yechimi topiladi (bu tenglamaning butun yechimlarini topishning boshqa usullari ham mavjud, masalan zanjirli kasrlarni ishlatish yo‘li orqali );
2) Bu tenglamadagi butun yechimlarning umumiy formulasi tuziladi:

bu yerda, x0, y0 - ах + by = 1 tenglamaning butun yechimlari, t—ixtiyoriy butun son.
t ga absolut kattalik bo‘yicha eng kichik musbat (agar mumkin bo‘lsa) va boshqa butun qiymatlarni berib, bu tenglamaning xususiy yechimlarini olsa bo‘ladi.
123-misol. 407х - 2816у = 33 tenglamaning butun yechimlarini toping.


Yechish


1) Berilgan tenglamani 37х - 256у = 3 ko‘rinishga keltirib, soddalashtiramiz.
2) 37x - 256y = 1 tenglamani yechamiz.



. .
3) Berilgan tenglamaning yechimlarini quyidagi formulalar orqali topamiz:

Javob:
Noaniq tenglamalarni yechuvchi dasturni tuzish uchun bizga uchta vazifani hal qilishga tog‘ri keladi:
1) Tenglamaning yechimlarini aniqlash uchun EKUBni topish – buni bizga ma’lum bo‘lgan protsedura orqali amalga oshirish oson;
2) ах + by = 1 ko‘rinishidagi tenglamaning bitta yechimini topish va
3) a va b ning ishoralarini va formulasini hisobga olgan holda yechimning umumlashgan natijalarini chiqarish;

ах + by = 1 ko‘rinishidagi tenglamani yechish dasturi to‘laligicha quyidagi ko‘rinishda bo‘ladi:




Xato!
#include
using namespace std;
int EKUB(int a, int b)
{
int EKUB1;
if (b = 0) EKUB1 = abs(a);
else
EKUB1 = EKUB(abs(b), abs(a) % abs(b));
return EKUB1;
}
void the_equation(int a, int b)
{
int max, x, y, n;
{
if (EKUB(a, b) != 1)
cout << "Tenglama yechimga ega emas";
if (abs(a) > abs(b))
max = abs(a);
else max = abs(b);
for (x = -max; x <= max; x++)
for (y = -max; y <= max; y++)
{
if ((a*x + b*y == 1) && (a > 0) && (b > 0))
{
cout << "Tenglamaning yechimi x= " << x << "+" << b << "*t"<< "y = " << y << "-" << a << "*t" << endl;
cout << "bu yerda t –ixtiyoriy butun son";
return;
}
if ((a*x + b*y == 1) && (a < 0) && (b > 0))
{
cout << "Tenglamaning yechimi x= " << x << "+" << b << "*t" << "y = " << y << "-" << a << "*t" << endl;
cout << "bu yerda t –ixtiyoriy butun son";
return;
}
if ((a*x + b*y == 1) && (a < 0) && (b < 0))
{
cout << "Tenglamaning yechimi x= " << x << "+" << b << "*t" << "y = " << y << "-" << a << "*t" << endl;
cout << "bu yerda t –ixtiyoriy butun son";
return;
}
if ((a*x + b*y == 1) && (a < 0) && (b > 0))
{
cout << "Tenglamaning yechimi x= " << x << "+" << b << "*t" <<"y = " << y << "-" << a << "*t" << endl;
cout << "bu yerda t –ixtiyoriy butun son";
return;
}
}
}
}
int main()
{
int a, b;
cout << "x ning koeffitsiyentini kiriting a="; cin>>a;
cout << "y ning koeffitsiyentini kiriting b="; cin >>b;
the_equation(a, b);
return 0;
}



Yüklə 0,83 Mb.

Dostları ilə paylaş:
1   ...   10   11   12   13   14   15   16   17   ...   34




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin