Avatar
Peto
Člen
Avatar
Peto:

Nazdar, mam 2 polia ktore vyzeraju asi takto : prve [[1,2,3,7,6,5­,4],[1,2,3,4,5,6,7],[7,6­,5,4,3,2,1]] , druhe [[1,2,3,4,5,6­,7],[7,6,5,4,3,2,1,],[1,­5,7,4,3,6,2]] a potrebujem ich porovnavat, prvky prveho pola v prvom poli s prvkami prveho pola v druhom poli. A mam 3 skupiny a) zhoduje sa => ak sa cisla rovnaju b) nerovnaju sa => cisla sa nezhoduju c) zhoduju sa o 1 index vyssie alebo 1 index nizsie. Napr ak v prvom poli bola prva 1 a v druhom poli bola 1 na druhom mieste [1,2,4] --> [0,1,5]. Dakujem za pomoc.

 
Odpovědět 11. dubna 17:43
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

Vysvětli blíže co myslíš tím céčkem ? Jak o jeden index? Výsledek chceš vědět pro celá pole ?

 
Nahoru Odpovědět 11. dubna 19:03
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Asi som to zle napisal, potrebujem si vytvorit nieco taketo. Je to percentualny vyskyt prvkov na jednotlivych poziciach podla poradia.

Editováno 11. dubna 19:45
 
Nahoru Odpovědět 11. dubna 19:44
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

Dobře máš sedm prvků a na obrázku jsou hodnoty pro sedm polí? Z nichž každé obsahuje dalších x poli o sedmi prvcích ... Chceš v každém hlavním pole určit pro každé číslo od 1 do 7 určit jeho výskyt na konkrétním indexu ... Je to tak ?

 
Nahoru Odpovědět 11. dubna 19:58
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Nie . Potrebujem si pamatat ako boli vygenerovane a a ako som ich ja neskor zadal.A tie hodnoty si nejako uchovavat aby sa dal zostrojit takyto graf.

 
Nahoru Odpovědět 11. dubna 20:16
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

:) dobre tak ja to zkusim z jineho konce, tohle vlakno zacinalo na srovnavaci metode, pak jsme se dostali k pocitani castosti vyskytu a ted jsme u generovani a pozdejsim zadavani ... pravdepodobne to ma souvislost s tvym predchozim dotazem na generovani nahodnych sedmi cisel, mozna ale ne... nicmene pozadam te o to, abys mi bud vysvetlil, o co presne se snazis, co je cilem, a nebo, pokud nechces vsechno vysvetlovat a nebo to chces udrzet pod poklickou, rekni jen co potrebujes stanovit, napriklad mam data v takovehle podobe, chci je mit v takoveto, ja ti reknu co si myslim, ze potrebujes a bude hotovo, takhle ale nevim o co ti vlastne jde... o porovnani dvou dvourozmernych poli (prvni prispevek) o spocitani castosti vyskytu prvku na konkretnim indexu (tak to vyznel z tabulky v druhem) a nebo jeste neco jineho (co jsem nepochopil skoro vubec z tretiho prispevku)

zkus vychazet z toho, ze netusim co implementujes a potrebuju vedet jak ti poradit, mozna implementujes nejakej matematickej problem...nevim­...rekni ty...

 
Nahoru Odpovědět 11. dubna 21:43
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Ok , no ja sam nie som 100% presvedceny ako sa to ma porovnavat. Tu mam nieco k tomu. Je tam 20 opakovani v ktorych sa ti vygeneruje 7 cisel , po kazdom opakovani sa ti zobrazia tlacitka a treba zakliknut cisla v spravnom poradi. a ide o to Napr ak ta cislo vygenerovalo ako tretie tak s najvecsou pravdepodobnostou ho oznacis ako 3, a ak nahodu nie tak s velkou pravdepodobnostou ako 2 alebo 4. Dufam ze ten obrazok pomoze.

 
Nahoru Odpovědět 11. dubna 22:09
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

dobre myslim, ze chapu ... v tenhle moment mas pole vygenerovanych hodnot (jakoze to uz mas hotove) a taky predopkladam ze bez vetsich problemu mas druhe pole, ktere je zaznamem toho co vlozil uzivatel (testovaci subjekt) .. nyni potrebujes tato dve pole projit nejakou chytrou funkci, ktera urci jestli za A uzivatel vsechno zadal spravne v perfektnim poradi, za B uzivatel zadal neco spatne, pak potrebujes zjistit, kterou hodnotu zadal spatne, kde mela byt a kam ji strcil... rekneme ze by funkce vracela nejake pole, kde by byl ulozen vysledek, ubiram se spravnym smerem?

 
Nahoru Odpovědět 11. dubna 22:16
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Ano presne tak, tie udaje potom poslem do databazy a z nej vytvorit taku tabulku a graf ako som posielal uz vtedy.Tak neviem v akom formate by boli najlepsie uchovavat vysledky.

 
Nahoru Odpovědět 11. dubna 22:38
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

dobre rekneme, ze funkce provede porovnani obou poli, vezme spravne reseni a spatne reseni, v hlavnim for cyklu pojede na pocet poli uvnitr referencniho pole (tedy sedm, jestli jsem spravne odtusil, ale do budoucna je to jedno, udelame to chytry) ... na kazdy prvek referencniho pole (ve skutecnosti je prvek dalsi pole o sedmi prvcich - to uz jsou ona cisla) v dalsim for cyklu porovname tento prvek s prvkem, co zadal uzivatel, pokud se nelisi, ulozime do naseho noveho pole -1 (potrebujem necim naznacit ze to neni spatne a -1 index v poli neni) .. pokud se ovsem hodnoty odlisuji, zavolam na uzivatelske pole metodu indexOf() a jako data ji predam prave tu referencni hodnotu, kterou MEL uzivatel na tomto indexu zadat, metoda mi vrati index prvku dane hodnoty v danem (uzivatelskem) poli, ten ulozim na stale ten samy index do vysledneho pole, tim rikam, uzivatel to urcil spatne, zde na tomto indexu se nachazi cislo, ktere tu melo byt... takhle projedu vsechny pole uvnitr velkeho pole a navratim velke pole, obsahujici dalsi pole, jejichz prvky jsou bud -1 a nebo cisla od 0 do 6 (pro sedm prvku) ... do databaze bude treba zanest referencni pole a toto pole, toto pole je otiskem uzivatelskeho pole, a pokud chces zrekonstruovat uzivatelske pole, potrebujes nejen toto pole ale i referencni... jeste dodam...pozor na metodu indexOf(), ona kdyz nic nenajde vrati taky -1 ... na druhou stranu ... predpokladam, ze mas osetrene, ze uzivatel nemuze zadat dvakrat stejne cislo v jedne sekvenci, nebo nemuze nejake cislo vubec nezadat ... pokud nemas, bude treba jeste nejake dalsi logiky, ale pevne verim, ze mas pojistene alespon to zadavani stejneho cisla dvakrat v jedne sekvenci...to bys pak nemohl urcit jednoznacne chybu zejo... no mozna se nekde v necem pletu, projdi si to a dej vedet...

jestli se blizim k cili tak napis, dame dohromady ty cykly

 
Nahoru Odpovědět 11. dubna 22:56
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Zle vstupy mam osetrene , uzivatel moze v sekvenii zadat kazde cislo maximalne 1 krat a musi zadat 7 cisel aby mohol spustit dalsie opakovanie. A toto riesenie vyzera velmi slubne.

 
Nahoru Odpovědět 11. dubna 23:22
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

https://jsfiddle.net/…ll/ythet80e/
Tak to tě může zajímat tenhle fiddle -1 jsem upravil na -2 jen pro jistotu a můžeš a nemusíš použít posun ... Ten jen přičte k indexu 1 aby první prvek byl 1 a ne 0 ale spíš to nebude vhodné to jen na koukání ... Řekni pak co chceš dál nebo jestli tohle stačí

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 12. dubna 1:01
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

