Algoritma sorularına kaldığımız yerden devam ediyoruz, platform JAVA;
-------------------------------------------------------------------------------------------
Static method lara sonra ayrntılı bakacağız, şuanda genel olarak bilmemiz gereken static methodların içindeki belirlediğimiz x veya y değerleri en son verilen değerini korurlar, mesela ilk başta x = 5 ise ve static metodun içinde x = 8 ise artık xin değeri 8 dir. Ayrıca static metodların içinde matematiksel işlemleri yapabiliriz, bir başka method tipi olan **** te ise bunu her zaman yapamayız, şimdi bazı static metodların içinde matematiksel işlemlere bakalım;
1-Boolean method olan ve N sayısını aldığında asal olup olmadığını belirleyen method yazın?
Bildiğiniz gibi asal sayılar 2, 3, 5, 7 11 gibi kendisine ve 1 e bölünen sayılardır. Yani ilk adım 2 ye kadar olan sayıları eleme onun için;
if (N < 2) return false;
dediğimizde 2 den küçük saylar için false döneceğiz.
% işareti mod almadır, yani o sayıya bölündüğünde kalan, bizde N sayısını kendisine kadar olan her sayıya böldüğümüzde eğer herhangi bir cevap sıfır çıkarsa ozaman içindeki bir sayıya bölündüğü anlamına gelir, ve bu olduğunda false döneceğiz, tüm sayıları dolaşmak için for, eğer for bittiğinde hala false dönmemişse true döneceğiz buda;
for (int i = 2; i*i <= N; i++)
if (N % i == 0) return false;
return true;
forda i =2 den başlayacak ve I^2 ye kadar gitsin diyoruzki son gittiği sayı garanti olsun, yani Nye kadar gitsin, eğer N%i ye bölündüğünde 0 çıkarsa içinden bir i sayısı bölünüyor demek ki false olacak, sonra for bittiğinde hala returne uğramamışsa en sondaki return true ya gelecek ki cevap dönsün.
sonuçta;
2-Bir üçgenin dik kenarları sırasıyla a ve b ise hipotenüsü bulan method yazın?
Kök içinde(a^2 + b^2) = hüpotenüs; olduğu için kök alan bir methoda ihtiyaç var, javanın kendi librarysinde(kütüphanesinde) bazı matematiksel terimler vardır ve bunlardan en çok kullanılanlardan birisi kök alma(squart) dır. Bunuda;
Şeklinde yazarız,
3-Double olan ve aralığı [a, b) olan rastgele sayı atayan method yazınız?
Methodun kendiside alacağımız sayılarda double olmalı, rastgele olması için;
public static double uniform(double a, double b)
Yine rastgele sayı belirleyen bir diğer math clasında bulunan StdRandom.random() methodunu kullanmalıyız. Bu method 0 dahil 1 arası demektir [0, 1)
Eğer biz bunu [0, 100) yapmak istiyorsak StdRandom.random() *100 şeklinde yazarız, eğer [10, 100) yapmak istiyorsak 0 ile 90 arası rastgele seçtirip sonra tüm sayıya 10 eklemeliyizyani, 10 + StdRandom.random() *90 şeklinde yazarız, o halde [a, b) için ;
Şeklinde yazarız.
4- Rastgele karıştırma işlemi ile arrayin içini rastgele sayılarla doldurunuz?
Şimdilik bukadar, sorunuz olursa cevaplarım, Bu soruya shuffle deniyor kod burada;
------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Static method lara sonra ayrntılı bakacağız, şuanda genel olarak bilmemiz gereken static methodların içindeki belirlediğimiz x veya y değerleri en son verilen değerini korurlar, mesela ilk başta x = 5 ise ve static metodun içinde x = 8 ise artık xin değeri 8 dir. Ayrıca static metodların içinde matematiksel işlemleri yapabiliriz, bir başka method tipi olan **** te ise bunu her zaman yapamayız, şimdi bazı static metodların içinde matematiksel işlemlere bakalım;
1-Boolean method olan ve N sayısını aldığında asal olup olmadığını belirleyen method yazın?
Bildiğiniz gibi asal sayılar 2, 3, 5, 7 11 gibi kendisine ve 1 e bölünen sayılardır. Yani ilk adım 2 ye kadar olan sayıları eleme onun için;
if (N < 2) return false;
dediğimizde 2 den küçük saylar için false döneceğiz.
% işareti mod almadır, yani o sayıya bölündüğünde kalan, bizde N sayısını kendisine kadar olan her sayıya böldüğümüzde eğer herhangi bir cevap sıfır çıkarsa ozaman içindeki bir sayıya bölündüğü anlamına gelir, ve bu olduğunda false döneceğiz, tüm sayıları dolaşmak için for, eğer for bittiğinde hala false dönmemişse true döneceğiz buda;
for (int i = 2; i*i <= N; i++)
if (N % i == 0) return false;
return true;
forda i =2 den başlayacak ve I^2 ye kadar gitsin diyoruzki son gittiği sayı garanti olsun, yani Nye kadar gitsin, eğer N%i ye bölündüğünde 0 çıkarsa içinden bir i sayısı bölünüyor demek ki false olacak, sonra for bittiğinde hala returne uğramamışsa en sondaki return true ya gelecek ki cevap dönsün.
sonuçta;
Kod:
public static boolean isPrime(int N)
{
if (N < 2)
return false;
for (int i = 2; i*i <= N; i++)
if (N % i == 0) return false;
return true;
}
2-Bir üçgenin dik kenarları sırasıyla a ve b ise hipotenüsü bulan method yazın?
Kök içinde(a^2 + b^2) = hüpotenüs; olduğu için kök alan bir methoda ihtiyaç var, javanın kendi librarysinde(kütüphanesinde) bazı matematiksel terimler vardır ve bunlardan en çok kullanılanlardan birisi kök alma(squart) dır. Bunuda;
Kod:
public static double hypotenuse(double a, double b) //parametreler(girilen sayılar) a, b
{
return Math.sqrt(a*a + b*b); // Math.sqrt(), kök alma demektir, içine
//işlemler yazılır, bizde içine a*a + b*b yazıyoruz(a^2 + b^2)
}
3-Double olan ve aralığı [a, b) olan rastgele sayı atayan method yazınız?
Methodun kendiside alacağımız sayılarda double olmalı, rastgele olması için;
public static double uniform(double a, double b)
Yine rastgele sayı belirleyen bir diğer math clasında bulunan StdRandom.random() methodunu kullanmalıyız. Bu method 0 dahil 1 arası demektir [0, 1)
Eğer biz bunu [0, 100) yapmak istiyorsak StdRandom.random() *100 şeklinde yazarız, eğer [10, 100) yapmak istiyorsak 0 ile 90 arası rastgele seçtirip sonra tüm sayıya 10 eklemeliyizyani, 10 + StdRandom.random() *90 şeklinde yazarız, o halde [a, b) için ;
Kod:
public static double uniform(double a, double b)
{
return a + StdRandom.random() * (b-a);
}
4- Rastgele karıştırma işlemi ile arrayin içini rastgele sayılarla doldurunuz?
Şimdilik bukadar, sorunuz olursa cevaplarım, Bu soruya shuffle deniyor kod burada;
Kod:
public static **** shuffle(double[] a)
{
int N = a.length;
for (int i = 0; i < N; i++)
{
int r = i + StdRandom.uniform(N-i);
double temp = a[i];
a[i] = a[r];
a[r] = temp;
}
}
public static int uniform(int N)
{
return (int) (StdRandom.random() * N);
}
Son düzenleme: