HA - Wahrscheinlichkeitsprogramm erweitern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • HA - Wahrscheinlichkeitsprogramm erweitern

    Hallo Leute!

    Ich komme mit meine HA für meine Einführung in Java nicht klar. Das ging mir in der Vorlesung viel zu schnell und jetzt versteh ich den Kram nicht. Die haben uns dieses Programm hier vorgegeben:

    public class Choice {
    public static void main(String[] args) {
    int winCounter = 0;
    int strategy = Integer.parseInt(args[1]);
    int N = Integer.parseInt(args[0]);
    for (int i=0; i<N; i++) {
    int price = (int)(1.0+(Math.random()*3));
    int selected = (int)(1.0+(Math.random()*3));
    if(strategy == 1) {// always change mind
    if (selected != price) winCounter++;
    }
    else {// always keep the selection
    if (selected == price) winCounter++;
    }
    }
    System.out.println("P="+((double)winCounter/N));
    }
    }

    und dazu folgende Aufgaben gestellt:


    Betrachten Sie das Programm Choice aus der Vorlesung.

    a) Erweitern Sie das Programm um eine dritte Strategie, die zufällig eine der beiden anderen
    Strategien auswählt.

    b) Welche Gewinnwahrscheinlichkeit ermitteln Sie mit dem Programm für diese dritte Strategie.

    c) Erweitern Sie das Programm so, dass wenn man den Strategieparameter weglässt alle Strategien nacheinander probiert werden und wenn zusätzlich der Grössenparameter weggelassen wird soll die Grösse auf 10000 gesetzt werden.

    d) Machen Sie einen Vorschlag, wie das Programm geschrieben werden kann, so dass man einen beliebigen Parameter weglassen kann. Warum funktioniert das mit der bisherigen Lösung nicht?


    Wer kann mir bitte (für doofe) erklären, wie das Programm überhaupt funktioniert und was ich in der Aufgabe machen muss?


    Kussi, Bloemeken



    // edit by vince - Bitte das nächste mal einen aussagenkräftgen Titel verwenden !
  • Was genau verstehst du denn nicht?
    Einfach zu sagen "ich versteh nix erklärt mir alles" ist zum einen ein sehr einfacher und nicht wirklich lehrreicher weg und zum anderen wirst du in Foren bei solchen Aussagen auf gewisse Abneigungen stoßen. Ein wenig mehr eigenständiges Arbeiten ist als Student wohl angebracht.

    Mach dich mal schlau über: Array, Kontrollstrukturen (verzweigungen, schleifen), system.out.println()

    Mehr ist es eigentlich nicht.

    Achso und sei bitte so nett und verwendete nächstesmal das Syntaxhighlighting.
    Dazu musst du deinen Code zwischen zwei Tags setzen. Zu finden unter:

    Unterer Reiter "Syntax" => auf die Kaffee Tasse klicken. Dadurch entstehen zwei Tags und genau dort zwischen packst du seinen Code.
  • Quellcode

    1. public class Choice {
    2. public static void main(String[] args) {
    3. int winCounter = 0;
    4. int strategy = Integer.parseInt(args[1]);
    5. int N = Integer.parseInt(args[0]);
    6. for (int i=0; i<N; i++) {
    7. int price = (int)(1.0+(Math.random()*3));
    8. int selected = (int)(1.0+(Math.random()*3));
    9. if(strategy == 1) {// always change mind
    10. if (selected != price) winCounter++;
    11. }
    12. else {// always keep the selection
    13. if (selected == price) winCounter++;
    14. }
    15. }
    16. System.out.println("P="+((double)winCounter/N));
    17. }
    18. }
    Alles anzeigen


    Meintest Du so?

    Sorry, ich weiß, daß das nicht die richtige Art und Weise ist. Aber es ist so, daß ich vor 2 Wochen in der VL gelandet bin (muss für meinen Studiengang "Informationswissenschaft" halt auch 'n Informatikschein machen) und vorher so gar keine kenntnisse hatte. Bin schon froh, daß ich Dr. java alleine installiert bekommen habe. Ist halt für 'ne Erstsemesterin ziemlich viel Stoff ?( . ich hab ja nicht nur die eine VL. Natürlich muss ich mich da ins Thema reinbeißen. Spätestens in der Klausur steh ich sonst übelst auf dem Schlauch. Aber mein prof. hastet nur so durch seine Folien und mein Tutor erklärt uns Dinge, die gar nichts mit der VL zu tun haben.
    Ich will ja gar nicht, daß mir hier jemand meine HA's fertig macht. es sit nur so, daß ich gar nicht versteh wie Java richtig funktioniert ;( und ich wünsch mir einfach jemanden, der mir sowas mal durchstrukturiert erklärt, damit ich's richtig verstehe...

    Das Problem an der sache ist nämlich, daß ich jede HA bestehen muss um dann zur Klausur zugelassen zu werden. Die schmeißen einen da einfach ins kalte wasser und sagen: "SCHWIMM!" Ich kann nur gar nicht so schnell alleine schwimmen lernen, wie das Wasser steigt. Weißt Du was ich meine?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bloemeken ()

  • Zu deiner Formatierung: Jau super! Eins-plus!

    Viele hier wissen was du meinst da sie schon in ähnliches Situationen waren ;)

    Dennoch muss ich wissen was du weißt und was nicht. Oder hast du das wirklich überhaupt gar nicht verstanden?

    Weißt du ...
    a) ... was Datentypen sind?
    b) ... welche Datentypen werden in deinem Beispiel verwendet und warum?
    b) ... was die "if" anweisung bewirkt? Wozu ist die da?
    c) ... was eine "for" schleife ist?
    d) ... was eine Methode ist?
    e) ... was Parameter sind?
    f) ... welche Parameter ( oder welcher Parameter? ;) ) werden in deinem Beispiel verwendet?

    Erstmal ganz ruhig bleiben...
    Das erste Semester ist eben einfach eine Flut von Stoff aber das steht man durch wenn man sich etwas reinkniet.