19 Mart 2016 Cumartesi

Javada Rasgele Belli Bir Sayıya Kadar Birbirinden Farklı Sayı Üretme

Merhaba arkadaşlar bu dersimizde Javada random olarak belli bir sayıya kadar olan sayıları karıştıracağız.Bu bizim işimize nerede yarayacak diye düşünürseniz örneğin android de resimlerin karışık olarak gelmesini istiyoruz ve bizim 500 tane resmimiz var biz bunun karışık gelmesini sağlamak için 1 den 500 e kadar olan sayıları karışık olarak rasgele her sayı 1 kez olacak şekilde sıralıyoruz ve bu sayıları bir dizide tutarak resimleri oluşturduğumuz id dizi içinden çağırabiliriz.Böylece resimler resgele gelmiş olur.

öreneğin :


int index=0;
if(index>500)
index=0;
else
{
relativeLayoutum.setBackgroundResource(resimlerID[RandomSayilar[index]]);
index++
}




Sorusec adında dizi oluşturuyoruz ve boyutunu 20 yapıyoruz. Daha sonra ilk random sayımızı üretekek sayi  değişkenine atıyoruz.Oluşturduğumuz bu sayıyı da random sayıları tutucak Sorusec dizisinin ilk elemanına atıyoruz bunu for döngülerinin dışında yapmamızın sebebi sonradan oluşturulacak  sayıların aynımı değil mi diye karşılaştırılması için bir ilk değere ihtiyacımızın olmasıdır.



public class ras {
public static void main(String arg[]){
int sayi,Sorusec[]=new int[20];

Sorusec[0] = 0;


Burada ise iç içe  iki tane for döngüsü kullanıyoruz.İlk for döngümüzu ikinci  elemandan başlatıyoruz çünkü dizinin ilk elemanı üste atamıştık.Sonra yine random bir sayı üreterek  sayı değişkenimize atıyoruz.



for (int i = 1; i < 20; i++) {
sayi = (int) (Math.random() * 20);

İkinci for dongumuzde ise üretilen random sayıları önceki tüm üretilen sayılarla karşılaştırıyoruz.Eğer üretilen yeni sayı önceki üretilen random sayılara eşitse tekrar bir random sayı üreterek sayi değişkenine atıyoruz taki farklı bir random sayı bulana kadar eğer tüm önceki elemanları dolaşıp aynı sayı bulamazsa en son olarak bu üretilen random sayıyı Sorusec dizimize atıyoruz.



for (int j = 0; j <= i; j++) {
if (Sorusec[j] == sayi) {
sayi = (int) (Math.random() * 20);
j=0; }
}
Sorusec[i] = sayi;
}

Bu alttaki for dongu ile de üretilen birbirinden farklı 20 sayıyı ekran yazdırıyoruz
   
for (int j = 0; j < 20; j++) {
System.out.println(Sorusec[j]+" ");
}

}
}

Tüm kodlar:
public class ras
{

public static void main(String arg[])
{

int sayi,Sorusec[]=new int[20];
Sorusec[0] = 0;
for (int i = 1; i < 20; i++)
{
sayi = (int) (Math.random() * 20);
for (int j = 0; j <= i; j++)
{
if (Sorusec[j] == sayi) {
sayi = (int) (Math.random() * 20);
j=0;
}

}
Sorusec[i] = sayi;
} for (int j = 0; j < 20; j++)
{
System.out.println(Sorusec[j]+" ");
}
}
}
    
Üsteki kodun çıktısı:




Umarım faydalı olmuştur.Yazımı okuduğunuz için teşekkürler:)



2 yorum:

  1. aynı sayılardan çıkabiliyor

    YanıtlaSil
    Yanıtlar
    1. haklısınız şimdi düzelttim.Umarım işinize yarar.Kolay gelsin.

      Sil

NodeJS-Socket.io Real Time Chat Uygulaması

Bu chat uygulmasını Node js ve socket.io kullanarak gerçekleştirdim.Veri tabanı olarak MySql kullandım.Kişiler Real time olarak birbirleriyl...