takze potreboval by som trocha pomoct s jednym programom ide skor o zeefiktivnenie procesu...takze o co ide
na vstupe sa zada cislo N urcujucich pocet zadanych suradnic [x,y] a ja mam zistit kde lezi najviac bodov na 1 priamke tu priamku nemam zadanu takze su len body [x,y]
ako som to ja riesil zoberiem 2 suradnice odratam od seba dostanem vektor vytvorim rovnicu priamky a skusam ostatne body a rovnica s najviac bodmi vyhrava...lenze toto je trocha neprakticke a pri vacsom N
takze vas vlastne prosim o neaky napad na zlepsenie ...
diky
analiticka geometria
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: analiticka geometria
ak je viac bodov na jednej priamke, vektory ľubovolných dvoch z nich budú rovnaké. Ich veľkosť ťa v tomto prípade nezaujíma (je ti jedno ako ďaleko sú body od seba, len musia byť na jednej priamke). Toto by si mohol využiť. Ty, ak som dobre pochopil, vyrátavaš vektory pre každú dvojicu a potom túto priamku kontroluješ so všetkými ostatnými bodmi. Ak vynecháš túto kontrolu, a namiesto toho si tieto vektory uložíš do poľa, tak zotriedenie tohto poľa ti dá dokopy body z jednej priamky. Stačí ti potom porátať počet bodov z každého zhluku. Nezabudni ale že si musíš s vektormi ukladať aj offsety, inak by ti dve rovnobežné priamky vyhodnotilo ako jednú. Poriadne si musíš premyslieť štruktúru ako dané objekty (objektovo programované by to bolo najlepšie, ale môžeš použiť aj nejaký record) budeš triediť. To už ale všetko záleží od jazyka (napríklad v jave ukážkový príklad na komparátory, v delphi alebo céčku to bude úplne inač..)
Re: analiticka geometria
robim to len v pascale . ) ale to je nepodstatne, takze ak som spravne pochopil vytvorim si kopec vektorov vsetky body navzajom odratam a najdem vektory zotriedim ich do pola, ale viac menej tie vektory budem musiet vyskusat navzajom kedze vektor napr (2,3) sa rovna vektoru (3,6) a neako to tam potriedit.No budem sa musiet este nad tym zamysliet.
Ale aj mi napadlo sme sa niekedy davnejsie ucili o linearnych kombinaciach
len si to uz moc nepamatam, ani wiki mi to neobjasnila tak aby som bol spokojny ale ked dobre pamatam tak ta linearna kombinacia riesila nieco v tom zmysle ak su dva vektory nieco a nieco tak maju nieco spolocne, ja len ci mi to nahodou nepomoze aj tuna : )
Ale aj mi napadlo sme sa niekedy davnejsie ucili o linearnych kombinaciach
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: analiticka geometria
lineárne kombinácie vektorov sa využívajú pri určovani ich lineárnej závislosti. V tvojom prípade ak sú dva vektory lineárne závislé, tak sú tri body ktoré spájajú na jednej priamke (za predpokladu že nie sú na dvoch rovnobežných priamkach. Vravím že si musíš poriadne premyslieť ako to budeš triediť).
Čo sa týka môjho riešenia, áno, musíš vyrátať rovnaký počet vektorov. Ale ak si zvolíš vhodný triediaci algoritmus, môžeš získať logaritmickú zložitosť namiesto exponenciálnej ktorú potrebuješ pri porovnávaniach každého vektora s ostatnými bodmi
Čo sa týka môjho riešenia, áno, musíš vyrátať rovnaký počet vektorov. Ale ak si zvolíš vhodný triediaci algoritmus, môžeš získať logaritmickú zložitosť namiesto exponenciálnej ktorú potrebuješ pri porovnávaniach každého vektora s ostatnými bodmi
Re: analiticka geometria
takze mne napadlo dneska nieco v celku zaujimave, vyuzit indexy dvojrozmerneho pola do ktoreho sa budu zapisovat vsetky vektory ktore su rovnake ako index cize postup je nasledovny nacitam body do pola x-vu suradnicu do A y-vu do B
zacnem vytvarat vektory ktore sa snazim hned upravit cize vzdy si dam X-ovu suradnicu ako kladnu (aby isli vsetky ejdnym smerom kedze (-2,1) a (2,-1) je v podstate ten isty vektor len opacnym smerom) a nasledujem hladanim spolocneho delita aby som dostal co najmensi vektor cize napr (12,4) sa snazim hned upravit na (4,1) a tym ze som ziskal vektor (4,1) vlozim ho do dvojrozmerneho pola pod indexom vektory[4][1]:=vektory[4][1]+1 := akoze do jedneho policka mi zrata vsetky rovnake vektory
a zakoncim to tym ze najdem policko s najvacsim cislo a je to...
a co vlastne potrebujem, pre dany prikladny vstup mi to nejde popr keby ste mi napisali ci to ma zmysel vobec takto riesit..
zacnem vytvarat vektory ktore sa snazim hned upravit cize vzdy si dam X-ovu suradnicu ako kladnu (aby isli vsetky ejdnym smerom kedze (-2,1) a (2,-1) je v podstate ten isty vektor len opacnym smerom) a nasledujem hladanim spolocneho delita aby som dostal co najmensi vektor cize napr (12,4) sa snazim hned upravit na (4,1) a tym ze som ziskal vektor (4,1) vlozim ho do dvojrozmerneho pola pod indexom vektory[4][1]:=vektory[4][1]+1 := akoze do jedneho policka mi zrata vsetky rovnake vektory
a zakoncim to tym ze najdem policko s najvacsim cislo a je to...
a co vlastne potrebujem, pre dany prikladny vstup mi to nejde popr keby ste mi napisali ci to ma zmysel vobec takto riesit..
-
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17
Re: analiticka geometria
Toto su ulohy sutaze ProFIIT a prave si porusil ich pravidla 