codice:
//Inizializzazione script
var cifra = new Array();
//result : numero di combinazioni
var result = 0;
//ncifre : numero di cifre da combinare
var ncifre = 3;
//max_number : massimo valore che può acquisire una cifra
var max_number = 8;
//min_number : minimo valore che può acquisire una cifra
var min_number = 2;
//step_medias : ogni quanto aumenta una cifra tra due controlli di combinazioni
step_medias = 2;
//media_points : media delle cifre
var media_points = 4;
var w = 0;
for(w=0;w<ncifre;w++)
{
   //cifra.push(min_number);
   cifra.push(min_number - step_medias);
}
//Funzione che richiama la funzione ricorsiva
function clickclick()
{
   for(w = 0;w < ncifre;w++)
   {
       //cifra.push(min_number);
      cifra[w] = min_number - step_medias;
   }
   result = 0;
   onCl(0);
}
//funzione ricorsiva
function onCl(i)
{
   var j;
   for(j =cifra[i];j < max_number; j+=step_medias)
   {
      var sum =0;
      cifra[i] += step_medias;
      //Ricorsione
      if (i< (ncifre-1))
         onCl(i+1);
      //Somma delle cifre
      for(k=0;k<ncifre;k++)
      {
          sum += cifra[k];
      }
      if(sum == (ncifre*media_points) )
          result++;

    }
   //Reinizializzao la cifra per ritornare alla cifra maggiore
   cifra[i] = min_number;
   //Quando finisco la cifra 0 allora result è il mio risultato finale
   if(i==0)
   {
       //document.result_calcolo.value = result;
      alert(result);
   }
   return;
}