so leute ich soll die gewinnwahrscheinlichkeit fürs würfelspiel craps errechnen
allerdings kommt bei mir immer 0.0 gewinn und 0.0 verlust raus
wär echt super wenn mir jmdnvon euch helfen könnte
danke neon
public class Craps
{
public static int wurf (double[]w)
{
int a = StdRandom.discrete(w);
return a;
}
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
//variable für durchläufe /samplerate
int samplesize = Integer.parseInt(args[0]);
int gewinnrate = 0;
int verlustrate = 0;
//chance für Wurf bestimmen
double [] w = {0,.17,.17,.17,.17,.17,.15};
//erste würfe bestimmen
int a = wurf(w);
int b = wurf(w);
/**
//variablen für weiter würfe bestimmen
int d = wurf(w);
int e = wurf(w);
*/
//variable für zweiten + weitere würfe
int z = 0;
// x bestimmen
double c = a +b;
//für allgemeine gewinnrate nach samplerate anzahl der würfe = schleifendurchläufe
for(int i = 0; i < samplesize ; i++)
{
//gewonnen / verloren definieren
if (c == 7 || c == 11 )
{
gewinnrate++;
}
else if (c == 2 || c == 3 || c == 12)
{
verlustrate++;
}
//wenn nichts von beiden eintrifft
else if (c == 1 || c == 4 || c == 5 || c == 6 ||c == 8 || c == 9 ||c == 10 || c == 0 )
{
//solange werfen bis wurf c oder sieben ergibt
/**
while (z != 7 || z!= c)
{
a = wurf(w);
b = wurf(w);
z = a + b;
}
*/
for (int k = 0; k==7 || k==c; k=a+b)
{
a = wurf(w);
b = wurf(w);
k = a + b;
z =k;
}
if(z ==7)
{
verlustrate++;
}
else if(z == c)
{
gewinnrate++;
}
}
//neuen ersten wurf bestimmen
a = wurf(w);
b = wurf(w);
c = a +b;
}
// verlust / gewinnrate prozentual bestimmen
double gewinn = (gewinnrate/samplesize)*100;
double verlust = (verlustrate/samplesize)*100;
System.out.println("Gewinnrate bei " + samplesize + " Durchläufen beträgt: " + gewinn + "%");
System.out.println("Verlustrate bei " + samplesize + " Durchläufen beträgt: " + verlust + "%");
}
}