Feladványkészítés reprodukció segítségével

 

Ha a második típusú redukcióra gondolunk (a feladványból egy elem törlésével keletkezett táblát vettük az eggyel kisebb elemű feladványok keresési alapjául), akkor az is eszünkbe juthat, vajon mennyire segít a generálásban egy ugyanolyan elemszámú feladvány, mint keresési alap. Ezt a módszert én reprodukciónak fogom nevezni. A feladat tehát a következő: készítsünk valamilyen módszerrel néhány (vagy akár sok) ugyanolyan elemszámú feladványt, és ezek közül válasszunk ki egyet egy újabb feladvány előállításához. Az előző lapon 18-as feladványokat állítottunk elő. Ezekből készítsünk továbbiakat reprodukcióval. A generáláskor használjuk az SH és PP metódusokat. A képernyőn hihetetlen dolog látható.

 

A program 120 másodperc alatt 1500 darab 18-as feladványt állított elő. Hogy ez miért nem látszik a képernyőn a szokásos módon, a nagy területű ListBox-ban? Mert csak minden 100-adikra vonatkozó információt ír ki a program. Figyeljünk még egy-két dologra: generáláskor ugyanazt az elemet többször is kiválaszthatja (Egyszer olvas – kikapcsolva) és a generáltat nem vizsgálja meg, hogy létezik-e már az adatbázisban (Egyszer ír – kikapcsolva).

 

 

A képernyőn az is megjelenik, hogy a gép óránként 38.571,48 darab feladványt képes elkészíteni. (Ez azért nem semmi, és ráadásul 18-ast). Az öröm azért ezért ennyire nem felhőtlen. A Feladványkezelőben töröljük ki a keletkezett feladványok közül az ismétléseket. Íme az eredmény:

 

 

De még így is 900 különböző feladványt kaptunk. Azaz a valódi sebesség 27000 feladvány óránként. Megállapíthatjuk, hogy az ugyanolyan elemszámú feladvány nagy segítséget ad további feladványok generálásához. Már most jelezném, hogy az így előállított feladványok kapcsolatát azonban célszerű megvizsgálni.