Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Algoritam za izračunavanje površine kvadrata/pravokutnika

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Čistilište
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
daric
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2010. (20:11:22)
Postovi: (D)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 19:05 uto, 12. 2. 2013    Naslov: Algoritam za izračunavanje površine kvadrata/pravokutnika Citirajte i odgovorite

Imam ovakav problem (programer sam), no za ovo bi mi trebala pomoć matematičara.
Naime imam korisnike koji mogu izabrati bilo koji broj, a program bi trebao odrediti koja dva broja da se pomnože da se dobije izabrana površina.

P=16
2 najbliža broja jedan drugom bi bila 4*4

P=50, bi bilo recimo 7*7. Ovdje bi izgubio onaj "1" ali nije toliko bitno.

Znači trebala bi mi 2 broja blizu jedan drugome i da kad se pomnože da se dobije željeni broj. Bitno je da tvore kvadrat ili pravokutnik što bliži kvadratu

Ovo nije ni za kakvu domaću zadaću ni slično, nego radim na svojem projektu pa sam zapeo
Imam ovakav problem (programer sam), no za ovo bi mi trebala pomoć matematičara.
Naime imam korisnike koji mogu izabrati bilo koji broj, a program bi trebao odrediti koja dva broja da se pomnože da se dobije izabrana površina.

P=16
2 najbliža broja jedan drugom bi bila 4*4

P=50, bi bilo recimo 7*7. Ovdje bi izgubio onaj "1" ali nije toliko bitno.

Znači trebala bi mi 2 broja blizu jedan drugome i da kad se pomnože da se dobije željeni broj. Bitno je da tvore kvadrat ili pravokutnik što bliži kvadratu

Ovo nije ni za kakvu domaću zadaću ni slično, nego radim na svojem projektu pa sam zapeo


[Vrh]
Korisnički profil Pošaljite privatnu poruku
If and only if
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 09. 2012. (18:16:22)
Postovi: (1F)16
Spol: muško
Sarma = la pohva - posuda
-8 = 2 - 10

PostPostano: 19:32 uto, 12. 2. 2013    Naslov: Citirajte i odgovorite

Pa izracunas [latex] \sqrt p[/latex] i onda uzmes cjelobrojni dio od [latex] \sqrt p[/latex]. Cjelobrojni dio se oznacava: [latex]\left\lfloor{\sqrt p}\right\rfloor}[/latex]. Kad pomnozis taj cijeli broj sam sa sobom bit ces blizu broju [latex]p[/latex] ako je on blizu nekog kvadrata ili kvadrat. To je slucaj za odabir jednakih brojeva, u slucaju da se trebaju odabrati razliciti brojevi kada odabrani broj nije dosta blizu nekom kvadratu opet se izracuna [latex] \sqrt p[/latex], uzme cjelobrojni dio od [latex] \sqrt p[/latex] i ako se traze razliciti brojevi formira se produkt [latex]({\left\lfloor{\sqrt p}\right\rfloor}+1})\cdot ({{\left\lfloor{\sqrt p}\right\rfloor}-1})[/latex] i taj broj je isto blizu odabranog broja, bez obzira je li on kvadrat ili nije. Jel jasno?
Pa izracunas i onda uzmes cjelobrojni dio od . Cjelobrojni dio se oznacava: . Kad pomnozis taj cijeli broj sam sa sobom bit ces blizu broju ako je on blizu nekog kvadrata ili kvadrat. To je slucaj za odabir jednakih brojeva, u slucaju da se trebaju odabrati razliciti brojevi kada odabrani broj nije dosta blizu nekom kvadratu opet se izracuna , uzme cjelobrojni dio od i ako se traze razliciti brojevi formira se produkt i taj broj je isto blizu odabranog broja, bez obzira je li on kvadrat ili nije. Jel jasno?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 20:35 uto, 12. 2. 2013    Naslov: Citirajte i odgovorite

Zadatak nije dobro definiran.
1. Radimo li samo s cijelim brojevima? Izgleda mi kao da da, ali ovako napisano ne mogu biti siguran.
2. Sto znaci "pravokutnik što bliži kvadratu"?

