Savol: Matritsani matritsaga ko‘paytiring


Download 1.3 Mb.
bet6/8
Sana24.12.2022
Hajmi1.3 Mb.
#1060741
1   2   3   4   5   6   7   8
Bog'liq
911-21 Guruh Talabasi Jumaniyozov Akmalbekning MT Mustaqil ish

Kiruvchi ma’lumotlar: uchta butun son: a, b, c – katta aylanalar radiuslari (1 ≤ a, b, c ≤ 1000).
Chiquvchi ma’lumotlar: To’rtinchi (eng kichik) aylana radiusi. Javobni 10-6 aniqlikda chiqaring.



Kiruvchi ma’lumotlar

Chiquvchi ma’lumotlar

1

1 2 3

0.260870

#include


#include
using namespace std;

int main()


{
double r1,r2,r3,r4,a,b,c,P,Lc;
cout<<"Iltimos radius qiymatini << 1<=r1,r2,r3<=1000>> oraliqda kiriting!!!"<cout<<"r1=";
cin>>r1;
cout<<"r2=";
cin>>r2;
cout<<"r3=";
cin>>r3;
if(1<=r1 and 1<=r2 and 1<=r3 and 1000>=r1 and 1000>=r2 and 1000>=r3) {
a=r1+r2, b=r2+r3, c=r1+r3, P=r1+r2+r3;
Lc=2/(a+b)*pow((a*b*P*(P-c)),1./2);
r4=((Lc-r2)*(r1+2*r2+r3)-(r1+r3)*r2)/(2*(r1+r2+r3));
cout<<"r4="; printf("%.6f",r4);
}
else{
cout<<"<>";
}
return 0;
}

15. Saralash algoritmlarining qiyosiy tahlili
Savol: Elementlari soni n ta, 1 dan boshlab indekslangan bir o’lchamli massiv quyidagi formulabilan aniqlangan:
a= (b∙i2+c∙i+d) mod m;
Bu yerda “mod” amali qoldiq hisoblanadi. Sizning vazifangiz bu massiv elentlarinikamaymaslik tartibda saralab, saralangandan so’ng q ta so’rovga javob berish. Har bir i-so’rovda saralangan massivdagi ki-o’rinda turgan elementning qiymatini chiqarishso’raladi.
Kiruvchi ma’lumotlar
Birinchi qatorda n va q sonlari berilgan(1≤n≤107, 1≤q≤200). Ikkinchi qatorda b, c, d, m butun sonlari bitta probel bilan ajratib berilgan(1≤b,c,d ≤104, 1≤m≤105). Keyingi q taqatorda so’rovlar berilgan. Har bir so’rov massivdagi nechanchi sonni chiqarishkerakligini ifodalovchi ksonidan iborat(1≤ ki ≤n).
Chiquvchi ma’lumotlar
Dastlabki q ta satrda har bir so’rovga javobni ular berilish tartibida chiqaring.
Misollar



Kiruvchi ma’lumotlar

Chiquvchi ma’lumotlar

1

10 7
8 4 7 31
10
5
7
1
5
3
6

29
16
24
9
16
10
19

#include


