25 Eylül 2018, 01:02:59

Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME


Şartları Sağlayan Rastgele Elemanı Bulmak

Başlatan Tagli, 18 Temmuz 2016, 14:55:45

Tagli

Sorum şu: Elimizde bir dizi olsun A = [8 2 1 9 6 3 0] gibi. Tamsayı olmayabilirler. Bu diziden, örneğin 5'ten küçük rastgele bir elemanın indeksini elde etmek istiyorum. Yani 2, 3, 6 veya 7 sonuçlarından birini rastgele olarak döndürecek.

Şartı sağlayan rastgele sayıyı bulmak kolay sayılır, alt_kume = A(A < 5);  şartı sağlayan elemanlardan oluşan alt kümeyi verecek. Sonra da alt_kume(randi(size(alt_kume,2))); derseniz şartı sağlayan rastgele bir sayı döner ama o zaman bu sayının ana dizi A'daki indeksini kaybediyoruz.

Bu işin içinden nasıl çıkabiliriz?
Gökçe Tağlıoğlu

z

18 Temmuz 2016, 15:14:20 #1 Son düzenlenme: 18 Temmuz 2016, 15:27:45 z
5 den küçük sayıların indeksini alt diziye at.
Bu alt dizinin eleman sayısı N ise 0..N-1 aralığına random sayı üret.


muhendisbey

en basiti
rastgele indeks üret eğer indekse karşılık gelen sayı 5 ten küçükse indeksi kabul et yoksa yeniden rastgele indeks üret.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

muuzoo

www.muuzoo.gen.tr - Kişisel karalamalarım...

Tagli

Teşekkürler, find komutu ile çözdüm. Bu aslında z'nin dediği şeyi yapıyor. Mantığı ters kurmuşum. Önce şarta bağlı indeksleri belirleyip sonra onlar içinde rastgele seçim yapmak gerekiyormuş. Önce sayıları seçince indeks kayboluyor.
Gökçe Tağlıoğlu