Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
1319
Tıklama
0
Öne Çıkarma
Java Tekrarsız Random Yardım
L
9 yıl
Teğmen
Konu Sahibi

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.

Üye Ol Şimdi Değil



G
9 yıl
Teğmen

Ü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.



L
9 yıl
Teğmen
Konu Sahibi

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 ?



G
9 yıl
Teğmen

Atıyorum
 
String uretilenler = ""; //global olarak tanımlı

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.



M
9 yıl
Yarbay

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.



< Bu ileti tablet sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
L
9 yıl
Teğmen
Konu Sahibi

Birşey daha sorabilirmiyim şimdi ben android için bir uygulama geliştiriyorum uygulamanın içinde whatsapp adı geçse telif yermiyim ?



< Bu ileti mini sürüm kullanılarak atıldı >

G
9 yıl
Teğmen

quote:

Orijinalden alıntı: Mephalay

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.

Dili bilenle bilmeyen böyle ayrılıyor işte :)



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.