Długość linii dzielącej trapez - algorytm.

0

Witam.
Zastanawiam się nad jednym zadaniem. Mam trapez, znam długości podstawy a i podstawy b. Mam wyznaczyć długość odcinka dzielącego trapez na figury o dwóch takich samych polach. Ten odcinek biegnie równolegle do podstaw. Zadanie bardziej matematyczne, prosilbym o wskazówki jak je ugryzc, z jakiego stwierdzenia skorzystać, by rozwiązać problem. Serdeczne dzięki za pomoc :)

0

(a-b)*x*x +2*b*x -b = 0
x - proporcja w której trzeba podzielić, np 0.75 - oznacza 3/4 od góry

0

Oznaczasz wierzchołki, jako ABCD. Wprowadzasz odcinek EF (dzielący trapez na 2 równe połówki), gdzie długość EF = x. Powstają Ci 2 trapezy: ABEF i EFCD. Oznaczasz wysokość trapezu ABEF, jako h. Wysokość trapezu EFCD, jako H - h, gdzie H to wysokość trapezu ABCD. Zapisujesz układ równań:

  1. (a + x) * h / 2 = (b + x) * (H - h) / 2
  2. (a + b) * H / 2 = 2 * (a + x) * h / 2
    Po rozwinięciu otrzymasz:
  3. (a + x) / (b + x) = (H / h) - 1
  4. (H / h) = 2 * (a + x) / (a + b)
    Podstawisz i wyznaczasz x.
0

długość tego odcinka jest średnią kwadratową długości podstaw tego trapezu.

0

Dzięki Wam za zainteresowanie. :)
Satirev, niestety nie znam wysokości, także nie mogę z tego skorzystać.
Matek3005, dzięki wielkie. Skorzystałem z tego, jednak wyniki wychodzą bardzo zbliżone, minimalnie sie różniące od przykladowych z treści zadania. Np dla a i b odpowiednio 16 i 23 powinno być 19.812, mi wychodzi 19.799, przez co serwer odrzuca rorozwiązanie. Jakiś pomysł? :)

0

Przecież podałem ci gotowe rozwiązanie, znajdujesz x i podstawiasz go: c = b*x + a*(1 - x), rozwiązujesz dostajesz wynik.
Można też od razu podstawić w równanie: c*c-2*(a+b)+a*a+a*b+b*b=0
rozwiązując od razu masz wynik: (a+b)-sqrt(a*b)

0

Dzięki. Myślę, że to rozwiązanie jest jak najbardziej poprawne, jednak mimo wszystko za zadanie otrzymuję 0 pkt. Przykładowe testy też sie nie zgadzają. Różnica kilku tysięcznych.. Myślałem, że może wynik jest niepoprawnie zaokraglany, jednak to też nie to.

0
pablo7890 napisał(a):

Np dla a i b odpowiednio 16 i 23 powinno być 19.812, mi wychodzi 19.799, przez co serwer odrzuca rorozwiązanie. Jakiś pomysł? :)

sqrt( ((16^2) + (23^2)) / 2 ) = 19.8116127562
coś źle wyliczasz ;)

0
pablo7890 napisał(a):

Satirev, niestety nie znam wysokości, także nie mogę z tego skorzystać.

Przecież te wysokości znikają przy rozwiązaniu tego układu równań...ostatecznie otrzymujesz dł. odc. = sqrt(a2 + b2)/sqrt(2).

1 użytkowników online, w tym zalogowanych: 0, gości: 1