Urganch davlat universiteti axborot texnologiyalari kafedrasi



Download 13,56 Mb.
Pdf ko'rish
bet60/99
Sana31.12.2021
Hajmi13,56 Mb.
#262961
1   ...   56   57   58   59   60   61   62   63   ...   99
Bog'liq
akademik litsey kasb hunar kollejlarda informatika fanidan olimpiada masalalarini ishlash boyicha korsatmalar

    Bu sahifa navigatsiya:
  • Begin
 

procedure run(var fIn,fOut:text; patt:aChar;m:

byte


; f:aPos); 

  

var c:

char




      pp:

byte


      tp:

longint



Begin 



  pp:=

0

;tp:=



0

  



while 

true 


do begin 

    if eof(fIn) then 

break

    read(fIn,c); inc(tp); 



    

while (pp>

0



and (patt[pp+

1

]<>c) 



do 

      pp:=f[pp]; 

      


if patt[pp+

1

]=c 



then inc(pp); 

      


if pp=m then begin 

        write(fOut,

' '


,tp-m+

1

); 



        pp:=f[pp]; 

       


end 

      end

     


end

    


 

Yechimning 

tahlili. 

Endi 


keltirilgan 

prosedura 

bajarilganda 

simvollar 

taqqoslanishlarining  miqdorini  baholaymiz.  Ta’kidlaymiz:  tashqi  tp  sikl  tanasining  har  bir 

bajarilishida 1 ga kattalashadi, pp da esa 1 ga kattalashadi va f[pp] ning ozlashtirilishini hisobiga 

hech bo‘lmasa minimum 1 ga kamayishi mumkin. Navbatdagi tp(1 dan n  gacha ) qiymatida pp 

ning  boshlang‘ich  qiymatini  b(tp)  orqali,  w(tp)  orqali  esa  matndagi  tp  ning  bir  va  aynan  bir 

pozitsiyasida pp kamayishlarining miqdorini belgilaymiz.  

 

U jolda tp>1 da b(tp) b(tp-1)-w(tp)+1, 



Bu yerdan w(tp)   b(tp-1)- b(tp)+1. 

Demak , 


W(1)+w(2)+….w(n)

 1+b[1]-b[2]+1++b[2]-b[3]+1+…+b[n-1]-b[n]+1= n + b[1]-b[2]

 n+1. 

Algoritmni  amalga  oshirishdan  ko‘rinib  turibdiki,  tp  ning  har  bir  qiymatida,  agarda  {*} 



siklning  bajarishlarini  hisobga  olmasa  ularning  har  biri  yana  bitta  taqqoslashni  qo‘shganida, 

simvollar ikki  martadan ko‘p bo‘lmagan miqdorda taqqoslanadi. Biroq  tp n-1 marta ortadi, {*} 

siklini  bajarilishining  umumiy  miqdori  esa,  ya’ni  pp  qiymatlarning  kamayishi  n+1  dan  ko‘p 

bo‘lmagan marta, shuning uchun taqqoslashlarning umumiy soni 2n-2+n+1 dan ko‘p bo‘lmagan 

marta  o‘zgaradi,  ya’ni  O(n)  bahoga  ega  bo‘ladi.  Matnning  har  bir  simvolli  aqalli  bir  marta 

taqqoslansa  O(n)  bahoni  olamiz.  Qaytishlar  funksiyasini  hisobga  olgan  holda  quyidagi  xulosa 

keltiramiz: uzunligi  n  matnga uzunligi m  namunaning  barcha  kirishlarining  izlanishining ushbu 

amalga  oshirishi  simvollarning 

  taqqoslanishni  talab  etadi.  Summar  qiyinchilik 

taqqoslashlar  miqdoriga  to‘g‘ri  proparsional,  shuning  uchun  qiyinchilikning  umumiy  bahosi 

ham

 hisoblanadi.  



Eslatma. KMP algoritmi eng  yomon  holda ham chiziqli qiyinchilikni ta’minlaydi, biroq 

o‘rtachasini olganda u samarali hisoblanadi. Yomon xollarda kvadratik baholashga ega bo‘lgan 

boshqa algoritmlar  ham mavjud, biroq o‘rtachasini olganda KMP algoritmiga qaraganda tezroq 

ishlaydi ( taxminan 2-3 marta). Boshqa g‘oyalarga asoslangan bu algoritmlar [39] da, esa bittasi 

[22] da kengroq keltirilgan. Bir o‘lchamli amalga oshirish uchun ular yaroqli emas.  

Masalan yechilishning to‘liq dasturi yozilsin.  

Masalani  namunalar  bir  necha,  masalan,  1  dan  20  gacha,  bo‘lgan  hol  uchun  yechish. 

Ko‘rsatma  har  bir  namuna  uchun  qaytishlar  funksiya  tuzilsin  va  uning  qiymati  navbatdagi 




simvoliga  qaralsin.  Masalan namunaning matnga navbatdagi kirishi faqat oldingining tugashidan 

keyin boshlanishi mumkin bo‘lgan hol uchun yechilsin. Masalan aa faqat 1 marta 1 pozitsiyadan 

boshlab  namuna  aa  matnga  kiradi.  Ko‘rsatma:  namuna  kirishi  topilgandan  keyin  namunadagi 

joriy pozitsiyani 0 ga teng deb olish kerak. 



Mashqlar 

2.1  Uzunligi 

  katta  bo‘lmagan bo‘lmagan  longit  tipidagi  qiymatlar  ketma-  ketligida 

bittadan  tashqari  barcha  qiymatlar  juft  son  marta  bittasi  esa  toq  son  marta  o‘zgaradi.  Ushbu 

qiymat aniqlansin. 

2.2 Kiruvchi matndagi har bir harflarning paydo bo‘lishlarining miqdorini hisoblang. 

2.3  Butun    n  lar qatoridan ko‘paytmalar maksimol bo‘lgan 10 ta  sonni tanlang. Kirish 

matnnig birinchi qatorida – sonlar miqdori n, 3

 keyingi n ta qatorda – integer tipidagi 

butun  sonlar.  Chiqish  ixtiyoriy  tartibdagi  10  ta  son.  Agar  yechimlar  bir  nechta  bo‘lsa,  ulardan 

istalgani chiqarilsin. 

2.4  2vn  ta  musbat  sonlar  berilgan  bo‘lib  ularni  juftlarga  shunday  ajratish  mumkinki, 

ularning  simvollari  bir  hil  son  bo‘ladi.  Bu  sonlarni  juftlashlardagi  ko‘paytmalari  bir  xil 

bo‘ladigan juftliklarga ajratish mumkinligi aniqlansin. 

Kirish. Matning birinchi qatori n ta sondan iborat (1

 keyingi  n qatorlarda 



n

a

a

a

...


..........

,

2



1

 natural son berilgan . 

Chiqish: agar izlanayogan ajratilshi mavjud bo‘lsa 1, aks holda 0. 

2.5 Matnda longit tipidagi natural sonlar ketma-ketligi yozilgan. 

a)  Ma’lumki  undagi  qandaydir  son,  qolganlari  hammasi  birga  olingan  holdagiga 

qaraganda ham, ko‘proq uchrashadi ushbu son topilsin . 

b)  Undagi  qandaydir  son,  qolganlari  hammasi  birga  olingan  holdagiga  qaraganda  ham 

