Erste Schritte Random Zahl auswählen

Florox_TGI

Mitglied
Hallo,

Ich bin ein IT Schuler und hatte vergangene Woche meine ersten Berührungen mit der Sprache Java.
Als Hausaufgabe habe ich nun unter anderem bekommen, dass ich ein Programm schriebe, dass den Benutzer dazu auffordern muss 2 Variablen einzugeben. Anschließend soll eine Multiplikation stattfinden, in denen 3 Zahlen vorkommen (bestehend aus den 2 Variablen). Man soll also eine Rechnung durchführen, dass die in der Rechnung immer Random Zahl 1 oder Zahl 2 nimmt.

Hab mir überlegt mit Math.random(), weiß jedoch nicht wie machen -.-

Hoffe mir kann jemand bei diesem Anfängerproblem helfen
 
Was hast du bis jetzt? Ist/Soll... Warum sollen wir das denn alles für dich machen, dabei lernst doch nix! Ich fänd es schade, wenn jetzt einer von den Einsteinen hier diese Aufgabe löst.
 
Ich habe die Eingabe der Zahlen, das Rechnen, sowie die Ausgabe.
Was mir fehlt ist, dass er bei der Rechnung zufällig Zahl 1 oder Zahl 2 pickt...

int Produkt = Zahl 1 / Zahl 2 + Zahl 1 / Zahl 2 + Zahl 1 / Zahl 2

Ich weiß nur nicht wie man den Zufallsfaktor von Zahl 1 / Zahl 2 machen kann,
da unser Lehrer uns dies noch nicht erklärt hat.
 
Okay, mal der pragmatische Ansatz, du hast eine Münze oder Münzwurf und Kopf oder Zahl. Was soll berechnet werden, sie Kopf zeigt oder sie Zahl zeigt? Dann bist du schon einen Schritt ran.
 
Ich bin aufjedenfall einen Schritt näher dran...

int Zufall_1 = (int) (Math.random()*2) generiert Zufallszahl 0 oder 1

Jetzt weiß ich bloß nicht wie man den "if" befehl schreibt...
Mein plan war:
Variable_1 = Zahl_1 if Zufall_1 = 1
Variable_1 = Zahl_2 if Zufall_1 =0
System.out.println(Variable_1);

funktioniert nur leider nicht -.-
 
If-Anweisungen funktionieren anders.
Einmal die "normale" Form und einmal eine verkürzte, passend für diesen Fall:
Java:
if(rand == 1){
    var = num1;
} else{
    var = num2;
}

//oder so

var = (rand == 1)? num1: num2;
 
Moin, Variable(n) setzen ist eine Möglichkeit, ich hätte noch drei andere:
Java:
        int zahl1 = 1;
        int zahl2 = 2;
        for (int i = 0; i < 8; i++) {
            int sum = 0;
            for (int j = 0; j < 3; j++) {
                if ((i & 1 << j) == 0) {
                    sum += zahl1;
                } else {
                    sum += zahl2;
                }
            }
            System.out.println(String.format("%3s", Integer.toBinaryString(i)).replace(' ', '0') + ": " + sum);
        }

        System.out.println("");

        for (int i = 0; i < 8; i = i << 1 | 1) {
            int sum = 0;
            for (int j = 0; j < 3; j++) {
                if ((i & 1 << j) == 0) {
                    sum += zahl1;
                } else {
                    sum += zahl2;
                }
            }
            System.out.println(String.format("%3s", Integer.toBinaryString(i)).replace(' ', '0') + ": " + sum);
        }

        System.out.println("");

        for (int i = 0; i < 4; i++) {
            if ((int) (Math.random() * 2.0) == 1) {
                if ((int) (Math.random() * 2.0) == 1) {
                    System.out.println(zahl1 + zahl1 + zahl1);
                } else {
                    System.out.println(zahl1 + zahl1 + zahl2);
                }
            } else if ((int) (Math.random() * 2.0) == 1) {
                System.out.println(zahl1 + zahl2 + zahl2);
            } else {
                System.out.println(zahl2 + zahl2 + zahl2);
            }
        }


Code:
000: 3
001: 4
010: 4
011: 5
100: 4
101: 5
110: 5
111: 6

000: 3
001: 4
011: 5
111: 6

5
4
6
4
Wobei ich mit if-else- if-else- if-else- if-else- if-else- usw. eindeutig am besten finde.

Vielleicht hab ich die Aufgabenstellung auch nicht verstanden, aber meiner Meinung
alles, was du brauchst: if ((int) (Math.random() * 2.0) == 1) {.

Und bevor sich jeder ärgert, ich weiß, dass man den Coin flip auch anders schreiben kann.

Wenn es sich herausstellen sollte, dass das überhaupt nicht zur Aufgabe passt,
Moderator bitte wieder rausnehmen.
 

Zurück
Oben