Urganch davlat universiteti axborot texnologiyalari kafedrasi


 Ikki mo‘jizakor (sehrli) son



Download 13,56 Mb.
Pdf ko'rish
bet90/99
Sana31.12.2021
Hajmi13,56 Mb.
#262961
1   ...   86   87   88   89   90   91   92   93   ...   99
Bog'liq
akademik litsey kasb hunar kollejlarda informatika fanidan olimpiada masalalarini ishlash boyicha korsatmalar

4.2. Ikki mo‘jizakor (sehrli) son. 

4.2.1. e soni 

4.2-masala. Verguldan keyin o‘nlik belgilarining berilgan M miqdorni 

 natural 

logarifm asosining qiymati hisoblanadi. Dastur iloji boricha katta M lar uchun ishlashi kerak. 

Masalaning tahlili e ning qiymatini 

   


 

(4.4)  


Formula yordamida hisoblash mumkin. 

Tayyor butun sonli katta arifmetika uzun masala yechishni juda kichiklashtirishi mumkin – unda 

(4.4)  summaning  surati  va  maxrajini  topish  yetarli 

  summadan 

 summaga o‘tishda maxraj i ga ko‘paytiriladi, surat esa i ko‘paytiriladi va 

1 bilan qo‘shiladi – bunda ishonish mumkin emas. 




Talab  qilinadigan  aniqlik  amalga  oshirilgan  (kengroq  pastda)  olingan  natijani  o‘nlik  ulush 

ko‘rinishida chiqarish qoladi, bu esa juda ham murakkab emas, haqiqatda: agar summa (4.4)  ni 

½!  qo‘shiluvchidan  boshlasa  birdan  kichik.  Takidlaymiz:  A/B  kasirning  verguldan  keyingi 

(o‘nliklar  miqdori)  bitta  raqamning  qiymati  [10*A/B]  ga  teng,  ikkinchi  raqamning  qiymati 

(o‘nliklar va yuzliklar) [100*A/B] ga teng va shu kabilar. Shuning uchun verguldan keyingi M ta 

belgini  chiqarish  uchun  uzun  kasirning  suratini 

  ga  ko‘paytirish  va  [10*A/B]  ni  chiqarish 

mumkin. Bu raqamlarni bittadan ham olish mumkin: kasirni 10 ga M marta ko‘paytiramiz, butun 

qismini  navbatdagi  o‘nlik  raqam  singari  chiqaramiz.  Ulush  qismini  esa  keyingi  ko‘paytirish 

uchun  ishlatamiz  (4.1.3  bo‘limini  qarang,  ixtiyoriy  hisoblash  sistemasi  ishlatilganida  o‘nlik 

chiqarish algoritmi). 

Biroq  agar  uzun  butun  sonli  bo‘lish  bo‘lmasa  (4.4)  ning  qisman  summalarini  taxminiy  o‘nlik 

kasr  ko‘rinishida  bevosita  hisoblash  juda  qulaydir.  Uzun  o‘nlik  kasrning  quyidagicha  talqin 

qilinishini  ishlatamiz:  word  elementlar  massivi,  hisoblash  sistemasining  asosi  –  10000; 

massivning  birinchi  elementi  birinchi  raqamga  (ushbu  asos  bo‘yicha),  ikkinchisi  ikkinchi 

raqamga va shu kabilarga ega bo‘ladi. 

Bizning taqdim qilishda butun qisimini ulush qisimdan ajratib turuvchi vergul (nuqtalar hamma 

vaqt  massivning  birinchi  elementidan  oldin  joylashadi),  ya’ni  fiksotsiyalangan.  Jumladan  agar 

son  juda  kichik  nolga  yaqin  son  bo‘lsa  (masalan;  0,0000123),  massivning  boshlang‘ich 

elementlarining  qandaydir  miqdori  nol  bilan  to‘lgan  bo‘ladi,  ahamiyatga  ega  bo‘lgan  raqamlar 

keyingi  elementlardan  boshlanadi.  Kasirlarni  saqlashning  bunday  usuli  fiksotsiyalangan  nuqtali 

tagdim qilish (fixed point) deyiladi. 

Sonlarni  mashinaviy  “haqiqiy”  tiplarda  (real  extended  va  shu  kabilar)  tagdim  etish  1.23*10

9

 



ko‘rinishdagi  matematik  yozish  bilan  anologikdir,  ya’ni  mantissada  darrov  axamiyatga  ega 

raziryadlar  keladi,  tartib  (ushbu  razryadlarga  nisbatan  vergul  qayerda  joylashishini  haqidagi 

axborot)  esa  alohida  saqlanadi.  Shunday  qilib,  vergul  katta  ahamiyatga  ega  belgiga  nisbatan 

“suzadi” va bunday taqdim qilish suzuvchi nuqta deyiladi (floating point). 

Odatda  suzuvchi  nuqtali  kasrlar  ishlatiladi,  chunki  ushbu  usul  uchun  to‘lib  ketishi  va  aniqlik 

yo‘qotilishining  xavfi  ancha  kichik.  Biroq  ushbu  masalada  arifmetik  amallar  ayniqsa  qo‘shish 

uchun fiksotsiyalangan nuqta qulay.  

“Uzun kasr” tipidagi ikkita o‘zgaruvchini quvvatlab turamiz: curr – joriy n uchun   qo‘shiluvchi 

va sum-

 qisman summaning joriy qiymati. 

(4.4) ga binoan 1/(n-1)! dan 1/n! ga o‘tish uchun uzun kasrni (odatdagi) butun songa bo‘lish va 

