Najwieksze mozliwe pole prostokata o danym obwodzie - zadanie c++
Ostatnio zmodyfikowano 2016-03-25 02:56
Gibas11 |
» 2016-03-25 02:16:17 Więc w czym leży teraz problem?
Program ładnie szuka współczynników funkcji i wierzchołka, nie tak miało być? |
|
jokker110 Temat założony przez niniejszego użytkownika |
» 2016-03-25 02:27:58 Sprawdz sobie, kody ktore podales jako przed uproszczeniem nie dzialaja poprawnie, poniewaz masz tam wzor: x = - b /( 2 * a );
a nie znasz ani a, ani b, gdyz sa ta wspolczynniki funckji. Z obwodu wyciagnales a,b - boki prostokata a nie wsplczynniki.
Chodzi mi o to czy jezeli wprowadze do programu, ze obwod wynosi np. 800 to ustali on, ze:
x+y=800/2 //// x i y to boki x=400-y
p=-y^2+400y a z tego wzoru wyciagnie wspolczynniki a=-1 i b=400. Dopiero po wyciagnieciu tych wspolczynnikow mozna bedzie zastosowac wzor na EDIT //maxymalna x p=-b/2a |
|
Gibas11 |
» 2016-03-25 02:36:00 Owszem wyciągnąłem współczynniki. :p x - długość boku 1 y - długość boku dwa o - obwód y = o/2 - x f(x) = x * y f(x) = x * (o/2 - x) f(x) = xo/2 - x^2 f(x) = -1*x^2 + o/2*x + 0 Na tym etapie widać współczynniki: a = -1 (stałe) b = o/2(zależne od obwodu) c = 0 (stałe) Punkt p (x wierzchołka) to - b / 2a a to zawsze -1, wiec: p = -b / -2 czyli p = b / 2 Ponieważ b = o/2 p = o / 2 / 2. p = o / 4 @down Rzeczywiście, jaka gafa. D: Tak to jest jak się najpierw pisze kod a potem matematyczne uzasadnienie. :p |
|
michal11 |
» 2016-03-25 02:43:31 @up
Powinien być y = o/2 - x na początku. |
|
jokker110 Temat założony przez niniejszego użytkownika |
» 2016-03-25 02:49:36 Okej, juz rozumiem :D #include <iostream> using namespace std;
int main() { float obwod; cin >> obwod; float a = - 1; float b = obwod / 2.0; float x = - b /( 2 * a ); float y = obwod / 2 - x; cout << x * y << endl; return 0; }
Dzieki za pomoc :) |
|
Gibas11 |
» 2016-03-25 02:52:57 No nie do końca Ci to działa.
40 100
3 0.5625
EDIT: Sorry, zapomniałem, że liczysz pole a nie długość boku. Chyba powinienem już iść spać. D: |
|
jokker110 Temat założony przez niniejszego użytkownika |
» 2016-03-25 02:56:13 Jak nie dziala? :D Jak sam wspomniales, najwieksze pole zawsze bedzie mial kwadrat.
Kwadrat o obwodzie 40 ma wymiary 10x10 czyli pole=100. Kwadrat o obwodzie 3 ma wymiary 0.75x0.75 czyli pole=0.5625
EDIT. No to juz jest pole. Jeszcze raz dziekuje za pomoc :) |
|
1 « 2 » |