Quanti triangoli
Buongiorno
Quanti triangoli esistono, con le misure dei tre lati date da numeri interi, la cui area è sempre la stessa $mq 84$ esatti? E quali sono?
Io conosco la soluzione, ma non il procedimento.
Quanti triangoli esistono, con le misure dei tre lati date da numeri interi, la cui area è sempre la stessa $mq 84$ esatti? E quali sono?
Io conosco la soluzione, ma non il procedimento.
Risposte
"MaMo":
Se vi può servire io ne ho trovati 4:
Non mi serve a granché per la comprensione del problema, potevo fare un programma per calcolarli (apropos, tu che metodo hai usato?), stavo cercando un metodo analitico. Sennò che sugo c'è?

I divisori di 7056 minori di 85 sono 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 36, 42, 48, 49, 56, 63, 72, 84 di cui possiamo escludere i primi sino al 18 compreso perchè secondo me dànno dei triangoli di superficie inferiore.
Quindi i $p$ possibili sono 21, 24, 28, 36, 42,48, 49,56, 63, 72, 84. ok?
Quindi i $p$ possibili sono 21, 24, 28, 36, 42,48, 49,56, 63, 72, 84. ok?
"MaMo":
Se vi può servire io ne ho trovati 4:
7-24-25
13-14-15
8-29-35
10-17-21
Anche io col mio ragionamento ho trovato questi 4 triangoli
7-24-25
13-14-15
8-29-35
10-17-21
e ho trovato che non ne esistono altri (sempre a meno si qualche errore di calcolo).
Si tratta di un ragionamento che non usa alcun programma, e richiede di fare qualche calcolo per non più di 20 minuti totali.
Poichè non è così veloce da spiegare e ora ho un po' da fare se volete ve lo posto dopo

