Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 14. 01. 2017 10:57

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Body v kruhu

Dobrý deň,

chcel by som poprosiť o pomoc s matematickou úlohou.

V rovine máme N bodov. Máme nájsť najmenší možný polomer takého kruhu, na ktorom leží M z nich,
pričom:
M<=N.
Máme daných N súradníc bodov v rovine.

Príklad:
Máme 3 body (N) a 3 z nich (M) musí ležať v kruhu s čo najmenším polomerom. Ich súradnice sú[-1,-1], [0,1], [1, -1]. Aký je najmenší možný polomer kruhu na ktorom ležia?

Výsledok by mal byť 1,25.

Vedeli by ste mi prosím poradiť postup riešenia?
Ďakujem.

Offline

 

#2 14. 01. 2017 12:15 — Editoval misaH (14. 01. 2017 12:18)

misaH
Příspěvky: 13467
 

Re: Body v kruhu

↑ sio:

No - hľadáš polomer trojuholníku opísanej kružnice.

Stred opísanej kružnice leží na osiach dvoch rôznych tetív kružnice.

Tetiva spája ľubovoľné 2 rôzne body kružnice.

Špeciálny prípad by bol, keby trojuholník utvorený z daných bodov by bol pravouhlý. Asi by som najprv overila túto možnosť.

Offline

 

#3 15. 01. 2017 14:20

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Body v kruhu

↑ sio:
Ahoj, chceš najít algoritmus na nalezení toho poloměru a nebo vzorec?
Algoritmus je např. brual force: Zkusit všechny trojice bodů, opsat jim kružnici, a zjistit, zda takové obsahují alespoň M bodů - a ze všech takových vybrat tu s nejmenším poloměrem. (Lze to nějakými heuristikami vylepšit - např. je-li daná kružnice příliš malá, tak nemá cenu zkoumat trojice z boů v ní obsažených, apod.)


"Máte úhel beta." "No to nemám."

Offline

 

#4 15. 01. 2017 16:35

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Body v kruhu

↑ check_drummer:
To co píšu asi nebude pravda: Tři body ležící téměř v přímce budou mít kružnici opsanou s vlkým poloměrem, ale lze je umístit do kružnice s poloměrem menším...


"Máte úhel beta." "No to nemám."

Offline

 

#5 15. 01. 2017 16:51

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Body v kruhu

Hlouběji jsem nad tím nepřemýšlel, ale nejspíš bude dost zajímavý i případ M=N=3.


"Máte úhel beta." "No to nemám."

Offline

 

#6 15. 01. 2017 19:13

misaH
Příspěvky: 13467
 

Re: Body v kruhu

↑ sio:

Vieš, píšeš o najmenšom polomere KRUHU na ktorom všetky ležia.

Myslím, že musí ísť o opísanú kružnicu trojuholníku utvorenom z tých troch bodov.

A možno práve to máš dokázať.

Ale ak máš len zistiť polomer kružnice prechádzajúcej cez v úlohe dané 3 body, tak ten polomer je skutočne 1,25.

Offline

 

#7 15. 01. 2017 21:56

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Re: Body v kruhu

Skutočne, v prípade ktorý som uviedol to je priamočiare riešenie. Žiaľ, číslo N môže byť až 500 bodov a pre M platí M<=N (je to programátorská úloha). Presne tento algoritmus mi napadol, skúsiť všetky možnosti. Okrem toho, že by bol brutálne časovo zložitý, je asi nie korektný. Okrem prípadov, kedy by ležala trojica bodov na priamke (to sa dá ošetriť), by mohla nastať situácia, kedy by jednoducho na kružnici neležali všetky 3 body - domnievam sa, že minimálne jeden tam ležať musí. Nie je možné urobiť nejakú kružnicu v ktorej KRUHU (nemusia na kružnici) sa nachádzajú vrcholy mnohouholníka? Urobil by som konvexný obal a mal by som vrcholy.

Offline

 

#8 15. 01. 2017 23:25

vanok
Příspěvky: 14611
Reputace:   742 
 

Re: Body v kruhu

Ahoj ↑ sio:,
Iste konvexna obalka tvojej mnoziny, ako aj  "diameter"=priemer jej konvexnej obalky su klucove pojmy na riesenie tvojho problemu.


Srdecne Vanok
The respect, the politeness are essential qualities...and also the willingness.
Do not judge the other one.
Ak odpovedam na nejaku otazku. MOJ PRINCIP NIE JE DAT ODPOVED ALE UKAZAT AKO SA K ODPOVEDI DOSTAT

