Soruda da belittiğim gibi random sayı üretmem lazım örneğin 0-100 arası,burda rastgele gelen "sayıların" birdaha gelmesini istemiyorum bunu nasıl sağlayabilrim ?

soruldu: 26 Tem '13, 03:36

Amadeus's gravatar image

Amadeus
357121721
cevap kabul oranı: 31%

değiştirildi: 26 Tem '13, 04:25


Random numara oluşturulmak istenilen aralık için bir liste oluşturup, o listenin elemanlarına random olarak erişmeyi deneyebilirsin.

Aşağıdaki kodda RandomNumber sınıfı verilen aralık için sırasıyla bir liste oluşturuyor. Daha sonra oluşan sıralı listeye rastgele indexler ile erişip rastgele sayıları üretiyor.

Erişilen numaralar listeden silinerek tekrar üretilmesi engelleniyor.

public class RandomNumber {

    private final List<Integer> numbers = new ArrayList<Integer>();

    private int size;

    public RandomNumber(int begin, int end) throws NotBoundException {
        if (begin >= end) {
            throw new NotBoundException();
        }
        for (int i = begin; i < end; i++) {
            numbers.add(i);
        }
        size = numbers.size();
    }

    public int getNextInt() {
        if (size <= 0) {
            throw new IndexOutOfBoundsException();
        }
        Random rand = new Random();
        int index = rand.nextInt(size);

        int value = numbers.get(index);
        numbers.remove(index);
        this.size = numbers.size();
        return value;
    }

    public static void main(String[] args) throws NotBoundException {
        // TODO Auto-generated method stub

        RandomNumber rn = new RandomNumber(4, 20);

        for (int i = 4; i < 20; i++) {
            System.out.print(rn.getNextInt() + " ");
        }
    }
}
permanent link

cevaplandı: 26 Tem '13, 06:51

erencan's gravatar image

erencan
7911812
cevap kabul oranı: 40%

değiştirildi: 26 Tem '13, 06:57

Teşekkürler bende buna benzer bir bir yapı yazmıştım fakat sorunluydu şimdi eksiğimi gördüm cevabınız için teşekkür ederim.

(26 Tem '13, 12:25) Amadeus Amadeus's gravatar image

Rica ederim.

(26 Tem '13, 13:58) erencan erencan's gravatar image

Eğer sayı bu kadar azsa 0-100 arası sayılardan oluşan liste oluşturup, <karıştırıp> elemanları sırayla okuyabilirsiniz.

permanent link

cevaplandı: 26 Tem '13, 06:27

nurettin's gravatar image

nurettin
2.2k2441
cevap kabul oranı: 14%

Teşekkür ederim fakat shuffle'lı kullandım istediğim yapıyı elde edemedim uygulamayı Android'de yazıyorum ve olay buraya yazdığımdan biraz daha karışık yinede sağolun cevabınız ve ilginiz için.

(26 Tem '13, 12:22) Amadeus Amadeus's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×10
×4

Soruldu: 26 Tem '13, 03:36

Görüntüleme: 833 kez

Son güncelleme: 26 Tem '13, 13:58

powered by BitNami OSQA