Çözüldü Permütasyon - Programlama

Konusu 'Polinomlar, Permütasyon, Kombinasyon, Olasılık ve Binom Açılımı' forumundadır ve eagleemre92 tarafından 13 Haziran 2010 başlatılmıştır.

Yüklüyor...
  1. eagleemre92

    eagleemre92 Yeni Üye

    Mesajlar:
    3
    Beğenileri:
    0
    A: {0,1,2,3,4,5} elemanları kullanılarak yazılan rakamları farklı, 5 basamaklı sayıların kaç tanesinde 0 rakamı 2 nin sağında, 1 rakamı da 2'nin solunda olur?
     
    : Fortran

  2. Benzer Konular: Permütasyon Programlama
    Forum Başlık Tarih
    Üniversitelerin Sayısal Bölümlerini Hedefleyen LGS Öğrencileri Permütasyon - Basamak Analizi - Programlama 7 Mart 2021
    Hatalı - Tekrarlanmış Sorular veya Çözümler (Faulty - Repeated Questions or Solutions) Permütasyon (Seçenekler Yanlış) - Programlama 22 Kasım 2020
    Matematik - Geometri Sayma İlkeleri - Permütasyon - Kombinasyon (3 Soru) - Programlama 19 Ekim 2019
    Matematik - Geometri Tekrarlı Permütasyon - Programlama 26 Mayıs 2018
    Matematik - Geometri Permütasyon - Kombinasyon - Programlama 27 Ocak 2018

  3. enemalum

    enemalum Yeni Üye

    Mesajlar:
    34
    Beğenileri:
    4
    0 2 ve 1 in yanına 2 rakam daha seçmeliyiz ki bu 3 türlü yapılabilir.
    Sonra sıralama faslına iş gelir, 120 şeklinde adı geçen 3 rakam sıralanır yanlarına seçtiğimiz ilk rakamın gelebileceği 4 yer vardır, ilk rakam yerleştikten sonra seçtiğimiz ikinci rakamın yerleşebileceği 5 yer vardır, yani sonuçta 3·4·5 = 60 farklı sayı yazılabilir.
    Son düzenleyen: Moderatör: 23 Haziran 2021
    Honore bunu beğendi.
  4. eagleemre92

    eagleemre92 Yeni Üye

    Mesajlar:
    3
    Beğenileri:
    0
    teşekkürler hocam
    Son düzenleyen: Moderatör: 23 Haziran 2021
  5. Cem

    Cem Yönetici Yönetici

    Mesajlar:
    3.387
    Beğenileri:
    1.336
    Başka bir çözüm:

    1 2 _ _ _ :
    0 rakamı 3 yere, kalan iki boşa kalan üç tane 3·2 yerden; 3·3·2=18

    _ _ 2 _ _ :
    1 ve 0 rakamları 2 yere, kalan iki boşa kalan üç tane 3·2 yerden; 2·2·3·2=24

    _ _ _ 2 0 :
    1 rakamı 3 yere ve kalan iki boşa kalan üç tane 3·2 yerden; 3·3·2=18

    18+24+18=60 bulunur.
    Son düzenleyen: Moderatör: 23 Haziran 2021
    Honore bunu beğendi.
  6. Honore

    Honore Yönetici Yönetici

    Mesajlar:
    11.195
    Beğenileri:
    652
    Cinsiyet:
    Bay
    Meslek:
    Müh. (Elk./Bilg.)
    6 basamaklı sayılar için 3, 4, 5 rakamları da kalan 3 boşluğa;
    1 2 0 _ _ _ ===> 3! ===> 1
    _ 1 2 0 _ _ ===> 3! ===> 2
    _ _ 1 2 0 _ ===> 3! ===> 3
    _ _ _ 1 2 0 ===> 3! ===> 4
    1 2 _ 0 _ _ ===> 3! ===> 5
    1 2 _ _ 0 _ ===> 3! ===> 6
    1 2 _ _ _ 0 ===> 3! ===> 7
    1 _ 2 0 _ _ ===> 3! ===> 8
    1 _ 2 _ 0 _ ===> 3! ===> 9
    1 _ 2 _ _ 0 ===> 3! ===> 10
    1 _ _ 2 0 _ ===> 3! ===> 11
    1 _ _ 2 _ 0 ===> 3! ===> 12
    1 _ _ _ 2 0 ===> 3! ===> 13
    _ 1 2 _ 0 _ ===> 3! ===> 14
    _ 1 2 _ _ 0 ===> 3! ===> 15
    _ _ 1 _ 2 0 ===> 3! ===> 16
    Toplam Diziliş Sayısı: 16·3! = 16·6 = 96.

    Bilgisayar Programlamayla İlgilenen Öğrenciler İçin Fortran Uygulaması:
    [​IMG]
    https://i.servimg.com/u/f72/19/97/10/39/sayisa13.png

    Program:
    Kod:
    ! {0,1,2,3,4,5} elemanları kullanılarak yazılan rakamları farklı,
    ! 6 basamaklı sayıların kaç tanesinde 0 rakamı 2 nin sağında,
    ! 1 rakamı da 2'nin solunda olur?
    program rakamsal_dizilim
    implicit none ! Değişkenlerin tipleri derleyici varsayımına bırakılmıyor.
    integer:: sayi,toplam=0,bir,on,yuz,bin,onbin,yuzbin ! Değişkenler tanımlanıyor.
    
    open (unit = 1, file = "liste.txt") ! Sayıların yazılacağı dosya açılıyor.
    
    do sayi=102345,543210
       ! Basamaklar belirleniyor.
       bir=MOD(sayi,10); on=MOD(sayi/10,10); yuz=MOD(sayi/10**2,10)
       bin=MOD(sayi/10**3,10);onbin=MOD(sayi/10**4,10)
       yuzbin=sayi/10**5
    
       ! Basamakların birbirlerinden farklılıkları sağlanıyor.
       if( (bir==on).or.(bir==yuz).or.(bir==bin).or.(bir==onbin).or.       &
           (bir==yuzbin).or.(on==yuz).or.(on==bin).or.(on==onbin).or.      &
           (on==yuzbin).or.(yuz==bin).or.(yuz==onbin).or.(yuz==yuzbin).or. &
           (bin==onbin).or.(bin==yuzbin).or.(onbin==yuzbin) ) cycle
    
       ! Basamaklarda 6, 7, 8, 9 Rakamları hariç tutuluyor.
       if( (bir==6).or.(bir==7).or.(bir==8).or.(bir==9).or.                &
           (on==6).or.(on==7).or.(on==8).or.(on==9).or.                    &
           (yuz==6).or.(yuz==7).or.(yuz==8).or.(yuz==9).or.                &
           (bin==6).or.(bin==7).or.(bin==8).or.(bin==9).or.                &
           (onbin==6).or.(onbin==7).or.(onbin==8).or.(onbin==9).or.        &
           (yuzbin==6).or.(yuzbin==7).or.(yuzbin==8).or.(yuzbin==9) ) cycle
    
       ! Soldan sağa 1 2 0 sırasına aykırı durumlar ayıklanıyor.
       if( (yuzbin==2).and.(onbin==1).or.(bin==2).and.(yuz==1).or.         &
           (bin==2).and.(on==1).or.(bir==1).or.(yuz==2).and.(on==1).or.    &
           (on==2).and.(bir==1) ) cycle
    
        ! Permütasyonlar yapılıyor.
        if( (((yuzbin==1).and.(onbin==2)).or.((yuzbin==1).and.(bin==2)).or.&
            ((yuzbin==1).and.(yuz==2)).or.((yuzbin==1).and.(on==2)).or.    &
            ((yuzbin==1).and.(bir==2)).or.                                 &
        
            ((onbin==1).and.(bin==2)).or.((onbin==1).and.(yuz==2)).or.     &
            ((onbin==1).and.(on==2)).or.((onbin==1).and.(bir==2)).or.      &
         
            ((bin==1).and.(yuz==2)).or.((bin==1).and.(on==2)).or.          &
            ((bin==1).and.(bir==2)).or.                                    &
        
            ((yuz==1).and.(on==2)).or.((yuz==1).and.(bir==2)).or.          &
        
            ((on==1).and.(bir==2)))                                        &
        
            .and.                                                          &
    
            (((yuzbin==1).and.(onbin==2).and.(bin==0)).or.((onbin==2).and. &
             (yuz==0)).or.((onbin==2).and.(on==0)).or.((onbin==2).and.     &
             (bir==0))).or.                                                &
        
             ((onbin==1).and.((bin==2).and.(yuz==0)).or.((bin==2).and.     &
              (on==0)).or.((bin==2).and.(bir==0))).or.                     &
        
             ((bin==1).and.((yuz==2).and.(on==0)).or.((yuz==2).and.        &
              (bir==0))).or.                                               &
             ((yuz==1).and.((on==2).and.(bir==0)).or. &
             ((on==1).and.(bir==0))) ) then
         
             ! Uygun sayılar ekrana yazdırılıp kaç tane oldukları sayılıyor.
             print*,sayi; toplam=toplam+1
         
             ! Sayılar sıra numarasıyla "liste.txt" dosyasına yazdırılıyor.
             Write (1, 10) toplam,"    ",sayi
        
         endif
         
    enddo
    
    close(1) ! Dosya kapatılıyor.
    
    print*," "
    
    ! Kaç tane sayı olduğu ekrana yazdırılyor.
    write(6, 15) toplam, " adet sayi var, liste.txt dosyasina bakiniz."
    
    10 format(2(i6,a))
    15 format (i2,a)
    
    end program
    Not: Sayıların listesi aşağıdadır ve ayrıca ekte de verilmiştir.
    Kod:
         1    120345
         2    120354
         3    120435
         4    120453
         5    120534
         6    120543
         7    123045
         8    123054
         9    123405
        10    123450
        11    123504
        12    123540
        13    124035
        14    124053
        15    124305
        16    124350
        17    124503
        18    124530
        19    125034
        20    125043
        21    125304
        22    125340
        23    125403
        24    125430
        25    132405
        26    132450
        27    132504
        28    132540
        29    134250
        30    135240
        31    142305
        32    142350
        33    142503
        34    142530
        35    143250
        36    145230
        37    152304
        38    152340
        39    152403
        40    152430
        41    153240
        42    154230
        43    234510
        44    235410
        45    243510
        46    245310
        47    253410
        48    254310
        49    312045
        50    312054
        51    312405
        52    312450
        53    312504
        54    312540
        55    314250
        56    315240
        57    324510
        58    325410
        59    341205
        60    341250
        61    345120
        62    351204
        63    351240
        64    354120
        65    412035
        66    412053
        67    412305
        68    412350
        69    412503
        70    412530
        71    413250
        72    415230
        73    423510
        74    425310
        75    431205
        76    431250
        77    435120
        78    451203
        79    451230
        80    453120
        81    512034
        82    512043
        83    512304
        84    512340
        85    512403
        86    512430
        87    513240
        88    514230
        89    523410
        90    524310
        91    531204
        92    531240
        93    534120
        94    541203
        95    541230
        96    543120

    Ekli Dosyalar:

    • Liste.txt
      Dosya Boyutu:
      1,7 KB
      Görüntüleme:
      92

Sayfayı Paylaş