Kezdőoldal » Számítástechnika » Programozás » C# véletlenszerű számgenerálás...

C# véletlenszerű számgenerálásnál meglehet adni "kivéve" értéket? (bővebben lent)

Figyelt kérdés

Sziasztok!


Véletlen szám generálásánál meglehet adni kivételt? A következő a helyzet:

Végrehajtatok két véletlen szám generálást 0,100 értékek között. A második generálásnál viszont feltételül kéne adnom, hogy amit generál az nem lehet egyenlő az első generálásnál kapott értékkel? Első körben 'if' függvényre és a végén 'goto;' --> újragenerálásra gondoltam, de meglehet oldani esetleg egy sorban valami '!= X' megadással esetleg az egyenletben?



2016. máj. 28. 22:10
1 2 3
 21/21 anonim ***** válasza:

Sziasztok!


Egyetemen mindenkibe beleverik, hogy a GOTO használata tilos, mert ott struktúrált programozást oktatnak, és szebb a kód GOTO nélkül. Az, hogy a fordító ebből a gyönyörű optimális kódodból hogy csinál JMP-t és JNZ-ket, meg feltételes ugrásokat, az más tészta. Meg az is, hogy a GOTO helyett alkalmazott többszintes megoldásokkal, és mély if-fákkal ugyanúgy lehet ronda, átláthatatlan spagettikódot írni.


Hogy hozzátegyek valamit:

Esetedben a GOTO struktúrált megfelelője a függvényhívás: Szervezd ki a generáló kódot egy függvénybe, és hívd azt meg.:


private const int MIN = ...;

private const int MAX = ...;


private static int Generate(Random rnd) => rnd.Next(MIN, MAX);


public int Main()

{

var rnd = new Random(); // Ebből osztályonként 1-et használj, kérlek!

int num1 = General(rnd);

int num2 = 0;

do

{

num2 = General(rnd);

} while (num1 == num2);

}


De a válaszok elején 80%-os azzal a tömbös megoldással nagyon jót mondott, főleg, ha az intervallum kicsi. Esetedben sok, felesleges memóriát fogyasztana. Ez akkor jó, ha mondjuk 100-ból 90 számot kellene ismétlés nélkül legenerálnod, mert akkor probléma lesz az ütközés, és kevesebb memóriát használsz feleslegesen.

2016. szept. 1. 21:23
Hasznos számodra ez a válasz?
1 2 3

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!