Offline

 

#9 15. 01. 2017 23:52 — Editoval Eratosthenes (16. 01. 2017 00:02)

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Body v kruhu

ahoj ↑ sio:,

poloměr nejmenšího kruhu, ve kterém leží tři body je

a) polovina vzdálenosti dvou nejvzdálenějších v případě tupoúhlého nebo pravoúhlého trojúhelníka
b) poloměr opsané kružnice v případě ostroúhlého.

Takže algoritmus bych viděl takto:

1) Nastav hledaný průměr na "téměř nekonečno".
2) Procházej všechny možné dvojice bodů
3) Nad průměrem 2) opiš kružnici
4) Je-li v kruhu 3) právě N bodů, přepiš hledaný průměr průměrem aktuálním
5) Je-li po průchodu všech dvojic hledaný průměr menší než téměř nekonečno, úloha končí.
6) Pokud úloha neskončila, procházej všechny možné trojice
7) Trojúhelníku 6) opiš kružnici
8) Je-li v kruhu 7) právě N bodů, přepiš hledaný průměr.


Budoucnost patří aluminiu.

Offline

 

#10 16. 01. 2017 09:45 — Editoval Honzc (16. 01. 2017 11:15)

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: Body v kruhu

↑ sio:
Podívej se Sem nebo Tady

Offline

 

#11 16. 01. 2017 10:15 — Editoval Eratosthenes (16. 01. 2017 10:18)

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Body v kruhu

↑ Honzc:

Ano, ale to ten problém přece řeší - nejmenší kruh, který obsahuje daných N bodů je přeci tentýž, který obsahuje z té N-tice "největší" trojúhelník - stačí tedy kruh obsahující vždy dva (event. tři) body, a pak se podívat, kolik dalších je uvnitř...

PS: Pozor - on nemá najít konvexní obal, on má najít kruh. A to je dost rozdíl...


Budoucnost patří aluminiu.

Offline

 

#12 16. 01. 2017 10:38

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Re: Body v kruhu

Ďakujem,

takže, ak správne rozumiem:
AK má ležať v kruhu so stredom v bode S a polomerom r určitý počet daných bodov, tak 2 alebo 3 z nich budú ležať na kružnici?

Respektíve - Neexistuje ani jeden taký kruh, kde by na kružnici ležal jeden, prípadne ani jeden bod?

A ešte jedna otázka - Nie je možné postup s dvom bodmi vynechať? Bolo by v tom prípade riešenie nekorektné?
Problémom je veľmi vysoká časová zložitosť programu, kedy by sme museli prve kvadraticky skúšať všetky možné dvojice a potom kubicky všetky možné trojice z 500.

Offline

 

#13 16. 01. 2017 11:22

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: Body v kruhu

↑ Eratosthenes:
Máš pravdu-svůj příspěvek jsem zeditoval.

Offline

 

#14 16. 01. 2017 13:40 — Editoval Honzc (16. 01. 2017 14:36)

Honzc
Příspěvky: 4641
Reputace:   248 
 

Re: Body v kruhu

↑ Eratosthenes:
Tvé řešení má jednu malou vadu.
Pokud dané body jsou vrcholy pravidelného N-úhelníku a M=N-1, pak takovým postupem (požadujeme-li aby v kruhu včetně jeho hranice leželo právě M bodů) výsledek nezískáš.

A takových případů, bych řekl, bude víc.

Kdyby v zadání ovšem bylo "... v kruhu (včetně hranice) leží minimálně M bodů..." pak to asi fungovat bude.

Offline

 

#15 16. 01. 2017 15:20 — Editoval Eratosthenes (16. 01. 2017 15:22)

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Body v kruhu

↑ Honzc:

V tom případě má ovšem stejnou "malou vadu" samotné zadání - taková úloha totiž řešení nemá.


Budoucnost patří aluminiu.

Offline

 

#16 16. 01. 2017 15:35

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Body v kruhu

↑ sio:

>> AK má ležať v kruhu so stredom v bode S a polomerom r určitý počet daných bodov, tak 2 alebo 3 z nich budú ležať na kružnici?

Ano.

>> Neexistuje ani jeden taký kruh, kde by na kružnici ležal jeden, prípadne ani jeden bod?

Ne, každý takový je větší než nejmenší - viz modrý a červený ve srovnání s černým:

//forum.matweb.cz/upload3/img/2017-01/77145_kruh2.png

>> Nie je možné postup s dvom bodmi vynechať?

Bohužel ne - viz černý kruh ("dvoubodový test") může být menší než červený ("tříbodový test")

//forum.matweb.cz/upload3/img/2017-01/77253_kruh1.png


Budoucnost patří aluminiu.

Offline

 

#17 16. 01. 2017 15:36

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Re: Body v kruhu

Veľmi sa ospravedlňujem, musí mať minimálne M bodov.

Offline

 

#18 16. 01. 2017 15:41

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Body v kruhu

↑ sio:

V tom případě tam budou fungovat i ty pravidelné n- úhelníky - viz ↑ Honzc:, ↑ Eratosthenes:


Budoucnost patří aluminiu.

Offline

 

#19 16. 01. 2017 15:47 — Editoval sio (16. 01. 2017 15:48)

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Re: Body v kruhu

Riešenie prve všetkých dvojíc a potom trojíc je síce korektné, ale má závadu a tou je štvorrozmerná asymptotická zložitosť. Ako by som teda urobil kruh v ktorom je konvexný obal?

Offline

 

#20 16. 01. 2017 15:51

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Re: Body v kruhu

niečo také
//forum.matweb.cz/upload3/img/2017-01/78213_howto_bounding_circle.png

Offline

 

#21 16. 01. 2017 16:15

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Body v kruhu

↑ sio:

>> Riešenie prve všetkých dvojíc a potom trojíc je síce korektné, ale má závadu a tou je štvorrozmerná asymptotická zložitosť.

To není závada. O složitosti algoritmu není v zadání řeč a nic jednoduššího mě nenapadá. Je to lepší, než kdyby byl algoritmus jednodušší a nefungoval by.

>> Ako by som teda urobil kruh v ktorom je konvexný obal?

Přesně tak, jak jsem popsal. Testoval bych nejdřív dvojice a potom trojice, kde sestrojený kruh obsahuje všechny požadované body. Našel bych toto:

//forum.matweb.cz/upload3/img/2017-01/79715_kruznice.png


Budoucnost patří aluminiu.

Offline

 

#22 16. 01. 2017 17:15

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Re: Body v kruhu

Pardon, zle som to pomenoval - nie je to závada. V skutočnosti sa hovorí aj o zložitosti, ja som ju tu však neuviedol. Nie je uvedená asymptotická zložitosť ale časový limit a to 2 sekundy čo pre 500 bodov odhadujem najhoršie kvadratickú.
Podľa wikipedie sa dá riešiť lineárne. https://en.wikipedia.org/wiki/Smallest-circle_problem

Offline

 

#23 16. 01. 2017 17:34

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Body v kruhu

↑ sio:

>> Podľa wikipedie sa dá riešiť lineárne

No tak to řeš lineárně - co to brání? Já jsem to neštudoval, ale když se tam podíváš na ty obrátky, tak jsou úplně stejný, jako maluju já...


Budoucnost patří aluminiu.

Offline

 

#24 16. 01. 2017 18:03

sio
Příspěvky: 41
Škola: Gymnazium Leonarda Stockela
Pozice: Študent
Reputace:   
 

Re: Body v kruhu

↑ Eratosthenes:
Nič iné ako lineárne riešenie mi neostáva. To Vaše riešenie má však oproti lineárnemu jednu výhodu - dokáže nájsť kruh pre M z N bodov s rovnakou časovou zložitosťou. Lineárne treba zložitejšie modifikovať. Tak za predpokladu, že to urobím podľa algoritmu z wikipédie - čo by som mal bez problémov vedieť - bolo by správne nasledujúce riešenie?:

Nájdem kruh v ktorom je N bodov (predpokladajme, že to vieme), odstránim bod na kružnici a vytvorím nový kruh na ktorom je N-1 bodov (bez toho ktorý som odstránil), postup opakujem kým nevytváram kruh z M bodov.

Offline

 

#25 16. 01. 2017 19:53

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 920
Reputace:   63 
 

Re: Body v kruhu

Zdravím,
tady jsem něco zkusil ve wxMaximě: Odkaz
Je to pro 100 náhodných bodů, výpočet je bleskový. Potíž je v tom, že generovaní seznamu vzdáleností trvá asi minutu, což je dáno asi programovacím jazykem (lisp) ve kterém je wxMaxima vytvořena.
Takže asi jen na ukázku.


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Online

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson