5.00 / 1 oy

Java'da Sayısal Lotoyu Tutturuncaya Kadar Deneme Yapan Program

Nerede kalmıştık? Sırasıyla sayısal loto şans oyunu ve Java ile ilgili günn gece paylaştığım 3 örneğin linkini buraya bırakayım:

- Java ile Sayısal Loto çekilişi yapan program kodlamak

Java'da sayısal loto kuponunun kaç tane tutturduğunu hesaplayan program

Java'da Sayısal Loto Kazanç Kayıp Simülasyonu Yapmak

Özet geç diyenler için Previously On Java: Dün gece en son milyonlarca deneme yaparak sayısal loto oynadık ama buna rağmen hiç 6 tutturamadık, bir de üzerine binlerce lira zarara girdik. Peki diyelim ki Sayısal Loto'da 6 tutturmakla kafayı iyice bozduk ve tutturuncaya kadar deneme yapmaya devam ediyoruz, kaçıncı denemede 6 tutturduğunu hesaplayan bir Java programı kodlayalım da bu merakımızı gidermek için yüz binlerce lira harcamamıza gerek kalmasın.

Not: Bu kodu çalıştırıp çıktı vermesini beklemek, dün yazdığımız kodlarda performasa hiç dikkat etmediğimiz için biraz fazla uzun sürebilir. Bu yüzden ufak düzeltmeler yapalım ve gereksiz sıralama işlemlerinden kaçınalım ve vektör karşılaştırması için Arrays.equals metodunu kullanalım.

Kodlar:

public static void main(String [] args) {

double denemesayisi=0;
//çekiliş yapalım
int[] cekilis = cekilisYap();
//6 tutturuncaya kadar kupon dolduralım
int[] kupon;
 
do
{
     kupon = kuponDoldur();
     denemesayisi++;
}
 
while (!Arrays.equals(cekilis, kupon));

Arrays.sort(cekilis); 
System.out.println("Tebrikler, "+(int)denemesayisi+". denemede sayısal lotodan 6 tutturmayı başardınız");
System.out.println("Kuponunuz: "+Arrays.toString(kupon));
System.out.println("Çekiliş Sonuçları: "+Arrays.toString(kupon));
}

public static int topCek()
{
 return (int)(Math.random()*49)+1;
}

public static int[] cekilisYap()
{
 int[] cekilis = new int[6];
 for (int i=0; i<6; i++)
 {
	 boolean kontrol=true;
	 while (kontrol)
	 {
		 int top=topCek();
		 kontrol  = IntStream.of(cekilis).anyMatch(x -> x == top);
		 
		 if(!kontrol)
			 cekilis[i]=top;
	 }
 }
 Arrays.sort(cekilis); 
 return cekilis;
}

public static int[] kuponDoldur()
{
 int[] kupon = new int[6];
 for (int i=0; i<6; i++)
 {
	 boolean kontrol=true;
	 while (kontrol)
	 {
		 int top=topCek();
		 kontrol  = IntStream.of(kupon).anyMatch(x -> x == top);
		 
		 if(!kontrol)
			 kupon[i]=top;
	 }
 }
 Arrays.sort(kupon); 
 return kupon;
}

Çıktı:

Tebrikler, 34293188. denemede sayısal lotodan 6 tutturmayı başardınız
Kuponunuz: [7, 19, 23, 26, 31, 37]
Çekiliş Sonuçları: [7, 19, 23, 26, 31, 37]

Sonuç: Yaklaşık 34 milyon kupon doldurarak sayısal lotoda 6 tutturmayı başardık, her hafta sayısal loto oynamasına rağmen 6 tutturamadığında şanssızlığına ve kadere isyan eden kişilere de bu yazıyı gönderin olur mu.

Edit: Birkaç deneme daha yaptım, şimdilik rekorum 674.477. Yani her hafta bir kupın yapsam bu şansla 12.970 yılda sayısal lotodan büyük ikramiyeyi kazanabilirim.

utku33

09.02.2020 03:55

Bu soru 1 kez yanıtlandı.

  • 22 Nisan 2022 10:22
    0

    oyunu kazanmanın ne derece imkansız olduğunu para vermeden öğrenmek için idealmiş aslında

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

Reitix
Java'da Sayısal Lotoyu Tutturuncaya Kadar Deneme Yapan Program

İ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.