Kezdőoldal » Számítástechnika » Programozás » Random szám generálás mindig...

Random szám generálás mindig ugyan az, miért?

Figyelt kérdés

két alapműveletet szeretnék generáltatni de mindig ugyan az lesz, az első szorzás a második pedig kivonás nem tudja vki hogy miért?


public class MainActivity extends Activity {


TextView feladat;

int muveletSzam;

Random r = new Random();

char muvelet;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


feladat = (TextView) findViewById(R.id.feladat);


feladat.setText(""+randNum()+alapMuveletEgy()+randNum()+alapMuveletKetto()+randNum()+"= ???");



}


private int randNum() {

return r.nextInt(10-1)+1;

}


private char alapMuveletEgy(){

muveletSzam=r.nextInt(3-1)+1;

switch(muveletSzam){

case 1:muvelet='+';

case 2:muvelet='-';

case 3:muvelet='*';

}

return muvelet;

}


private char alapMuveletKetto(){

muveletSzam=r.nextInt(3-1)+1;

switch(muveletSzam){

case 1:muvelet='*';

case 2:muvelet='+';

case 3:muvelet='-';

}

return muvelet;


}

}



2015. márc. 12. 02:07
 1/4 anonim ***** válasza:
Gondolom mert nem inicializálod a random generátort, vagy nem adsz neki megfelelő seed-et.
2015. márc. 12. 07:03
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

A randomot külön-külön hozd létre a két metódusban, úgy menni fog.

Én is kezdő vok még, de szerintem azért, mert ugye két külön metódusban hívod meg r.NextInt-et ugyanazokkal a paraméterekkel, és ez ugyanaz az eleme a randomnak.

2015. márc. 12. 09:28
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Itt van a hiba:

r.nextInt(3-1)+1;


"Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence."

[link]


0 és 2 között kérsz véletlen egészet, amiben a 2 nincs benne. 0-hoz vagy 1-hez 1-et hozzáadva 1-et vagy 2-őt kapsz hiányzik a 3. Használhatnál enum-ot a műveleteknek, és akkor a values listából veszel ki egy elemet 0 és műveletek számáig ( values().size() ). A switch sokkal olvashatóbb lenne.

2015. márc. 12. 12:27
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:
Ja és lefelejtettem, hogy a switch-nél break kell az esetek szétválasztásához. Pont ezt a C-s hibát javították ki a Go-ban úgy, hogy nem break kell a megszakításhoz hanem fallthrough a továbbengedéshez. Sok hibát megelőz, mert ez a használat a gyakoribb.
2015. márc. 12. 12:35
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!