Soru & Cevap

random ile tekrarlanmayan sayı üretme ACİL !!!!

13.02.2017 - 03:33

merhaba , 

android kursuna gidiyorum eve kursta java ile ;

// Random kullanarak 1 ile 49 arasında rastgele sayilar tutan.
        // Bunları 6 elemanlı dizi içerisine yerleştiren kodu yazınız.
                
        // Dizi içerisindeki sayıları ekranda gösteriniz.

        // Tutulan bir sayı tekrar tutulmamalı, yani 6 farklı sayı elde etmek istiyoruz.

ben random ile rasgele sayı atayıp dizeye atıp ekrana yazdırdım ama sayılar tekrarlarınıyor . bu kısmı nasıl yapabilirim . 

kod kısmı : 

// Öncelikle; rastgele olarak tutacağımız 6 sayının yerleştirileceği bir tamsayi dizisine ihtiyacımız var.
        int[] sayilar = new int[6];
   
        
        // Dizi oluşturulduktan sonra, dizi içerisine atanacak değerleri rastgele olarak seçecek olan Random nesnesini hafızaya çıkaralım.
        Random r = new Random();    
        
        
        // 6 defa sayı tutmamız gerektiği için, 6 tur dönecek bir döngü hazırlayalım.
        // Bu döngü için 6 sabit değerini değil, daha önce oluşturulan dizinin eleman sayısını kullanalım.
        for(int i = 0; i< sayilar.length; i++)
        {
            
                
                if (sayilar.equals(sayilar[i])) {
                    
                    sayilar[i] = r.nextInt(49)+1;
                                                
            }
                else
                {
                    sayilar[i] = r.nextInt(49)+1;
                }
            
                        
        }
        // Döngünün her turunda rastgele bir değer üretelim ve sıradaki elemana değer ataması yapalım.
        
        
        
        // Dizi içerisindeki elemanları ekranda göstermek için bir döngüye ihtiyacımız var.
        

        for(int i = 0; i < sayilar.length; i++)
        {
            System.out.print(sayilar[i]);
            
            if(i < sayilar.length-1)
            {
                System.out.print("-");
            }
        }
        
        
    }

}

 

YARDIM EDERSENİZ SEVİNİRİM :)))))

9,050 Görüntülenme

5 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user alpererdur95
alpererdur95
05.01.2018 - 04:36

xcbxcb

Profile picture for user alpererdur95
alpererdur95
05.01.2018 - 04:35

xcbxcb

Profile picture for user Mytoprak
Mytoprak
24.02.2017 - 12:18
Bu çözer sorununu sanırım.
/sites/default/files/cevaplar/dosya/2020/file-img_20170224_002239.png
Profile picture for user ahmetçümen
ahmetçümen
15.02.2017 - 12:09

Selam Tolga, biraz geç cevap verdim kusura bakma.
Senin sorunun cevabı bu kodda mevcut, açıklama satırlarını ekledim, anlamadığın yerler olursa sorarsın.
İyi çalışmalar...

 int [ ] sayilar ; // diziyi tanımladık
        sayilar = new int [6]; // elaman sayısını belirledik
        Random r = new Random(); // random nesnesini oluşturduk
       
      
        for (int i = 0; i < sayilar.length; i++) { //değer atamak için döngü oluşturuldu.
            
           do { // ilk seferde kontrolsüz girmesi için do-while döngüsünü seçtik
                sayilar[i]=r.nextInt(49)+1; // random sayıyı atadık
           } while (sayilar.equals(sayilar[i])); // atanan sayı dizi içinde bulunmadığında döngüden çıktık
            
        }
        
        for (int i = 0; i < sayilar.length; i++) { // sayıları yazdırdık
            System.out.print(sayilar[i] + "-");
        }

 

tolga
15.02.2017 - 09:07
teşekkürler
picture-42070-1483807357.jpg
bekirbedir
13.02.2017 - 11:06

diziyi kontrol eden bitane fonksiyon yaz(hazır arama algoritmaları zaten yığınla var) onu çağır her seferinde bitti gitti :)
bu arada ben random sınıfını pek sevmiyorum sayı oluştururken sistemden anlık milisaniye çekip ( milisaniye + randomSayi ) %mod (X)  yapıyorum.  eğer önemliyse sayılar bu şekilde yapabilirsin

tolga
14.02.2017 - 09:05
teşekkürler cevabın için