#include
#include
using namespace std;
int main()
{
unsigned long long n,q,b,c,d,m;
cout<<"n va q ni kiriting: ";
cin>>n>>q;
cout<<"b, c, d va m ni kiriting: ";
cin>>b>>c>>d>>m;
double a[n+1];
unsigned long long k[q];
for(int i=0; icin>>k[i];
for(int i=1; i<=n; i++)
a[i]=fmod((b*i*i+c*i+d),m);
sort(a,a+n+1);
cout<<"Natija\n";
for(int i=0; icout<}

16. Ma’lumotlarni xeshlashtirish.


Xesh jadvali
Ushbu qo'llanmada siz xesh jadvali nima ekanligini bilib olasiz. Shuningdek, siz C, C++, Java va Python tillarida xesh-jadval operatsiyalarining ishchi misollarini topasiz.

Xesh jadvali ma'lumotlar strukturasi elementlarni kalit-qiymat juftliklarida saqlaydi


Kalit - qiymatlarni indekslash uchun ishlatiladigan yagona butun son


Qiymat - kalitlar bilan bog'langan ma'lumotlar.
Xesh jadvali kaliti va ma'lumotlar
Hash jadvalidagi kalit va qiymat
Hashing (xesh funktsiyasi)
Xesh jadvalida kalitlar yordamida yangi indeks qayta ishlanadi. Va ushbu kalitga mos keladigan element indeksda saqlanadi. Bu jarayon xeshlash deb ataladi.

k kalit va h(x) xesh funksiya bo‘lsin.


Bu erda h(k) bizga k bilan bog'langan elementni saqlash uchun yangi indeks beradi Xash To'qnashuvi


Xash funktsiyasi bir nechta tugmalar uchun bir xil indeksni hosil qilganda, ziddiyat paydo bo'ladi (bu indeksda qanday qiymat saqlanishi kerak). Bunga Xash to'qnashuvi deyiladi.

Xash to'qnashuvini quyidagi usullardan biri yordamida hal qilishimiz mumkin.


Zanjir bilan to'qnashuvni hal qilish


Ochiq adreslash: chiziqli/kvadratik zondlash va ikki marta Xeshlash
1. Zanjir bilan to'qnashuvni hal qilish
Zanjirlashda, agar Xash funktsiyasi bir nechta elementlar uchun bir xil indeks hosil qilsa, bu elementlar ikki baravar bog'langan ro'yxat yordamida bir xil indeksda saqlanadi.

Agar j bir nechta elementlar uchun uyasi bo'lsa, unda elementlar ro'yxatining boshiga ko'rsatgich mavjud. Hech element mavjud bo'lsa, j NIL mavjud. Universal xashing


Universal xeshlashda xesh funksiyasi kalitlardan mustaqil ravishda tasodifiy tanlanadi.
// Implementing hash table in C++


#include
#include
using namespace std;


class HashTable
{
int capacity;
list *table;


public:
HashTable(int V);
void insertItem(int key, int data);
void deleteItem(int key);


int checkPrime(int n)
{
int i;
if (n == 1 || n == 0)
{
return 0;
}
for (i = 2; i < n / 2; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
int getPrime(int n)
{
if (n % 2 == 0)
{
n++;
}
while (!checkPrime(n))
{
n += 2;
}
return n;
}


int hashFunction(int key)
{
return (key % capacity);
}
void displayHash();
};
HashTable::HashTable(int c)
{
int size = getPrime(c);
this->capacity = size;
table = new list[capacity];
}
void HashTable::insertItem(int key, int data)
{
int index = hashFunction(key);
table[index].push_back(data);
}


void HashTable::deleteItem(int key)
{
int index = hashFunction(key);


list::iterator i;
for (i = table[index].begin();
i != table[index].end(); i++)
{
if (*i == key)
break;
}


if (i != table[index].end())
table[index].erase(i);
}


void HashTable::displayHash()
{
for (int i = 0; i < capacity; i++)
{
cout << "table[" << i << "]";
for (auto x : table[i])
cout << " --> " << x;
cout << endl;
}
}


int main()
{
int key[] = {231, 321, 212, 321, 433, 262};
int data[] = {123, 432, 523, 43, 423, 111};
int size = sizeof(key) / sizeof(key[0]);


HashTable h(size);


for (int i = 0; i < size; i++)
h.insertItem(key[i], data[i]);


h.deleteItem(12);
h.displayHash();
}
17. Xesh jadvallar.
Xesh jadvali
Ushbu qo'llanmada siz xesh jadvali nima ekanligini bilib olasiz. Shuningdek, siz C, C++, Java va Python tillarida xesh-jadval operatsiyalarining ishchi misollarini topasiz.

Xesh jadvali ma'lumotlar strukturasi elementlarni kalit-qiymat juftliklarida saqlaydi


Kalit - qiymatlarni indekslash uchun ishlatiladigan yagona butun son


Qiymat - kalitlar bilan bog'langan ma'lumotlar.
Xesh jadvali kaliti va ma'lumotlar
Hash jadvalidagi kalit va qiymat
Hashing (xesh funktsiyasi)
Xesh jadvalida kalitlar yordamida yangi indeks qayta ishlanadi. Va ushbu kalitga mos keladigan element indeksda saqlanadi. Bu jarayon xeshlash deb ataladi.

k kalit va h(x) xesh funksiya bo‘lsin.


Bu erda h(k) bizga k bilan bog'langan elementni saqlash uchun yangi indeks beradi


18. Qayta yuklash va qayta aniqlash usullari. Do’stona va virtual funksiyalar ustida amallar

Download 1.3 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling