Ana içeriğe atla

Matlab Ekok Bulma

Kullanııc tarafından girilen 2 sayının ekok'unu bulma algortiması;

clear all
clc

x=input('Bir tamsayı giriniz: ');
y=input('Bir tamsayı giriniz: ');

asal_bolen=0;  
sayac=0;  
i=2; 
durum=1;
while durum
    if mod(x,i)==0 || mod(y,i)==0
        sayac=sayac+1; 
        asal_bolen(sayac)=i;
        if mod(x,i)==0
            x=x/i;
        elseif mod(y,i)==0
            y=y/i;
        else
            x=x/i;
            y=y/i;
        end
    else
        i=i+1;
    end
    if i>x
        durum=0;
    end
end

disp('Asal bölenler: ')
disp(asal_bolen)

%örnegin 72 sayısı için x_asal_bolen degişkeninin içinde
%tutulan sayılar [2 2 2 3 3]
%bu kuvvetleri aşagıdaki algoritma ile;
%[0 2 3;
% 0 3 2] haline getirecegiz.
%algoritmanın görevi asal sayı 2'yi 2'inci
%idise yazmak ve kuvvetinide alt satırına eklemek

%x'in asal bölenlerin kuvvetlerini toplayalım
bolen_kuvvet=[0;0];
for i=1:size(asal_bolen,2)
    bolen_kuvvet(1,asal_bolen(i))=asal_bolen(i);
    bolen_kuvvet(2,asal_bolen(i))=bolen_kuvvet(2,asal_bolen(i))+1;
end

%[0 2 3;
% 0 3 2] halinde ki matrisimizi

%[2 3;
% 3 2] haline aşagıdaki algoritma ile getirelim

%x_bolen_kuvvet degişkeninin içindeki sıfırları atıyoruz
sayac=0;
for i=1:size(bolen_kuvvet,2)
    if bolen_kuvvet(1,i)~=0
        sayac=sayac+1;
        ekok(1,sayac)=bolen_kuvvet(1,i);
        ekok(2,sayac)=bolen_kuvvet(2,i);
    end
end

disp('sadece asal bölen ve kuvvetleri: EKOK ')
disp(ekok)

%elde ettigimiz ekok'u onluk tabanda görüntüleyelim
ekok_sayisi=1;
for i=1:size(ekok,2)
    ekok_sayisi=ekok_sayisi*ekok(1,i)^ekok(2,i);
end

disp('ekok un onluk tabanda görüntülenmesi: ')
disp(ekok_sayisi)

Yorumlar

Bu blogdaki popüler yayınlar

Matlab Operatörler

Matematiksel operatörler: +  Toplama –  Çıkarma *  Çarpma /  Bölme ^  Üst alma .* Elemanter çarpım ./  Elemanter bölme .^  Elemanter üst alma a+b  Boyutları aynı olan a ve b matrisini toplar. a-b  Boyutları aynı olan a ve b matrislerinin farkını alır. a*b  Sütun sayısı m olan a matrisiyle satır sayısı m olan b matrisini çarpar. a/b  b düzenli kare bir matrisse (determinantı sıfırdan farklıysa), aynı boyutlu a matrisiyle; a*inv(b)işlemini yapar. a.*b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı olarak çarpar. a./b  Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı oranlar. sqrt  Kök alma abs  Mutlak değer rats  Kesirli gösterim Mantıksal operatörler: &  Ve |  Veya ~  Değil /  Bölme Karar operatörleri: >  Büyüktür <  Küçüktür >=  Büyük eşittir <=  Küçük eşittir ==  Eşittir ~=  Eşit değildir

Matlab Random Sayı Üretme

randi() Matlab üzerinde random sayı üretmek için en iyi komut randi() 'dir. rand() fonksiyonu ya da komutu ile de random sayı üretilebilir. Bu yazıda randi() komutunu anlatacağım ve yazının sonundaki link ile birbirinden farklı en tane sayı üretme algoritmasını paylaşacağım. Önemli: Bu sayfadaki matlab fonksiyonları ve açıklamaları matlabın orjinal sayfasından edinilmiştir. https://www.mathworks.com/help/matlab/ref/randi.html Örnek: randi(10,5) > 1'den 10'a kadar 5x5'lik bir random sayı matrisi üret. r = randi(10,5) %matlab komutu r = 5×5 9 1 2 2 7 10 3 10 5 1 2 6 10 10 9 10 10 5 8 10 7 10 9 10 7 Örnek:  randi ([-5,5],10,1) > -5'den başlayıp 5'e kadar 10 satır ve 1 sütuna sahip 10x1'lik bir randım sayı matrisi oluturur. "1" değiştirilerek başka boyutlarda da matris oluşturulabilir. r = randi([-5,