Gece gece kod yazarken arada mola verince bir şeyler yazmak keyifli oluyor :) Önceki paylaşımımda zarları bir vektörde saklayan bir java örneği hazırlamıştım. Bu sefer bir değil , aynı anda iki zar atalım ve zarların düşeş gelme olasılığını hesaplayalım. Önceki soruda vektör kullanarak çözmüştük, bu sefer vektör kullanmaya ihtiyacımız yok (çünkü zarları saklamasak da olur) ama yine de hem vektör kullanarak, hem de vektör kullanmadan çözelim. 200 zar atsak arada 1-2 tane düşeş gelir sanırım :).
Vektör kullanarak düşeş gelen zar sayısını ve olasılığını bulan Java programı:
public static void main(String[] args) {
int[] zarlar1=new int[200];
int[] zarlar2=new int[200];
int sayac=0;
for (int i=0;i<zarlar1.length;i++)
{
zarlar1[i]=(int)(Math.random()*6)+1;
zarlar2[i]=(int)(Math.random()*6)+1;
if (zarlar1[i]==6 && zarlar2[i]==6)
{
sayac++;
}
}
System.out.println(zarlar1.length+" zardan "+sayac+" tanesi düşeş geldi");
System.out.println("Düşeş gelme olasılığı="+((double)sayac/zarlar1.length));
}
Çıktı:
200 zardan 2 tanesi düşeş geldi
Düşeş gelme olasılığı=0.01
Vektör kullanmadan düşeş gelen zar sayısını ve olasılığını bulan Java programı: Burada düşeş gelme şartını da biraz farklı kodlayalım:
public static void main(String[] args) {
int zarSayisi=200;
int sayac=0,zar1,zar2;
for (int i=1;i<=zarSayisi;i++)
{
zar1=(int)(Math.random()*6)+1;
zar2=(int)(Math.random()*6)+1;
if (zar1>=6 && zar2>=6) //zar1+zar2==12 de olabilir
{
sayac++;
}
}
System.out.println(zarSayisi+" zardan "+sayac+" tanesi düşeş geldi");
System.out.println("Düşeş gelme olasılığı="+((double)sayac/zarSayisi));
}
Çıktı:
200 zardan 11 tanesi düşeş geldi
Düşeş gelme olasılığı=0.055