ko‘proq,  uchrashadi  deb  taxmin  qilinadi.  Shundaymi  yoki  yo‘qligi  aniqlansin,  agar  shunday 

bo‘lsa shu son topilsin. 

2.6 Mijozlar sartorashga kelishadilar, agar navbat bo‘lsa navbat oladilar  va tartibda soch 

oladiradilar. Mijoz sochini olib bo‘lgan usta keyingisining sochini olishga tayyor bo‘ladi. Har bir 

mijoz uchun  uning sochini oilsh  t  vaqti ma’lum: mijoz soch olish boshangandan  t  vaqt o‘tgach 

ketadi.  

Kirsh:  Matnning  birinchi  qatorida  –mijozlar  miqdori 

)

10

1



(

6



 m

m

.  Navbatdagi  t 

qatorda  butun  musbat  sonlar  juftigi  yozilgan.  –Mijozning  kelish  payti  va  uning  soch  oldirish 

vaqti. Kelish paytlari vaqtning boshlang‘ich momentiga nisbatan berilgan va kamaytirilmaydigan 

ketma-ketlikni shakllantirmaydi. Ketish mamentlari aniqlansin. 

2.7 Musbat butun sonda raqamni shunday o‘chirish kerakki, qolgan son iloji boricha katta 

son  bo‘lsin.  Kirish  va  Chiqish:  sonli  matn  qator  uzunligi  10

5

  dan  katta  emas.  Masalan,  321 



kirishga 32 chiqish, 123 ga -23 chiqish mos keladi. 

2.8  Matnda  probellar  va  punktuatsiya  belgilari  bilan  ajratilgan  alfavitdagi  a,…,z 

harflardan  tuzilgan  so‘zlar  ihtiyoriy  miqdorda  tuzilgan.  So‘zlar  qatordan  qatorga  bo‘lib 

o‘tkazilmaydi. Punktuatsiya belgilari – 

"

,

"



,

"

"



,

"

;



"

,

":"



Bir letirli  so‘zlarni, ortiqcha probellarni  va 

punktuatsiya belgilarini yo‘q qiluvchi matanni son qiluvchi dastur yozilsin. 

2.9  Matnda 0  va 1  simvollar  mavjud bo‘lib, ularning  ketma-ketligi matnning  qatorlarga 

ajratilishiga  qaramasdan  uzluksiz  hisoblanadi.  Uzunligi  1000  dan  katta  bo‘lmagan  alohida 

qatorlarda berilgan 0 va 1 dan iborat namunalar matnda mavjudmi yoki aniqlash dasturi yozilzin. 




Masalan 00 va 11 qatorlar bilan shakllantirilgan matnda 001 va 011 namunalar mavjud va 10 va 

111 namunalar mavjud emas.  



Kirish: potterns.txt  matnning  birinchi  qatorida  i miqdorda  namunalar  (1 dan  20  gacha  ) 

mavjud. Navbatdagi uzunligi 1000 dan katta bo‘lmagan n ta qatorda namunalar mavjud. text.txt 

matnning 

9

10



2 

dan ko‘p bo‘lmagan qatorlari 1000 dan katta bo‘lmagan uzunlikka ega va 0 va 1 

dan iborat ketma-ketlikka ega. Undagi namunalarning kirishi topilsin.  

Chiqish:  namunalarga  mos  keluvchi  qatorlarning  ketma-ketligi.  Agar  namuna  matnga 

kirmasa, qatorda 0 simvoli, aks holda 1 simvoli va ikkita butun son- matndagi qatorning raqami 

va namuna matnga kiradigan qatordagi pozitsiya raqami yoziladi. Masalan, yuqorida ko‘rsatilgan 

matn qatori va namunalar uchun birinchi qatorda 11, ikkinchi qatorda -12, uchinchi va to‘rtinchi 

qatorda 0 bo‘ladi. 




Download 13,56 Mb.

Do'stlaringiz bilan baham:
1   ...   56   57   58   59   60   61   62   63   ...   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