Java Wahrscheinlichkeiten

Code:
import java.text.*;

public class Uebung01c2  {

   public static void main (String [] args) {

      CommandLine cl=new CommandLine();
      int x = cl.readInt( "Geben Sie die Anzahl der Würfe an:");

      int arZahlen[] = new int[6];
      arZahlen[0] = 0;
      arZahlen[1] = 0;
      arZahlen[2] = 0;
      arZahlen[3] = 0;
      arZahlen[4] = 0;
      arZahlen[5] = 0;

      int asZahlen[] = new int[6];
      asZahlen[0] = 0;
      asZahlen[1] = 0;
      asZahlen[2] = 0;
      asZahlen[3] = 0;
      asZahlen[4] = 0;
      asZahlen[5] = 0;

      for (int j = 0;j<x ;j++ ) {
      int i = (int) ((Math.random()*6) + 1);
      arZahlen[i-1]++;
      System.out.print(i+" ");
      }
      
      System.out.println("\n");
      
      for (int y = 0;y<x ;y++ ) {
      int z= (int) ((Math.random()*6) + 1);
      asZahlen[z-1]++;
      System.out.print(z+" ");
      }
      System.out.println("\n");

      double a = x * 2;

      double eins = asZahlen[0]+arZahlen[0] * 100.0 / a;
      double zwei = asZahlen[1]+arZahlen[1] * 100.0 / a;
      double drei = asZahlen[2]+arZahlen[2] * 100.0 / a;
      double vier = asZahlen[3]+arZahlen[3] * 100.0 / a;
      double fuenf = asZahlen[4]+arZahlen[4] * 100.0 / a;
      double sechs = asZahlen[5]+arZahlen[5] * 100.0 / a;

      DecimalFormat f = new DecimalFormat("#0.00");

      System.out.println("Die Zahl 1 wurde zu " + (f.format(eins))+ "% gewürfelt." );
      System.out.println("Die Zahl 2 wurde zu " + (f.format(zwei))+ "% gewürfelt." );
      System.out.println("Die Zahl 3 wurde zu " + (f.format(drei))+ "% gewürfelt." );
      System.out.println("Die Zahl 4 wurde zu " + (f.format(vier))+ "% gewürfelt." );
      System.out.println("Die Zahl 5 wurde zu " + (f.format(fuenf))+ "% gewürfelt." );
      System.out.println("Die Zahl 6 wurde zu " + (f.format(sechs))+ "% gewürfelt." );

      System.out.println("\n");
      


   }

}

Hey Leute, hab das Programm mal ausgebaut so dass jeweils 2 Zahlen gewürfelt werden sollen....

Mein Problem:
cmd.JPG

also die Zahlen aus der 1. Reihe (3 und 6) sind aus dem Array "arZahlen[]"
und die Zahlen aus der 2. Reihe (1 und 1) sind aus dem Array "asZahlen[]"

Meine Frage: Wieso steht da 2% anstatt 50% ?

Danke im vorraus...
 
Also erstmal solltest du dir angewöhnen sprechende Variablennamen zu wählen, kann man ja kaum lesen und wärde der Code größer hätte ich dann gar keine Lust mehr gehabt ihn anzuschauen. Dann solltest du das zweite Array nich asZahlen nennen. Ich habe beim ersten bewusst die Vorsilbe "ar" gewählt, damit man weiß, dass es sich um ein Array handelt.

Kommt das nur bei der eins vor? Lass dir zusätlich mal alles Zahlen, die zum berechnen des ersten %-Wertes ausgeben.
 
Code:
import java.io.Console;

public class Main {

    public static void main(String[] args) {
        int[] wuerfelzahl = new int[6];
         Console c = System.console();
         System.out.println("Wieviele Wuerfe?");
         int anz = Integer.parseInt(c.readLine());
         for (int i=0;i<anz;++i){
             int wurf = (int) ((Math.random()*6) + 1);
             ++wuerfelzahl[wurf-1];
         }
         for(int i=0; i<6; ++i){
             System.out.format("Die Zahl %d wurde zu %f Prozent gewuerfelt.\n",
                     i, 100.0*wuerfelzahl[i]/anz);
         }
    }

}

Nicht schön, funktioniert aber.
 

Neue Beiträge

Zurück