Nebo mě ještě napadl jiný formát, místo chybného místa, uložit vzdálenost a směr k tomu místu ... Řekneme že na třetím indexu pole měla být 5 ka, ale je na pátém... 5 - 3 je 2 .. Kdyby byla na prvním a měla být na třetím tak 1 - 3 je -2 znaménko určí směr a číslo vzdálenost ... Díky téhle reprezentaci nepotřebuješ dvě pole ... Všechno je uloženo v jednom poli ... Pokud ti nezáleží na konkrétní hodnotě do statistik ale spíš na indexu (což si myslím že jsem pochopil správně) ... Tak je tohle přesně pro tebe ... Snadno z toho vyčteš o kolik prvků se uživatel u konkrétního indexu spletl ... Tedy ta tvoje informace, kdy bys mu to měl připomenout, nebo co to bylo, se z toho vyčte snadněji... Co ty na to ? Chceš fiddle nebo si poradíš a upravíš ten můj předchozí?

 
Nahoru Odpovědět 12. dubna 1:16
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Super presne toto som potreboval. A nemas nahodou nejaky tip na to ako by mi bolo najlepsie si zapamatavat kolko krat sa ktora polozka vyskytovala na ktorom mieste.
Napr ze polozka 1 bola na 1 mieste napr 12krat , na druhom mieste 3 krat atd. Aby som z toho dokazal vytvorit tabulku.

 
Nahoru Odpovědět 12. dubna 11:18
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Rozmyslam ze ked ten compare bude len takto:

function compare(arrA, arrB) {
  var retArr = [];

  for (var i = 0; i < Math.min(arrA.length, arrB.length); i++) {
    retArr[i] = [];

    for (var e = 0; e < Math.min(arrA[i].length, arrB[i].length); e++) {
        retArr[i][e] = arrB[i].indexOf(arrA[i][e]);
    }
  }
  console.log(retArr);
  return retArr;
}

tak sa z toho bude najlepsie vytvarat ta tabulka.Lebo nam je jedno ake je tam cislo, ta teori iba hovori ze ak bolo napr 3 tak je najvecsia pravdepodobnost ze ho oznacis ako 3.

 
Nahoru Odpovědět 12. dubna 11:45
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

Kdyz vychazime z toho prvniho modelu, (ten co sis vybral jako reseni), tak asi takhle:

Havni cyklus na pole, ktere je vysledkem predesle operace, uvnitr nej probehne presne tolik zanorenych cyklu jako je pocet poli uvnitr tohohle pole, muze jich byt libovolne, nicmene kazde tohle druhe pole bude mit sedm prvku, tedy na kazde vnitrni pole probehne sedmkrat.
Do vedlejsiho pole[7][7] (je treba ho nejdriv naplnit nulama, aby se pozdeji daly provadet matematicke operace s prvky) si budes ukladat hodnoty timhle systemem, dle tvaru tve tabulky, bude osa Y urcovat pocet vyskytu, osa X konretni polozky ... to znamena ze v druhem vnorenem cyklu kdyz bude prvek pole[i][e] === -2 tak prictes do vedlejsiho pole na index[i][e] +1, pokud je hodnota jina, prictes to myslim takhle pole[i][taHod­notaCoNeniMinus­Dva] (protoze tam je konkretne ulozen index prvku kam ho zadal uzivatel, misto aby ho dal sem) ... snazil jsem se to popsat lip, ale vetsina verzi to jen vic zamotala, takze jsem to popsal co nejstrucneji, snad to z toho vemes a bude ti to k necemu.

Co ty na to?

 
Nahoru Odpovědět 12. dubna 11:56
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Peto
Taskkill:

jo myslim, ze to by slo, kdyz na to prijde, tak ti to asi i zjednodusi tu tabulkovaci funkci, budes jen inkrementovat hodnotu na prvku, ktery ti rekne to porovnane pole ...

 
Nahoru Odpovědět 12. dubna 12:00
Avatar
Peto
Člen
Avatar
Odpovídá na Taskkill
Peto:

Ok dufam ze to nejako pojde, idem sa pustit do tej tabulky.

 
Nahoru Odpovědět  +1 12. dubna 13:50
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.