Discussione: Qualche quiz
Visualizza un messaggio singolo
Vecchio 01-02-15, 10:38   #25
astromauh
Utente Super
 
L'avatar di astromauh
 
Data di registrazione: Sep 2007
Messaggi: 4,861
Predefinito Re: Qualche quiz

Forse ho tralasciato un passaggio che non rende chiarissima la mia soluzione, per cui provo a spiegarla nuovamente.

Chiamiamo S il semiperimetro del rettangolo dato, e A la sua area.

S = a + b;
A = a * b;

Se chiamiamo X un lato del rettangolo da trovare, l'altro suo lato sarà S - X.

Per cui abbiamo che l'area del rettangolo da trovare sarà

X * (S - X)

e siccome questa area deve essere multipla di quella del rettangolo di partenza abbiamo che

X * (S - X) = K * A

per cui

K = X * (S - X) / A

e siccome K deve essere un numero intero

K = int ( X * (S - X) / A)

Il valore minimo che può assumere l'intero K è chiaramente 2, perché un numero per essere multiplo di un altro deve essere almeno il doppio del primo.

Però K potrebbe anche essere: 2, 3, 4, ..., Kmassimo, per cui per uno specifico rettangolo dato dobbiamo stabilire qual è il valore massimo che può assumere K.

Il valore massimo di K si ottiene quando i lati del rettangolo incognito sono uguali, ossia quando il rettangolo è in realtà un quadrato, dove X è uguale a (S - X).

X = S - X

Quindi X = S - X se X vale S/2.

per cui se

K = int ( X * (S - X) / A) e X = S/2

Kmassimo = int ( S/2 * (S - S/2) / A )

ossia

Kmassimo = int ( S/2 * S/2 / A )

ovvero

Kmassimo = int ( S^2 / 4*A )

per cui dal semiperimetro S e l'area A di un rettangolo dato, possiamo trovare il numero N dei rettangoli di area multipla di A che sarà

N = Kmassimo - 1

ossia

N = int ( S^2 / 4*A ) - 1

Quindi se N è maggiore di zero possiamo applicare la formula che segue per tutti i valori di K da 2 a Kmassimo.

X * (S - X) = K * A

X*S - X^2 = K * A

-X^2 + S*X - K * A = 0

per cui risolvendo l'equazione di 2^ grado abbiamo che

X = ( S + sqrt(S^2 - 4 * K * A ) ) / 2

e ovviamente troviamo anche Y che sarà dato da

Y = S - X

In realtà le soluzioni di una equazione di 2^ grado sarebbero due, ma con

X = ( S - sqrt(S^2 - 4 * K * A ) ) / 2

si ottiene lo stesso rettangolo dove i valori dei lati X e Y risultano invertiti.

__________________
www.Astrionline.it
Astromauh <a href=http://www.trekportal.it/coelestis/images/icons/icon10.gif target=_blank>http://www.trekportal.it/coelestis/i...ons/icon10.gif</a>
astromauh non in linea   Rispondi citando