domenica 28 marzo 2010

Quanti triangoli ci sono?

Mi è capitato spesso, girando per il web, di trovare dei giochetti matematici. Un esempio è il classico gioco dei triangoli. Quanti triangoli ci sono in questa immagine? Chiunque, almeno una volta nella vita, ha provato a risolverlo contando il numero di triangoli, spesso perdendone qualcuno per strada. Ma se uno volesse trovare un modello matematico per la risoluzione di questo enigma? Fa come me, prende carta e penna e si mette a studiare i vari casi, prendendo prima un triangolo piccolo per poi aumentare la sua grandezza. Io sono riuscito a trovare una soluzione studiando il triangolo a pezzi. Ora non voglio annoiare nessuno con la matematica, ma chi fosse curioso, può guardarsi il codice java qui sotto, per provare ad intuire la soluzione che ho trovato. E, perché no, per proporne una di migliore e più elegante (perché sicuramente esiste).


public class Triangle {
private int l;

public Triangle(int l) {
this.l = l;
}

public int n(int l, int i) {
int n = 0;
if (i == 1)
n = 2*l - 1;
if (i > 1) {
if (l <= (2*i - 1))
n = l - (i - 1);
else
n = 2*(l - i) - (i - 2);
}
return n;
}

public int resolve() {
int result = 0;
for (int l = this.l; l > 0; l--) {
for (int i = 1; i <= l; i++) {
result += n(l, i);
}
}
return result;
}

public static void main(String[] args) {
Triangle triangle = new Triangle(1000);
System.out.println(triangle.resolve());
}
}

2 commenti:

Unknown ha detto...

Sei un gallaccio, pure il java per risolvere gli enigmi :)
Io continuo a contarli perdendomi per strada va, son troppo ignorante, di programmazione non ne so niente^^

Azz aka azzarcher ha detto...

ahahahah! comunque questo non è java, è matematica. Io di java non so niente, è che siccome lo sto studiacchiando mi sembrava carino esercitarmi, no? :)

Posta un commento