"misanino":
Anche io col mio ragionamento ho trovato questi 4 triangoli
7-24-25
13-14-15
8-29-35
10-17-21
e ho trovato che non ne esistono altri (sempre a meno si qualche errore di calcolo).
Si tratta di un ragionamento che non usa alcun programma, e richiede di fare qualche calcolo per non più di 20 minuti totali.
Poichè non è così veloce da spiegare e ora ho un po' da fare se volete ve lo posto dopo
Io ho ragionato in questo modo:
Abbiamo $p(p-a)(p-b)(p-c)=84^2=2^4*3^2*7^2$
Poi $(p-a)+(p-b)+(p-c)=3p-(a+b+c)=3p-2p=p$
Chiamando quindi $(p-a)=x,(p-b)=y,(p-b)=z$ abbiamo che deve essere
$x+y+z=p$
e $p*x*y*z=2^4*3^2*7^2$
e $x,y,z Ora a seconda del fatto che x,y,z siano pari oppure no, si ha anche che p è pari o no.
Ci sono 4 casi possibili:
x,y,z pari e quindi p pari
x,y pari, z dispari e quindi p dispari
x pari, y,z dispari e quindi p pari
x,y,z dispari e quindi p dispari.
Quest'ultimo caso va scartato poichè il prodotto di dispari è dispari e invece $84^2$ è pari.
Ci restano quindi 3 casi.
I caso:
x,y,z,p pari
Ho solo 4 fattori 2 (2^4) e quindi tutti e 3 devono contenere il fattore 2
Poi x+y+z=p
Perciò (dato che devo distribuire 2 fattori 3 e 2 fattori 7) p deve essere almeno $2*3*7$.
Se $p= 2*3*7$ deve essere $x=2*3$,$y=2*7$,$z=2$ e la somma di questi è minore di $2*3*7$.
Perciò tale p non è accettabile e non lo sarà nemmeno un p più grande.
Quindi dal primo caso non abbiamo alcuna soluzione
II caso
x,y pari, z,p dispari
I fattori 2 posso assegnarli solo a x,y e entrambi devono averne almeno uno.
Devo distribuire 4 fattori 2, 2 fattori 3 e 2 fattori 7, quindi p deve essere almeno $3*7$
Sia $p=3*7$. Allora il minimo numero che posso formare con x,y,z è quello che moltiplica fra loro i numeri più bassi (cioè uso il fatto che se $a,b>=1$ allora $a*b>=a+b$) e quindi $x=2*3$, $y=2^3$, $z=7$. Se faccio la somma di questi numeri ottengo proprio p.
Ho trovato quindi un caso accettabile.
Ho p e per determinare $a$ basta che faccio $p-(p-a)$ cioè $p-x$ e stessa cosa per $b,c$.
Trovo così $a=15$, $b=13$, $c=14$.
Proseguiamo ora col caso II.
Il prossimo p è $3^2*7$. Il massimo numero che posso creare con i fattori rimasti è $x=2^3*7$, $y=2$, $z=1$ che è comunque minore di $p=3^2*7$.
Quindi per tale p e per ogni altro p più grande non cui sono soluzioni.
Quindi l'intero caso II mi ha dato l'unica soluzione che ho trovato
III caso:
x pari, y,z dispari, p pari
p deve sempre contenere almeno un fattore 2.
Per il solito metodo di vedere il numero di fattori in gioco, scopro che p deve essere almeno $2^3*3$
Il minimo numero (non il massimo) che posso formare con ciò che mi rimane è $x=2*3$, $y=7$, $z=7$
La somma di questi è minore di $p=2^3*3$.
Non ho preso però il massimo numero, ma il minimo e quindi devo proseguire ancora in questo sottocaso.
Sia allora $x=2*7$, $y=7$, $z=3$. La somma di questi numeri mi dà proprio $p=2^3*3$ e quindi ho trovato un triangolo accettabile e nello stesso modo di prima trovo $a=10$, $b=17$, $c=21$
Non ci sono altri p possibili che coinvolgano solo fattori 2 e fattori 3 con potenza 1
Il prossimo p è dunque $2^2*7$
Il minimo numero (non il massimo) che posso formare con ciò che mi rimane è $x=2^2$, $y=3^2$, $z=7$
La somma di questi è minore di $p=2^2*7$.
Non ho preso però il massimo numero, ma il minimo e quindi come prima devo proseguire ancora in questo sottocaso.
Sia allora $x=2^2$, $y=3*7$, $z=7$. Questa volta la somma dà proprio $p=2^2*7$ e quindi ho trovato un altro esempio accettabile.
Con lo stesso metodo di prima trovo $a=24$, $b=7$, $c=25$
Il prossimo p (che coinvolge solo fattori 2 e 7) è $p=2^3*7$. Procedendo come prima posso partire dal minimo numero che posso creare e aumentare sempre di più fino ad arrivare ad uguagliare p (e quindi a trovare una soluzione) o a superare p (e quindi a dire che non ne esistono).
Dato però che p è già piuttosto grande, invece che partire dal minimo e aumentare, parto dal massimo e diminuisco e quindi mi fermerò quando troverò una somma minore di p.
Il massimo è $x=2*3*7$, $y=3$, $z=1$ ed è minore di p, quindi mi fermo subito e ho che $p=2^3*7$ non è accettabile
Considero ora p che coinvolge i fattori 2 e $3^2$.
Il minimo è $p=2*3^2$. Ora il minimo numero che posso formare con i fattori rimasti è $x=2^3$, $y=7$, $z=7$ che sommati superano p. Quindi p non accettabile.
Il prossimo è $p=2^2*3^2$. Il minimo che posso formare è $x=2^2$, $y=7$, $z=7$ che è minore di p. Poi ho $x=2^2*7$, $y=7$, $z=1$ che sommati danno proprio p.
Ho trovato così un altro triangolo e ho $a=8$, $b=29$, $c=35$.
Il prossimo p è $p=2^3*3^2$. Il massimo numero che posso formare è $x=2$, $y=7^2$, $z=1$ che è minore di p e quindi p non è accettabile.
Mi restano solo p che coinvolgano fattori 2,3,7.
Il più piccolo è $p=2*3*7$. Il massimo numero che posso formare con ciò che mi rimane è $x=2^3*3$, $y=7$, $z=1$ che è minore di p.
Quindi p e ogni numero più grande non è accettabile.
Ho così terminato anche il III caso che mi ha dqato altri 3 triangoli.
Ho finito tutti i casi e ho trovato 4 triangoli arrivando così alla soluzione

Non l'ho controllato a fondo, ma me piace assaje

I triangoli sono quelli, non ce ne sono altri, non sono all'altezza di controllare tutto il tuo ragionamento, ma i risultati ci sono, quindi mi inchino


"al_berto":
I triangoli sono quelli, non ce ne sono altri, non sono all'altezza di controllare tutto il tuo ragionamento, ma i risultati ci sono, quindi mi inchino![]()
Esagerato!!!

