• 6.4. 6/49 Lotereya masalasi
  • Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr




    Download 6,33 Mb.
    Pdf ko'rish
    bet86/194
    Sana20.02.2024
    Hajmi6,33 Mb.
    #159185
    1   ...   82   83   84   85   86   87   88   89   ...   194
     
    6.2. Tub sonlarga – misol 
    Ichma – ich siklga boshqa bir misol ko‘ramiz. Bizning maqsadimiz [n…m] 
    orasidagi tub sonlarni konsolga chiqarishdan iborat. Biz oraliqni for sikli bilan 
    cheklaymiz va tub sonlarni tekshirish uchun while sikllidan foydalanamiz: 


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    149 
    for sikli n, n+1, … m tubligini oxirida tekshiradi. num qiymati tubligini har bir 
    tashqi siklda tekshiriladi. Mantiqan biz tub sonlarni bilamiz. Dastlab biz prime 
    qiymatini true (rost) deb 
    kiritamiz. Ichki while siklida har bir son 
    tekshiriladi agar num ning 
    bo‘luvchisi bo‘lsa davom etadi aks holda 
    prime false ga teng bo‘ladi. while sikli tugagandan keyin mantiqiy prime qiymati 
    boshqa son yo‘qligini ko‘rsatadi va o‘sha son konsolga chiqariladi. 
    Agar n=3 va m=75 bo‘lsa quyidagi natija chiqadi: 
    6.3. Baxtli sonlarga – misol 


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    150 
    Boshqa misol orqali biz ikki va undan ortiq ichma – ich joylashgan sikllarni 
    ko‘rishimiz mumkin. Bizning maqsadimiz ABCD sonlarini aniqlash. Agar A+B=C+D 
    bo‘lsa (biz bularni omadli raqamlar ) deb ataymiz. Biz buni to‘rtta for siklida 
    bajaramiz. Birinchi sikl minglarni tasvirlaydi. Sikl 1 dan boshlanadi va 0 da to‘xtaydi. 
    Biz yuzlar, o‘nlar va minglar deb belgilaymiz. Biz omadli raqamlarni ichki sikldan 
    tekshirib kelamiz va oxirida konsolga chiqaramiz. Bu yerda dastur kodini kщrib 
    chiыamiz: 
    Bu yerda natija qisman chiqarilgan (butub natija juda uzun): 
    6.4. 6/49 Lotereya masalasi 


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    151 
    Bu misolda biz “6/49” o‘yinida mumkin bo‘lgan barcha kombinatsiyalar 
    mavjudligini topamiz. Biz 6 dan farq qiluvchi hamma sonlarni topamiz va ko‘rsatamiz
    [1…49] oralig‘idagi 6 talik turli raqamlar o‘rin almashtirishlar qiymatlar sonini topib 
    chop etishimiz kerak. Biz 6 ta for siklidan foydalanamiz. Oldingi misolga o‘xshamagan 
    holda sonlar takrorlanmaydi. Sonlar takrorlanmasligi uchun har bir n – ketma –
    ketlik n-1 – ketma –ketlikdan katta bo‘ladigan qilib yozishimiz kerak. Shuning uchun 
    mavjud sikl 1 dan boshlamaydi lekin oldingi siklga +1 ni qo‘shgan sondan boshlaydi. 
    Biz birinchi siklni 44 ga yetguncha olib borishimiz kerak.keyingisi 45 ga yetguncha va 
    hakozo…agar biz hamma sikllarni 49 gacha qilsak biz bu kombinatsiyalarda 1 xil 
    qiymat olamiz. Shu sababli har bir sikl o‘zidan oldingi siklga 1 ni qo‘shib oladi. Dastur 
    quyidagicha 
    Hammasi to‘g‘ri berilgan. Keling yuqoridagi dasturni ishlatib ko‘ramiz. Bu 
    dastur ishlaydiganga o‘xshaydi ammo bir muammo bor. Kombinatsiya juda ko‘p va 
    dastur to‘xtamaydi (u juda sekin va juda ko‘p vaqt oladi). Shundan “6/49” 
    tanlanganini tushinish mumkin. Chunki bunda juda ko‘p kombinatsiyalar mavjud. 
    Yuqoridagi o‘yinda hamma kombinatsiyalarning sonini hisoblashning tezligini kutib 


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    152 
    turibmiz, vaholanki uni chop etish emas. Bu tezlik chop qilingan natijalarni 
    qisqartirishi natijasida dastur kutilmagan darajada tez tugaydi. 

    Download 6,33 Mb.
    1   ...   82   83   84   85   86   87   88   89   ...   194




    Download 6,33 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr

    Download 6,33 Mb.
    Pdf ko'rish