60 Taş Oyununda Kazanma Olasılığı (Programlamaya Giriş)
25.03.2010 - 13:35 tarihinde vefa gönderdi
Bu oyun tombalada oynanan oyunlardan biridir. Oyun şöyledir: oyuncu önce içinde 1 ile 90 arasında 90 taşın bulunduğu torbadan 60 taş çeker. Sonra da tombalacıdan üzerinde 5 farklı sayı bulunan kartlardan bir tane çeker. Eğer 60 sayı içerisinde karttaki 5 sayıyı bulursa kazanır, yoksa kaybeder.
Program rasgele sayı üreterek bu oyunu 100000 defa oynuyor ve kazanma olasılığı hesaplanıyor.
Örnek ekran çıktısı:
Kazanma olasiligi = 0.12384
Kaynak kod:
class Chip60 { public static void main(String args[]) throws Exception { java.util.Random generator = new java.util.Random(System.currentTimeMillis()); int sixty[] = new int[91]; int five[] = new int[5]; int i, j, sizes, sizef, count, num, flag, sum; double ratio, win, total; sizes = 91; sizef = 5; win = 0; total = 100000; for (i = 1; i <= total; i = i + 1) { for (j = 0; j < sizes; j = j + 1) sixty[j] = 0; //60 farkli sayi olusturuluyor count = 0; while (count != 60) { num = generator.nextInt(90) + 1; if (sixty[num] == 0) { sixty[num] = 1; count = count + 1; } } //5 farkli sayi olusturuluyor ve 60 //tasin icinde olup olmadigina bakiliyor sum = 0; count = 0; while (count != sizef) { num = generator.nextInt(90) + 1; flag = 0; for (j = 0; j < count; j = j + 1) if (num == five[j]) flag = 1; if (flag == 0) { five[count] = num; count = count + 1; sum = sum + sixty[num]; } } if (sum == 5) win = win + 1; } ratio = win / total; System.out.println("Kazanma olasiligi = " + ratio); } }
Etiketler: