Autor | Zpráva | ||
---|---|---|---|
crazko Profil * |
#1 · Zasláno: 26. 4. 2012, 11:38:23
Dobrý deň,
potreboval by som pomôcť s prepisom algoritmu AQ do jazyka php. Pre zjednodušenie pracujem v Nette s dibi. Všeobecný algoritmus vyzerá takto: toto sú moje vstupy: Problém je v tom, že všetky cykly prebehnú dokonca, ale pravidlá sa tvoria akoby len z prvého krkoku, ďalej sa už nedeje nič. Na konci cyklu, by malo byť pole $E1 prázdne a v poli $rules by mali byť "oci" => "hnede", "vlasy" => "tmave"
Tu je môj kód: <?php $E1 = \AqModel::fetchNegative(); $E2 = \AqModel::fetchPositive(); $G = array(); $G2 = array(); $rules = array(); //do { $i=0; foreach ($E1 as $id1 => $hodnotaE1) { foreach ($E2 as $id2 => $hodnotaE2) { $G[] = array_diff((array) $hodnotaE1, (array) $hodnotaE2); // zisti rozdiel v poliach } $G2[]=call_user_func_array('array_intersect',$G); // ostanu iba rovnake hodnoty $G = array(); foreach ($E1 as $v1 => $a1) { foreach ($G2 as $v2 => $a2) { if (array_diff_assoc((array)$a2,(array) $a1)) { unset($E1[$v1]); } } } $rules += $G2; $G2 = array(); $i++; //if($i==2) break; } //} while (count($E1) > 0 ); ?> Samozrejme, ide mi o to, aby to bolo napísané všeobecne pre akékoľvek vstupy. poprípade, ak by ste vedeli o nejakom zdroji, z ktorého by som sa mohol odpichnúť, bol by som len rád, ja som žiaľ nič nenašiel. Ďakujem za pomoc |
||
Časová prodleva: 12 let
|
0