Ennek a MathCAD algoritmusnak hogyan kellene kinéznie?
Egy egyszerű MathCAD algoritmusban szeretném a segítségetek kérni,nagyon hálás lennék ha valaki orvosolná ezt a problémám:
Azt az (egyik) algoritmust keresem,amely 1-90 ig véletlenszerűen kidobja a számokat oly módon,hogy nem lehet számismétlés.
10 sornál tuti nincs több,keresem a megoldást ! :)
1. lépés:
Kiépítesz egy 90 elemű tömböt, (0-89ig indexelve persze) és feltöltöd 1-től 90-ig.
Csinálsz egy változót amibe beleteszed a tömb elemeinek számát. Legyen ez most "A".
2. lépés:
Generász egy számot 0-től (A-1)-ig, majd a kapott szám lesz azaz index aminek az értékét kifogod venni. Ezt az indexet mensd le egy "TMP"-be.
3. lépés:
A TMP indextől nagyobb számokat sorban básold barra, biztosítva azt a sorrendiséget, hogy ne legyen hézag. Majd a A-ból vonyj ki 1-et.
4. lépés:
Ha A nem 0 akkor térjünk vissza a 2. pontra. Ha mégis 0 vége.
Gyakorlatilag:
{index:érték}
Tömb 1-től 5-ig esetén:
T = ({0:1}, {1:2}, {2:3}, {3:4}, {4:5})
A = 5
random(A) nyelvfüggő, hogy adja vissza. Ezt dokumentációban kell megnézned. Most 5 értéket nézzen 0-tól azaz 0-tól 4-ig adhat vissza.
Most mondjuk adja vissza az 1-est.
TMP = 1
T[1] = 2 ez a kapott érték
Majd tologatunk:
({0:1}, {1:3}, {2:4}, {3:5}, {4:NULL})
A = A-1 azaz érték 4 lesz.
random(A) azaz 0tól 3ig adja. legyen most 0 a kapott érték.
TMP = 0
T[0] = 1 ez a kapott érték
Majd tologatunk:
({0:3}, {1:4}, {2:5}, {3:NULL}, {4:NULL})
A = A-1 azaz érték 3 lesz.
random(A) adja most vissza a 2-tőt.
TMP = 2
T[2] = 5 ez a kapott érték
Majd tologatunk:
({0:3}, {1:4}, {2:NULL}, {3:NULL}, {4:NULL})
A = A-1 azaz érték 2 lesz.
és így tovább. Garantálva, hogy érintsen mindent, de még se legyen 2x egy érték.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!