ikkita uzun kasrlarni qo‘shish kerak. Odatiy tiplarga buni curr:=curr/n va sum+curr kabi yozish 

mumkin. Uzun kasrlar bilan boshqa arifmetik operatsiyalar kerak emas, yana inesializatsiyaning 

dasturiy operatsiyasi bor sum va corr boshlang‘ich ½ qiymatni o‘zlashtirib olish kerak.  

 

Uzun  kasrni  odatdagi  butun  songa  bo‘lish  va  ulushlarni  qo‘shish  operatsiyalarni  O(M) 



murakkablik bilan amalga oshirish mumkin, bu yerda M – uzun sondagi raqamlar miqdori. 

Shartli xatarli moment bor – qo‘shiluvchilar soni emas, balki verguldan keyingi belgilar miqdori 

berilgan. Verguldan keyin berilgan miqdori belgilarni olish uchun qancha qo‘shiluvchilarni olish 

kerakligi noma’lum. Shunday qaror qabul qilamiz: talab qilinadigan 10



-M

 aniqlikdan navbatdagi 

qo‘shiluvchi  kam  bo‘lsa,  to‘xtaymiz.  (4.4)  formula  uchun  to‘xtashning  kretriysi  to‘g‘ri  deb 

so‘zga  ishonishga  iltimos  qilamiz,  biroq  umuman  o‘xshash  narsalarni  tasdiqlash  uchun  jiddiy 

matematik  tahlil  zarur.  Chunki  hamma  1+1/2+1/3+…+1/n+…  qator  mavjud,  unda 

qo‘shiluvchilar monoton ravishda nolga, summa esa – cheksizlikka intiladi. 

Bizning  uchun  sonlarda  verguldan  keyin  nechta  belgini  ta’minlash  kerak?  Shartda  “verguldan 

keyin  o‘nlab  belgilarning  M  miqdori”  berilgan,  shuning  uchun  birinchi  qarashda  10000  asos 

bo‘yicha  [M/4]  belgi  yetarli.  Biroq  fiksotsiyalangan  nuqtali  tagdim  qilishga  yaxlitlash  ishtirok 

etadi.  Demak,  xatolik  ham  mavjud.  Bundan  ham  yomoni,  xatoliklar  algoritmning  ishlash 

jarayonida to‘planib boradi (summa xatoligi “o‘ziga” qo‘shiluvchi xatoliklarini “tashlaydi”). 

(4.4) formula bo‘yicha hisoblashda xatoliklar juda sekin to‘planadi. curr (1/6 dan boshlab) ning 

barcha qiymatlari taxminiy hisoblanadilar, biroq o‘zimiz ushbu taxminning aniqligini tanlaymiz. 




Verguldan  keyingi  k  belgilarning  (10000  asosli  sistemada)  aniqligi  tanlangan  deylik.  curr  ning 

yangi  qiymatini  hisoblashda  avvalgi  (taxminiy)  qiymat  butun  joriy  n  qiymatga  bo‘linadi.  Shu 

tufayli,  curr  songa  bo‘linmasin  absolyut  xatolik  o‘smaydi  va  verguldan  keyingi  k  -  razryadda 

birdan  oshmaydi.  Demak  n  ta  qo‘shiluvchi  qo‘shib  n*10000



-k

  dan  katta  bo‘lmagan  absolyut 

xatolikni olamiz. 

Qanday n va M lar bilan ishlash mumkinligini aniqlashtiramiz. Agar DOS kompilyatorlari tomon 

qo‘yiladigan  massiv  o‘lchami  64  Kb  ga  qo‘yilgan  cheklovlardan  kelib  chiqsak  biz 

 

o‘nlik  belgidan  ko‘p  olishga  erisha  olmaymiz.  O‘nta  mos  keluvchi  n  qiymatni  topish  maqsada 



131000*ln10  gacha  yetguncha  siklda 

  ni  hisoblaymiz. 

  ekanligini 

olamiz ya’ni uni taqdim qilish uchun word yoki integer ni ishlatish mumkin. Agarda katta aniqlik 

(millionlab  o‘nlik  belgi)  kerak  bo‘lsa  u  holda  (32-bitli  kompilyatorga)  n  ni  longintga  tagdim 

qilishga to‘g‘ri keladi va uzun kasrni songa bo‘lishni word tilida emas balki longint tilida yozish 

kerak. 

N  ning  bunday  qiymatlarida  barcha  ichki  hisoblashlarni  natijani  chiqarish  kerak  bo‘lgan 

aniqlikdan  2  belgiga  (1000  asosli  sistema)  aniqlikda  amalga  oshirish  kerak.  M/4  yaxlitlanish 

bilan ovvora bo‘lmaslik uchun USED_CELLS:=(M div 4)+3 ni ishlatamiz. 



curr  qo‘shiluvchilar  kattaligi  doimo  kamayadi  va  katta  n  larda  katta  curr  raziryadlarining 

sezilarli  qismi  0  ga  teng  shuning  uchun  zarur  bo‘lgan  ishdan  xoli  bo‘lish  uchun  uzun  kasrga 

raqamlar  massiv  va  USED_KELLS  (yuqori  aniqlikka  qaralsin)  indeksidan  tashqari  nolga  teng 

bo‘lmagan elementning kichik indeksi ham saqlaymiz. 




Download 13,56 Mb.

Do'stlaringiz bilan baham:
1   ...   86   87   88   89   90   91   92   93   ...   99




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish