Kezdőoldal » Számítástechnika » Programozás » Pascalban tömb véletlenszerű...

Pascalban tömb véletlenszerű elemeinek generálása úgy, hogy egy elem maximum egyszer fordulhat elő?

Figyelt kérdés

Pascalban lehetséges egy tömb elemeit véletlenszerűen generálni úgy, hogy 1 elem maximum egyszer forduljon elő?

Próbáltam elöltesztelős ciklussal is, de nem sikerül.


2012. máj. 28. 07:18
 1/4 iostream ***** válasza:
Lehetséges, a Pascal Turing-teljes nyelv.
2012. máj. 28. 07:50
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

Pascalt nem ismerem, de valami ilyesmi a megoldás:


i = 1

while ( i<n ) {


j = 1

elöfordult = false

szam = random


while ( j<i !elöfordult ) {

elofordult = ( A[j]==szam )

}


if (!elofordult) {

A[i] = szam

i = i+1

}


}

2012. máj. 28. 09:33
Hasznos számodra ez a válasz?
 3/4 2xSü ***** válasza:

Az egyik megoldás: Amint kiválasztasz egy elemet, úgy megvizsgálod, hogy már generálva lett-e az adott elem. Ha nem, akkor eltárolod egy „már generált elemek” tartalmú tömbbe.


Másik megoldás: Kártyapakli. Ha a tömb elemeinek eredeti sorrendje a továbbiakban már nem kell, akkor elindulsz a tömbön az első elemtől az utolsóig. Mielőtt kiírod az adott indexű elemet, megcseréled egy véletlenszerűen kiválasztott „nem előző” (következő vagy önmaga) elemmel. Előny: Kisebb memóriaigény. Hátrány: A tömb eredeti sorrendje elveszik.

2012. máj. 30. 08:14
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Köszönöm, sikerül megcsinálni!!
2012. jún. 2. 13:27

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!