5.00 / 1 oy

Java ile rastgele zar atan program kodlamak

Zar örnekleri her programlama dilinde rastgele sayılar üretmek ve örneklendirmek anlamında oldukça sık kullanılmaktadır. Java'da Excel'de olduğu gibi randbetween gibi alt ve üst limitler içerisinde bir tamsayı üretme fonksiyonu olmadığı için bu işlem, 0 ile 1 arasında rastgele double değer üreten Math.random() fonksiyonuna bir takım matematiksel işlemler uygulamak suretiyle gerçekleştirilmektedir.

Öncelikle zar nedir onu bir hatırlayalım. Zar, 6 farklı yüzeyi bulunan ve 1, 2, 3, 4, 5, 6 değerlerinden birisini almak zorunda olan bir objedir. Dolayısıyla zar simülasyonu için de her çalıştırıldığında 1, 2, 3, 4, 5, 6 değerlerinden birisinin gelmesi gereken bir kod yazılmalıdır. Zar 0 olamaz, 7 olamaz, küsüratlı olamaz. 1 ile 6 arasında bir tamsayıdır. O zaman soruyu basite indirgeyelim. Her çalıştırıldığında 0 ile 1 arasında rastgele bir sayı üreten Math.random() fonksiyonuna nasıl bir matematiksel işlem uygulayarak 1, 2, 3, 4, 5, 6 değerlerinden birisini üretmesini sağlayabiliriz?

1. Aşama: Math.random()'ı çalıştırıp bir bakalım ne yapıyor? 10 kere Math.random() fonksiyonunu çağırıp her seferinde 0 ile 1 arası değer verdiğinden iyice emin olalım.

for (int i=1;i<=10;i++)
	{
		System.out.println(Math.random());
	}

Çıktı:

0.011566860717359129
0.1078557274986055
0.7414433017623518
0.11062518726073267
0.32272630666768887
0.08449187078668063
0.88882823909131
0.1817072658728457
0.3074836953809841
0.09395301237059006

 

2. Aşama: Math.random() fonksiyonunu 6 ile çarpalım. Artık elimizde teorik olarak 0.000000001 ile 5.9999999 arasında sayılar olmalı.

for (int i=1;i<=10;i++)
	{
		System.out.println(Math.random()*6);
	}

Çıktı:

0.6261899381177403
4.490377509265203
5.3859225703882005
3.8251256569494343
0.7294756168282759
3.5475118384572566
4.689708102351139
1.77685998579769
3.5591350565041298
0.12036647920785071

3. Aşama: Math.random() fomksiyonunu 6 ile çarptıktan sonra tamsayı kısmını alalım. Artık elimizde 0, 1, 2, 3, 4, 5 elemanlarından birisini üreten bir fonksiyon oldu. Bu işlemi yaparken değerin sol tarafında (int) koyarak casting işlemi yapacağız. casting işlemini kazara (int)Math.random() olarak yaparsanız her zaman 0 değeri alacağınızı unutmayın.

for (int i=1;i<=10;i++)
	{
		System.out.println((int)(Math.random()*6));
	}

Çıktı:

5
2
3
0
0
4
4
0
3
1

4. Aşama: 3. aşamada elde ettiğimiz değere 1 ekleyelim

for (int i=1;i<=10;i++)
	{
		System.out.println((int)(Math.random()*6)+1);
	}

Çıktı:

4
2
2
3
2
1
6
1
1
2

 

Sonuç ve özet:

Tüm programlama dillerinde olduğu gibi, Java'da da Math.random() kütüphanesini kullanarak farklı aralıklarda rastgele tamsayılar üretmek mümkündür. 0 ile 100 arası sayılar üretmek isterseniz de çarpanı değiştirmeniz yeterlidir, önemli olan bu işlemin mantığının anlaşılmasıdır.

utku33

21.12.2019 00:50

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java ile rastgele zar atan program kodlamak

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.