Merhaba ben bi android uygulaması yazıyorum ama random üretirken mesela 3 çıktı diyelim bidaha hiç 3 çıkmamasını nasıl sağlarız ? Kodlarım :
public String getbilgi() { String bilgi = ""; Random rasgelesay = new Random(); int rastgelesayı = rasgelesay.nextInt(mdurumlar.length); bilgi = mdurumlar[rastgelesayı]; return bilgi;
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Üretilen sayıları bir yerde (örneğin bir dizide, veya stringde) tutarsınız, her yeni sayı üretildiğinde ekleme (veya geri dönüş) yapmadan önce sayıları tuttuğunuz yerde bu sayı var mı kontrol edersiniz, eğer varsa yeni sayı üretilmesini yoksa bu sayının kabul edilmesini sağlarsınız. Ne kadar uzun bir cümle oldu bu, umarım anlamışsınızdır.
Saol mantık olarak anladım bi string yada int deposu gibi bişey oluşturcaz random sayı alırken onun içinde varmı yokmu diye kontrol edce anladım ama biraz kopya verebilirmisiniz ?
while(1) { Random r = new Random(); int sayi = r.nextInt(); if(!uretilenler.equals(String.valueOf(sayi))) { // eğer o sayı uretilenlerin içinde yoksa uretilenler += String.valueOf(sayi) + ","; // virgülü ekledik ki 34,54 sayılarını 3454 olarak algılamasın break; // sayı yoksa eklenip while'dan çıkarız } // eğer if şartı sağlanmazsa içine girmez ve break; çalışmaz if sağlanana kadar while dönecek }
Benzer mantıkla dizi ile de yapılabilir, dizi ile yapılırsa dizide dolaşım gerekecek.
Set Data structure ini kullan. Set -> unique elemanlar icerir. Her random sayiyi sete atarsin, sonra da set.contains() ile var mi diye bakarsin. Ayrica List e de oldugu gibi eleman var mi yok mu diye kontrol etmek O(n) zaman da almaz, hash fonksiyonu uzerinden kontrol eder, gayet de hizli olur. Java'da Set i inceleyebilirsin.
Set Data structure ini kullan. Set -> unique elemanlar icerir. Her random sayiyi sete atarsin, sonra da set.contains() ile var mi diye bakarsin. Ayrica List e de oldugu gibi eleman var mi yok mu diye kontrol etmek O(n) zaman da almaz, hash fonksiyonu uzerinden kontrol eder, gayet de hizli olur. Java'da Set i inceleyebilirsin.
Kodlarım :
public String getbilgi() {
String bilgi = "";
Random rasgelesay = new Random();
int rastgelesayı = rasgelesay.nextInt(mdurumlar.length);
bilgi = mdurumlar[rastgelesayı];
return bilgi;
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.