selam matematik gönüllüler,
selam kodlayıcılar,
selam olsun sizlere...
benim bir derdim var;
klasik asp ile bir kod yazıyorum ama bir yerde takıldım. hem matematiğim hem de kod bilgim yetmedi.
kodda şu var, bazı isimler ve o isimlerin rastgele seçilebilme olasılıkları var. yani örneğin türkiyedeki tüm şehirlerin ve nüfuslarının olduğu bir veritabanı düşünün. bir rastgele seçim yaptırmak istiyorum ve seçimin sonuçlarının illerin nüfuslarına göre olmasını istiyorum.
örneğin
istanbul 14.000.000
ankara 5.000.000
izmir 4.000.000
vs.. vs...
ise tüm şehirleri toplayıp 14/76 ihtimalle istanbul, 5/76 ihtimalle ankara sonucunu nasıl döndürttürtebilirim?
yani rastgele seçilen bir vatandaşın doğum yerini bulmaca gibin bişey.
tercihim asp ama php veya başka bir dil de olsa olur, çeviririm ben onu bir şekilde...
hadi öptüm, arayı açmayalım cnm :x

super bi algoritma degil ama calisir gibi,
simdi elinde soyle bisi oldugunu varsayarsak:
{
"istanbul" -> 14,
"ankara" -> 5
...diger iller
}
0 ile 76 arasinda rastgele bir sayi al eline, x diyelim buna
bu elimizdeki iller/nufus dizisinde ilerlemeye basla,
x den o ilin nufusunu cikar (tabi sonucu x'de sakla tekrar) sonuc, 0dan kucuk yada esitse o il aradigin ildir,
x 0dan buyukse, bir sonraki ile gec.


rastgele seçim yapmak istiyorum demek rastgele seçmek demektir ama diyorsun ki belli bir parametreye bağlı olsun. Derdini biraz daha iyi anlatabilirsen yardımcı olabilirim.


ben daha ufak ve önemsiz bir şey için şöyle bir şey yaptım işe yaramıştı
tüm şehirleri topla 0 ile bu rakam arasına bilgisayarın random bir sayı vermesini sağla bu sayının karşılığı gelen vatandaşı ekrana yazdır :) bunu sen kendi istediğine göre geliştirebilirsin
bilgisayar kendi microtime göre bir olasılıkla bir sayı atayacaktır yani tam istediğin şey değil ama benim işime yaramıştı


@herman hesse
97 tane siyah, 2 tane beyaz, 1 tane gri topun olduğu bir torbadan rastgele bir top seçtiğimi düşün. elbetteki beyaz top seçme ihtimalim siyahtan az griden çok olacak. hatta net rakam vermek gerekirse %2 olacak.
"rastgele" kelimesi de "belirli bir parametre" ifadesi de yerli yerinde kullanılmış değil mi? sorun türkçe hocamdan değil, matematik hocamdan kaynaklanmış gibi geliyor bana yoksa şüphen mi var?


Bir dizi yap o zaman dizide 97 siyah 2 beyaz 1 tane gri üye olsun. dizinin elemananını random üret. siyah elemana rast gelme olasılığı daha fazla olmuş olur.


ibretlik kodumu paylaşıyorum a dostlar. birilerine yardımcı olur umarım:
zaten veritabanımda olan (örneğe göre söylüyorum) şehir isimleri ve nüfuslarının olduğu bir tablo vardı.
--
satir_sayisi= tablodaki satır sayısı
toplamnufus= nüfus hanelerinin toplamı
random_sayı = 1 ile toplamnufus arasında bir tamsayı
set dbkayit=Sur.execute("Select * from ilgili tablo")
aktiftoplam = 0
for i = 1 to satirsayisi
aktiftoplam = aktiftoplam + dbkayit("bulunduğumuz satırdaki şehrin nüfusu")
if random_sayi <= aktiftoplam then
exit for
end if
dbkayit.movenext
next
ilgili_sehir = dbkayit("bulunduğumuz satırdaki şehir ismi")
dbkayit.Close
Set dbkayit = Nothing