Npr. za 50 imamo 5*10. Ocito, iz primjera, da ti to ne pase, ali moras reci sto je "sto blizi". Recimo da 7*7 nije tako blizu, bi li 6*8 bilo "dovoljno blizu kvadratu"?

Dakle, ima li neka gornja ograda na [tex]|a-b|[/tex] ili na neku vrstu relativne greske [tex]\frac{|a-b|}{a+b}[/tex] ili tako nesto?

@If and only if: Primjer ti steka kad je broj malo manji od potpunog kvadrata, npr. za 48 ces dobiti [tex](6-1)\cdot(6+1) = 35[/tex], umjesto (7-1)\cdot(7+1)=48[/tex].
Zadatak nije dobro definiran.
1. Radimo li samo s cijelim brojevima? Izgleda mi kao da da, ali ovako napisano ne mogu biti siguran.
2. Sto znaci "pravokutnik što bliži kvadratu"?

Npr. za 50 imamo 5*10. Ocito, iz primjera, da ti to ne pase, ali moras reci sto je "sto blizi". Recimo da 7*7 nije tako blizu, bi li 6*8 bilo "dovoljno blizu kvadratu"?

Dakle, ima li neka gornja ograda na [tex]|a-b|[/tex] ili na neku vrstu relativne greske [tex]\frac{|a-b|}{a+b}[/tex] ili tako nesto?

@If and only if: Primjer ti steka kad je broj malo manji od potpunog kvadrata, npr. za 48 ces dobiti [tex](6-1)\cdot(6+1) = 35[/tex], umjesto (7-1)\cdot(7+1)=48[/tex].



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
If and only if
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 09. 2012. (18:16:22)
Postovi: (1F)16
Spol: muško
Sarma = la pohva - posuda
-8 = 2 - 10

PostPostano: 20:40 uto, 12. 2. 2013    Naslov: Citirajte i odgovorite

@vsego: Da, malo pokazuje odstupanje kad je broj malo manji od kvadrata no to se lako rijesi tako da umjesto cjelobrojnog dijela od korijena od broja uzme cijeli broj koji je najblizi tom korijenu?
@vsego: Da, malo pokazuje odstupanje kad je broj malo manji od kvadrata no to se lako rijesi tako da umjesto cjelobrojnog dijela od korijena od broja uzme cijeli broj koji je najblizi tom korijenu?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (3560)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 21:32 uto, 12. 2. 2013    Naslov: Citirajte i odgovorite

Ne. Recimo, za [tex]P := 272 = 16 \cdot 17[/tex], ti ces provjeriti [tex]\mathop{\rm round}(\sqrt{272}) = \mathop{\rm round}(16.4924225) = 16[/tex] i [tex](16-1)(16+1) = 15 \cdot 17 = 255[/tex]. Cak i da korijen zaokruzis na gore, dobit ces krivo: [tex](17-1)(17+1) = 16 \cdot 18 = 288[/tex].

Problem je sto ti trazis ili kvadrat ili pravokutnik kojem se duljine stranica razlikuju tocno za 2, sto funkcionira za direktne susjede potpunih kvadrata, ali ne i opcenito.

Rjesenje i dalje ovisi o definiciji koju gore trazim. Ograniciti se moze razmak izmedju stranica pravokutnika ili razlika povrsine pravokutnika i zadane povrsine ili neki treci parametar. Tek kad znamo sto je "pravokutnik što bliži kvadratu", mozemo razgovarati o algoritmu.

Osnovna ideja bi bila:
[code:1]x = najvece cijelo od sqrt(P)
dok (neki uvjet) {
y = zaokruzi(P / x);
provjeri odgovara li ti x*y vise od dosadasnjeg rjesenja; ako da, zapamti
}
ispisi/vrati nadjeni optimalni par (x,y)[/code:1]

Dakle, ne znamo uvjet petlje, no ne znamo niti sto znaci "odgovara vise". To moze biti nesto jednostavno, npr.
[tex]x,y \in \mathbb{N} \quad \text{takvi da je} \quad |P-xy| = \min\limits_{|a-b| \leq k} |P-ab| \quad \text{za neki zadani $k$}[/tex],
dakle pravokutnik s povrsinom najblizom zadanoj, a da mu se stranice razlikuju za manje od [tex]k[/tex], sto je los kriterij jer [tex]k[/tex] ne ovisi o redu velicine problema (tzv. apsolutna greska).

