5. Ako su date duž dužine x i jedinična duž, onda su za konstrukciju duži dužine dovoljni lenjir i šestar.
Je li stvarno ne znaš da dokažeš 1-5? Očekivao sam od tebe da ove stvari znaš. Evo:
Za konstrukciju možeš koristiti Talesovu teoremu.
a) Ako se duž dužine x odnosi prema duži dužine a isto kao duž dužine b prema jediničnoj duži, onda je x=...
b) Ako se duž dužine x odnosi prema jediničnoj duži kao duž dužine a prema duži dužine b, onda je x=...
A osim toga važi:
c) Ako duž d dužine x+1 podelimo tačkom A na jediničnu duž i duž dužine x i duž dužine 1, i ako B tačka polukruga nad duži d kao prečnikom takva da je AB normalno na duž d, onda je dužina duži AB jednaka...
Što se konstrukcija samo šestarom i samo lenjirom tiče vidi
Mor-Mašeronijevu teoremu i
Ponsele-Štajnerovu teoremu.
Kompjuter naravno ne vrši konstrukcije lenjirom i šestarom, već eliminiše praktičnu potrebu za njima.
A što se tvog zadatka tiče, on je nerešiv lenjirom i šestarom (čik da to dokažeš), a vrlo lako rešiv lenjirom sa dva zareza i šestarom, kao i kompjuterski.
Code (cpp):
void solve(double x1, double y1, double c) {
double left = 0, right = x1;
while (true) {
double x = (left + right)*0.5;
if (x == left || x == right) {
break;
}
double f = x*x*y1*y1-(c*c-x*x)*(x-x1)*(x-x1);
if (f < 0) left = f;
else if (f > 0) right = f;
else {
left = f;
break;
}
}
double x = left, y = sqrt(c*c - x*x);
// Draw the line from (x,0) to (0,y).
}
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.