Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet egy két dimenziós...

Hogyan lehet egy két dimenziós tömb elemeit kitölteni a lehető összes módon 0-val,1-gyel és 2-vel?

Figyelt kérdés

Egy matekfeladathoz kell. Van egy megadott 2 dimenziós tömböm, arról el tudom már dönteni, hogy jó-e, vagy sem. le kéne generálni az összes két dimenziós tömböt, ami lehetséges.

Például:

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

, vagy:

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1


vagy:

0 1 0 0

0 2 0 0

0 1 0 0

0 0 1 0



#php #programozás #matematika #összes lehetőség
2017. szept. 20. 17:55
1 2
 1/18 A kérdező kommentje:
ja és fix 4x4-es a tömb mérete.
2017. szept. 20. 17:56
 2/18 anonim ***** válasza:
40%

Ez egy 4x4-es (icipici) méret esetén több, mint 43 millió különböző eset.

5x5 esetén már majdnem 850 milliárd eset.

Végignézed mindet egyesével?

2017. szept. 20. 18:08
Hasznos számodra ez a válasz?
 3/18 anonim ***** válasza:
30%

Ok, 5x5 akkor nem kell, tehát csak 43 millió esetet kell végignézni.

Ha másodpercenként egyet megvizsgálsz és megállás nélkül csinálod alvás és evés nélkül, akkor 1 és negyed év alatt kész leszel.

2017. szept. 20. 18:10
Hasznos számodra ez a válasz?
 4/18 A kérdező kommentje:
Igen... Könnyebb mint a matektanáromnak szépen megindokolni, logikával. :-D
2017. szept. 20. 18:11
 5/18 anonim ***** válasza:
6%
Sok sikert, csak ne felejtsd el időben elkezdeni, hogy jövő Karácsonyra végezz vele!
2017. szept. 20. 18:11
Hasznos számodra ez a válasz?
 6/18 anonim ***** válasza:
62%

#5 Édes istenkém, menj már innen melegebb éghajlatra, nem tudom, hogy a saját inkompetenciád, vagy a személyiséged késztet arra, hogy állandóan kötekedj, meg marhaságokat böfögj, de elég lesz.


A kérdésre válaszolva: A feladatot sokkal egyszerűbbé tesszük, ha rájövünk, hogy a kétdimanziós tömb igazából átírható egydimenziós tömbbé (tomb1[i][k] => tomb2[i*n + k], ahol n egy 'sor' hossza), és lényegében sorfolytonosan következnek egymás után az elemek. EZ azért jó, mert így máris nem azt kell kitalálni, hogy egy kétdimenziós tömbben hogyan hozol létre minden számvariációt, hanem már csak egy mezei tömbre kell ezt megtenni. A procedúra pedig igen egyszerű. Kezdetben van egy olyan sorozatod:

0000000000000000.

És ezt elkezdheted egyesével növelni.

1000000000000000,

2000000000000000,

0100000000000000,

1100000000000000,

és így tovább. Ez lényegében megegyezik azzal, hogy "számoljunk el 0-tól N-ig egyesével", csak tizes számrendszer helyett itt hármas számrendszerben kell ezt megtenni. Minden lépésben megnézed a legkisebb helyiértéken álló értéket, ha ott 2-nél kisebb szám áll, akkor hozzáadsz egyet. Ha pedig 2 áll rajta, akkor lenullázod azt a helyiértéket, és ugyanezt a lépést rekurzívan elvégzed a következő helyiértékkel. Mindez addig, amíg nem 'csordul túl' az aktuális helyiérték. Ez egy iteráció. Minden iterációval megkapod az egyik variációt. Addig folytatod ezt, amíg túl nem csordul az utolsó helyiérték is (azaz el nem éred a 2222222222222222-es számsort). Így érthető? :D

2017. szept. 20. 18:37
Hasznos számodra ez a válasz?
 7/18 anonim ***** válasza:
53%
Nem tudok a GyK miért vágott le a számsorozatokból, így elég összevisszák lettek... de mindegyik sorozat 16 elemből állt amúgy.. :D
2017. szept. 20. 18:39
Hasznos számodra ez a válasz?
 8/18 anonim ***** válasza:
19%

Kedves #4-es Pistike!

És mesélj még, az, hogy 1 dimenzióra vetíted a 2D-s tömböt mitől is csökken a lehetséges 43 millió variáció?

Mitől is lesz ez hasznosabb?


Aztán ha elgondolkoztál gyere vissza, ha sikerült megértened a feladatot.

2017. szept. 20. 18:47
Hasznos számodra ez a válasz?
 9/18 anonim ***** válasza:
19%
Bocs, nem #4, hanem #6...
2017. szept. 20. 18:48
Hasznos számodra ez a válasz?
 10/18 anonim ***** válasza:
90%
Miért csökkenne? Ennyi variáció van. Az 1 dimenzióra vetítés csak egyszerűbbé teszi megérteni a folyamatot. TE érted a feladatot?
2017. szept. 20. 18:49
Hasznos számodra ez a válasz?
1 2

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!