Nesto bolji uvjet bi bio da [tex]k[/tex] nekako ovisi o povrsini ili da se ogranici [b]omjer[/b] [tex]\frac{a}{b}[/tex] ili tako nesto (tzv. relativna greska).

No, moze se ubaciti i nekakva funkcija vrijednosti koja bi davala "vrijednost nekog rjesenja". Ugrubo, to bi znacilo da povrsina malo bliza trazenoj, ali uz bitno vecu razliku u duljinama stranica, znaci losije rjesenje od ponudjenog, dok znacajno priblizavanje toj povrsini uz manje povecanje razlike izmedju duljina stranica oznacava bolje rjesenje. Naravno, postavlja se pitanje tocne definicije funkcije vrijednosti.
Ne. Recimo, za [tex]P := 272 = 16 \cdot 17[/tex], ti ces provjeriti [tex]\mathop{\rm round}(\sqrt{272}) = \mathop{\rm round}(16.4924225) = 16[/tex] i [tex](16-1)(16+1) = 15 \cdot 17 = 255[/tex]. Cak i da korijen zaokruzis na gore, dobit ces krivo: [tex](17-1)(17+1) = 16 \cdot 18 = 288[/tex].

Problem je sto ti trazis ili kvadrat ili pravokutnik kojem se duljine stranica razlikuju tocno za 2, sto funkcionira za direktne susjede potpunih kvadrata, ali ne i opcenito.

Rjesenje i dalje ovisi o definiciji koju gore trazim. Ograniciti se moze razmak izmedju stranica pravokutnika ili razlika povrsine pravokutnika i zadane povrsine ili neki treci parametar. Tek kad znamo sto je "pravokutnik što bliži kvadratu", mozemo razgovarati o algoritmu.

Osnovna ideja bi bila:
Kod:
x = najvece cijelo od sqrt(P)
dok (neki uvjet) {
  y = zaokruzi(P / x);
  provjeri odgovara li ti x*y vise od dosadasnjeg rjesenja; ako da, zapamti
}
ispisi/vrati nadjeni optimalni par (x,y)


Dakle, ne znamo uvjet petlje, no ne znamo niti sto znaci "odgovara vise". To moze biti nesto jednostavno, npr.
[tex]x,y \in \mathbb{N} \quad \text{takvi da je} \quad |P-xy| = \min\limits_{|a-b| \leq k} |P-ab| \quad \text{za neki zadani $k$}[/tex],
dakle pravokutnik s povrsinom najblizom zadanoj, a da mu se stranice razlikuju za manje od [tex]k[/tex], sto je los kriterij jer [tex]k[/tex] ne ovisi o redu velicine problema (tzv. apsolutna greska).

Nesto bolji uvjet bi bio da [tex]k[/tex] nekako ovisi o povrsini ili da se ogranici omjer [tex]\frac{a}{b}[/tex] ili tako nesto (tzv. relativna greska).

No, moze se ubaciti i nekakva funkcija vrijednosti koja bi davala "vrijednost nekog rjesenja". Ugrubo, to bi znacilo da povrsina malo bliza trazenoj, ali uz bitno vecu razliku u duljinama stranica, znaci losije rjesenje od ponudjenog, dok znacajno priblizavanje toj povrsini uz manje povecanje razlike izmedju duljina stranica oznacava bolje rjesenje. Naravno, postavlja se pitanje tocne definicije funkcije vrijednosti.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
daric
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2010. (20:11:22)
Postovi: (D)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 22:17 uto, 12. 2. 2013    Naslov: Citirajte i odgovorite

Meni bi najbitnije bilo da mogu formirati kvadrat na temelju površine. No recimo ako je P=50 onda bi moglo biti 5*10. ali bi dužina bila 5 a širina 10, a moglo bi biti i obrnuto, zato tražim nešto što bi bilo najbliže kvadratu.