Comunque non è un ragionamento così difficile.
Se avete qualche domanda o obiezione (perchè so bene che in alcuni tratti sono stato un po' sbrigativo e impreciso) chiedete pure
e tutto questo pare confermare che tutti pari porta ad una impossibilità, mentre i lati devono essere uno pari e due dispari.
non sono stata molto in forma in questi giorni, appena posso ripartirò da qui.
ps: mi ero fermata alla pagina precedente...
non sono stata molto in forma in questi giorni, appena posso ripartirò da qui.
ps: mi ero fermata alla pagina precedente...
Le soluzioni trovate mi convincono.
Vorrei comunque scrivere del codice per verificarle, e quindi controllare che siano le uniche.
Idee su come impostare il programma ?
Vorrei comunque scrivere del codice per verificarle, e quindi controllare che siano le uniche.
Idee su come impostare il programma ?

Ho elaborato $4^8$ disposizioni:
8 = Numeri dei fattori 2-2-2-2-3-3-7-7
4 = p (p-l1) (p-l2) (p-l3)
Per ogni disposizione ho calcolato i 3 lati, e verificato se trattasi o meno di un triangolo.
Le varie soluzioni le ho tabellizzate, in quanto si verificavano piu volte ( a seguito dei fattori che si ripetono)
Non ci sono altre soluzioni.
INIZIO SECTION. INITIALIZE CAMPI-WORK SOLUZ PERFORM VARYING C1 FROM 1 BY 1 UNTIL C1 > 4 PERFORM VARYING C2 FROM 1 BY 1 UNTIL C2 > 4 PERFORM VARYING C3 FROM 1 BY 1 UNTIL C3 > 4 PERFORM VARYING C4 FROM 1 BY 1 UNTIL C4 > 4 PERFORM VARYING C5 FROM 1 BY 1 UNTIL C5 > 4 PERFORM VARYING C6 FROM 1 BY 1 UNTIL C6 > 4 PERFORM VARYING C7 FROM 1 BY 1 UNTIL C7 > 4 PERFORM VARYING C8 FROM 1 BY 1 UNTIL C8 > 4 add 1 to i move 1 to prod1 prod2 prod3 prod4 compute prodn (c1) = prodn (c1) * 2 compute prodn (c2) = prodn (c2) * 2 compute prodn (c3) = prodn (c3) * 2 compute prodn (c4) = prodn (c4) * 2 compute prodn (c5) = prodn (c5) * 3 compute prodn (c6) = prodn (c6) * 3 compute prodn (c7) = prodn (c7) * 7 compute prodn (c8) = prodn (c8) * 7 compute k1 = prod1 - prod2 compute k2 = prod1 - prod3 compute k3 = prod1 - prod4 if (prod1 * 2) = (k1 + k2 + k3) add 1 to goal perform carica-tab end-if END-PERFORM END-PERFORM END-PERFORM END-PERFORM END-PERFORM END-PERFORM END-PERFORM END-PERFORM.
orrore grammaticale corretto

Interessante il tuo codice, io uso linguaggio Basic o Pascal
Questo è in Free Basic
for a=2 to 100
for b=2 to 100
for c= 2 to 100
p=(a+b+c)/2
if 7056=p*(p-a)*(p-b)*(p-c) and a > b and b > c then print a,b,c
next c
next b
next a
end
Questo è in Free Basic
for a=2 to 100
for b=2 to 100
for c= 2 to 100
p=(a+b+c)/2
if 7056=p*(p-a)*(p-b)*(p-c) and a > b and b > c then print a,b,c
next c
next b
next a
end
Un po troppo "bruto" ma sicuramente piu semplice del mio.
.... perchè hai escluso che due lati del triangolo potessero essere uguali ? [...and a > b and b > c...]
.... perchè hai escluso che due lati del triangolo potessero essere uguali ? [...and a > b and b > c...]

ok. Hai ragione. Ho escluso che i lati potessero essere 2 oppure 3 uguali. In questo caso andava bene lo stesso, ma è errato.
Forse va meglio:
if 7056=p*(p-a)*(p-b)*(p-c)and a>=b and b>=c then print a,b,c
Se non metto queste condizioni il programma mi scrive per ogni terna di lati le 3 posizioni possibili creando un po' di confusione.
Hai qualche altro suggerimento in proposito?
Forse va meglio:
if 7056=p*(p-a)*(p-b)*(p-c)and a>=b and b>=c then print a,b,c
Se non metto queste condizioni il programma mi scrive per ogni terna di lati le 3 posizioni possibili creando un po' di confusione.
Hai qualche altro suggerimento in proposito?
"al_berto":
Hai qualche altro suggerimento in proposito?
Ne avrei un altro.
Trascurando la "brutezza" del codice [Pensa che tu elabori circa 1M di disposizioni, contro le mie 65K)
Considerato che non vuoi ripetere le varie disposizioni, potresti modificare il codice in:
(.... si scrive cosi' in basic? )
for a=2 to 100
for b=a to 100
for c=b to 100
Cosi facendo, eviti tantissime disposizioni, che poi andrai a scartare con l'if [and a > b and b > c] (E' inutile generarle per poi scartarle)
Ovviamente, cosi' facendo, quell'if diventa anche inutile.
ok.
for a=2 to 100
for b =a to 100
for c= b to 100
p=(a+b+c)/2
if 7056=p*(p-a)*(p-b)*(p-c) then print a,b,c
next c
next b
next a
end
In effetti il tutto è molto più veloce
for a=2 to 100
for b =a to 100
for c= b to 100
p=(a+b+c)/2
if 7056=p*(p-a)*(p-b)*(p-c) then print a,b,c
next c
next b
next a
end
In effetti il tutto è molto più veloce