C(0;0;8)

B(0;8;0)

A(8;0;0)

D(3;0;5)

E(3;5;0)

F(0;5;3)

G(0;4;4)

M(0;3;5)

N(3;3;2)

O(1;5;2)

P(1;0;7)

Q(0;1;7)

R(3;1;4)

A(8;0;0)

B(0;8;0)

C(0;0;8)

D(3;0;5)

E(3;5;0)

F(0;5;3)

G(0;4;4)

H(3;2;3)

I(0;2;6)

J(2;0;6)

K(2;5;1)

L(3;4;1)

8 ümbervalamist

7 ümbervalamist!

Ül 1. On olemas kolm kannu, mahtuvustega vastavalt 3, 5 ja 8 gallonit.
8-galloniline kann on veini täis, ülejäänud on tühjad. Vein on vaja jaotada 
kahte võrdsesse ossa, kallates seda ühest nõust teise, kasutamata peale 
nende kolme kannu ühtegi muud mõõtmisvahendit. Veini tuleb kallata nii, et 
ümbervalamisi oleks nii vähe kui võimalik.

Joonestame võrdkülgse kolmnurga, mille külje pikkus on 8 ühikut.

Et kannude mahud on piiratud (3, 5 ja 8 gallonit) siis kanname ka need 
piirangud (samas järjekorras!) kolmnurgale. Tulemusena saame rööpküliku CDEF.

Antud ülesande puhul on ülesande lahendamise lähtepunktiks 
punkt C(0; 0; 8), sihtpunktiks aga punkt G(0; 4; 4).

Peame liikuma mööda võrgustikku lähtepunktist sihtpunkti. 
Iga ümbervalamine peab lõppema rööpküliku mõne külje peal.

Vaatame, kui mitu ümbervalamist kulub?

C = (5.196152422706632, -3)
B = (-1.7320508075688772, 1)
A = (5.196152422706632, 5)
hulknurk1, c, a, b = Polygon(A, B, C)
D = PointIn(hulknurk1)
E = PointIn(hulknurk1)
F = Point(a)
hulknurk2, c_1, d, e, f = Polygon(C, D, E, F)
G = Point(a)
M = Point(a)
N = Point(d)
O = Point(e)
P = Point(c_1)
Q = Point(a)
R = Point(d)
u = Vector(C, D)
v = Vector(D, M)
w = Vector(M, N)
g = Vector(N, O)
h = Vector(O, P)
i = Vector(P, Q)
j = Vector(Q, R)
k = Vector(R, G)
q = -3 (slider from -3 to 20, step 1)
A_1 = (15.596152422706597, 5)
B_1 = (8.667949192431113, 1)
C_1 = (15.596152422706597, -3)
D_1 = (15.596152422706597, 0)
E_1 = (11.266025403784417, 2.5)
F_1 = (11.258330249197702, -0.5)
hulknurk1_1, c_2, a_1, b_1 = Polygon(A_1, B_1, C_1)
hulknurk2_1, c_3, d_1, e_1, f_1 = Polygon(C_1, D_1, E_1, F_1)
G_1 = Point(a_1)
H_1 = Point(d_1)
I_1 = Point(a_1)
J_1 = Point(b_1)
K_1 = Point(e_1)
L_1 = Point(d_1)
u_1 = Vector(C_1, F_1)
v_1 = Vector(F_1, H_1)
w_1 = Vector(H_1, I_1)
g_1 = Vector(I_1, J_1)
h_1 = Vector(J_1, K_1)
i_1 = Vector(K_1, L_1)
j_1 = Vector(L_1, G_1)