Jer bi inače morao programerski omogućiti npr. rotiranje pravokutnika.
Meni bi najbitnije bilo da mogu formirati kvadrat na temelju površine. No recimo ako je P=50 onda bi moglo biti 5*10. ali bi dužina bila 5 a širina 10, a moglo bi biti i obrnuto, zato tražim nešto što bi bilo najbliže kvadratu.

Jer bi inače morao programerski omogućiti npr. rotiranje pravokutnika.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
If and only if
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 09. 2012. (18:16:22)
Postovi: (1F)16
Spol: muško
Sarma = la pohva - posuda
-8 = 2 - 10

PostPostano: 9:09 sri, 13. 2. 2013    Naslov: Citirajte i odgovorite

Jasno mi je sto ti zelis ali jasne su mi primjedbe i od vsege, ova formula koju sam ti ja dao daje ti pravokutnik koji je u odredenom smislu blizak kvadratu, ako umjesto cjelobrojnog dijela uzmes najblizi cijeli broj mislim da ces dobijati jos bolje rezultate no buduci da se razlika izmedu dva susjedna kvadrata povecava kroz skup prirodnih brojeva to ces sto su brojevi veci nailaziti na opcenito veca odstupanja, bar ja tako mislim.
Jasno mi je sto ti zelis ali jasne su mi primjedbe i od vsege, ova formula koju sam ti ja dao daje ti pravokutnik koji je u odredenom smislu blizak kvadratu, ako umjesto cjelobrojnog dijela uzmes najblizi cijeli broj mislim da ces dobijati jos bolje rezultate no buduci da se razlika izmedu dva susjedna kvadrata povecava kroz skup prirodnih brojeva to ces sto su brojevi veci nailaziti na opcenito veca odstupanja, bar ja tako mislim.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
daric
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 09. 12. 2010. (20:11:22)
Postovi: (D)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 19:56 sri, 13. 2. 2013    Naslov: Citirajte i odgovorite

hvala, iskemijat ću nešta od svega
hvala, iskemijat ću nešta od svega


[Vrh]
Korisnički profil Pošaljite privatnu poruku
DsAg
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 02. 10. 2005. (12:28:28)
Postovi: (17)16
Spol: muško
Sarma = la pohva - posuda
= 7 - 2

PostPostano: 1:25 čet, 14. 2. 2013    Naslov: Citirajte i odgovorite

Ak imas volje i vremena se s tim zezat, moze probat jos jedan pristup (uz napomenu da ces za rjesenja dobit realne a ne prirodne brojeve) - mozes radit optimizaciju u Matlabu preko funkcije fmincon. Po meni, imat ces dvije varijable 'a' i 'b' (stranice pravokutnika) koje idu od 0 do [latex]\sqrt{P}[/latex], funkciju [latex]P=a \cdot b[/latex] koju zelis maximizirat i funkciju [latex]c=\left |a-b \right |[/latex] koju zelis minimizirat. Nazalost, trenutno nemam nit Matlab nit vremena s tim se krampat pa ces morat sam vidjet kako to tocno izvest. Al ovo bi trebalo dat najbolje rezultate.

Za slucaj da bas zelis dobiti prirodne brojeve, trebalo bi biti dosta samo na finalnim rjesenjima primijeniti funkciju round.
Ak imas volje i vremena se s tim zezat, moze probat jos jedan pristup (uz napomenu da ces za rjesenja dobit realne a ne prirodne brojeve) - mozes radit optimizaciju u Matlabu preko funkcije fmincon. Po meni, imat ces dvije varijable 'a' i 'b' (stranice pravokutnika) koje idu od 0 do , funkciju koju zelis maximizirat i funkciju koju zelis minimizirat. Nazalost, trenutno nemam nit Matlab nit vremena s tim se krampat pa ces morat sam vidjet kako to tocno izvest. Al ovo bi trebalo dat najbolje rezultate.

Za slucaj da bas zelis dobiti prirodne brojeve, trebalo bi biti dosta samo na finalnim rjesenjima primijeniti funkciju round.



_________________


Red Cuvara grada Zagreba - http://www.cuvari.hr
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Ostalo - ozbiljno -> Čistilište Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan