Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19

Hybrid View

  1. #1
    vero...errore stupido. Comunque il codice funziona finchè faccio fare le combinazioni con k=2 (lunghezza combinazioni di 2 cifre).
    Ma se faccio fare k=3 non funziona...

    Praticamente come forse avrete notato io faccio fare le combinazioni, ma non mi limito solo a concatenare due elementi, bensì faccio fare la media tra i due valori. Quindi dato il codice:


    codice:
    function getCombinations(arr, n){
        var i,j,k,elem,l = arr.length,childperm,ret=[];
        if(n == 1){
            for(var i = 0; i < arr.length; i++){
                for(var j = 0; j < arr[i].length; j++){
                    ret.push([arr[i][j]]);
                }
            }
            return ret;
        }
        else{
            for(i = 0; i < l; i++){
                elem = arr.shift();
                for(j = 0; j < elem.length; j++){
                    childperm = getCombinations(arr.slice(), n-1);
                    for(k = 0; k < childperm.length; k++){
                              var elej= elem[j];
               
                        var chik= (childperm[k]);
                        var cos= (-1*((-1*elej) + (-1*chik)))/n;
                        ret.push(cos);
                    }
                }
            }
            return ret;
        }
        i=j=k=elem=l=childperm=ret=[]=null;
    }
     
    
    var x = 60;
    var arr = [["10"],["20"],["35"],["5"]];
    var n = 2;
    
    var results = getCombinations(arr.slice(),n);
    document.getElementById("results").innerHTML = "[";
    for(var i = 0; i < results.length; i++)
    {
         if (((x-results[i]) <= 50) && ((x-results[i]) >= 40))  {
            
        }
        document.getElementById("results").innerHTML += "[" + results[i] + "]";
    }
    document.getElementById("results").innerHTML += "]";
    la parte che fa fare la somma e la divisione tra i due elementi è questa:


    codice:
          var elej= elem[j];
               
          var chik= (childperm[k]);
          var cos= (-1*((-1*elej) + (-1*chik)))/n;
          ret.push(cos);

    perché da quanto ho capito....

    "elem[j]" corrisponde al primo elemento dell'array
    "childpermk[k]" non ho ben capito a che corrisponde....

    comunque qui sono 2 elementi. E quindi finchè faccio combinazioni con 2 cifre è ok.
    quando faccio fare le combinazioni di 3 cifre sorge il problema.... non funziona perché:

    codice:
          var elej= elem[j];
               
          var chik= (childperm[k]);
          var cos= (-1*((-1*elej) + (-1*chik)))/n;
          ret.push(cos);
    perché qui abbiamo due elementi.... quando invece a me serve fare combinazioni con 3 elementi.
    Ragion per cui mi e vi chiedo:

    il terzo elemento chi sarebbe? ce nel senso come potrei far a dichiarare il terzo elemento ????



    Lo so sembra assurdo..... e complicato.

    Non ci riuscirò mai....... e non c'è nessuno che possa aiutarmi

  2. #2
    Ad esempio

    "arr.slice()"


    ma scusate il metodo slice() non dovrebbe avere almeno il parametro start??

    come mai qui non c'e' ma comunque il codice funziona?
    Slice senza parametri come funziona??????

  3. #3
    Quantomeno c'e' qualcuno che e' disposto a spiegarmi riga per riga questo codice???? Vi prego :/

    codice:
    function getCombinations(arr, n){
        var i,j,k,elem,l = arr.length,childperm,ret=[];
        if(n == 1){
            for(var i = 0; i < arr.length; i++){
                for(var j = 0; j < arr[i].length; j++){
                    ret.push([arr[i][j]]);
                }
            }
            return ret;
        }
        else{
            for(i = 0; i < l; i++){
                elem = arr.shift();
                for(j = 0; j < elem.length; j++){
                    childperm = getCombinations(arr.slice(), n-1);
                    for(k = 0; k < childperm.length; k++){
                        ret.push([elem[j]].concat(childperm[k]));
                    }
                }
            }
            return ret;
        }
        i=j=k=elem=l=childperm=ret=[]=null;
    }
    
    
    
         var arr = [["10"],["20"],["35"],["5"]];
         var n = 2;
    
    
    
    
         var results = getCombinations(arr.slice(),n);
         document.getElementById("results").innerHTML = "[";
         for(var i = 0; i < results.length; i++)
         {
         
         
        document.getElementById("results").innerHTML += "[" + results[i] + "]";
         }
         document.getElementById("results").innerHTML += "]";

    vi prego, se capisco a pieno il codice potro' modificarlo....

  4. #4
    Mi e' venuta un'idea per fare le operazioni matematiche tra gli elementi di una combinazione (ottenuta tra gli elementi dell'array multidimensionale)..
    Ovvero estraendo gli elementi della combinazione (magari con qualche metodo delle array) e poi convertire l'elemento estratto in una stringa e sommare le varie stringhe...

  5. #5
    Niente.... Sempre con k > 2 non funziona...


    uff

  6. #6
    Probabilmente ci sono riuscito:

    1) estrarre gli elementi dall'array con il metodo slice()
    2) convertire elementi estratto in stringa con il metodo tolocalestring()
    3) convetire la stringa in numero con parseInt()
    4) ora sono numeri quindi si possono fare tutte le operazioni matematiche di questo mondo...
    5) per avere combinazini con k=3 basta cambiare nel codice postato da me 100 volte
    n= 2 con n=3 . Se si vuole k=4 con n=4 e via dicendo
    6) ovviamente se abbiamo k=4 (ovvero n=4), ogni combinazioni sara formata da 4 elementi, quindi bisognera estrarre ciascun elemento alla volta (quindi slice(0,1) e poi slice(1,2) e poi slice(2,3) e poi slice(3,4) ) e poi fare come vi ho detto sopra.


    VI RINGRAZIO ANCHE QUESTA VOLTA, io me la sono cantata e io me la sono suonata...
    qui a parte sporadici aiuti da parte di qualche anima buona, mi e' stato solo detta la stessa cosa :

    "studia quello ecc ecc"

    l'ho fatto e lo sto facendo.... Ma voi come siete di aiuto? E non posso credere che gente piu' esperta non conosceva questi metodi degli array...

    mha... Siate meno presuntuosi, a volte basta dare una semplice dritta!

    vabbe non demordo e spero.


    Notte e scusate l'OT

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Quote Originariamente inviata da Rodrigoson6 Visualizza il messaggio
    Probabilmente ci sono riuscito:
    .....

    VI RINGRAZIO ANCHE QUESTA VOLTA, io me la sono cantata e io me la sono suonata...
    qui a parte sporadici aiuti da parte di qualche anima buona, mi e' stato solo detta la stessa cosa :

    "studia quello ecc ecc"
    E lo ritieni poco, avere indicazioni o spunti è già molto

    l'ho fatto e lo sto facendo.... Ma voi come siete di aiuto?
    Con consigli e indicazioni che ti ha stimolato a risolvere senza ci saresti arrivato?
    E non posso credere che gente piu' esperta non conosceva questi metodi degli array...
    A volte non e facile anche solo capire, al volte non si ha tempo di discutere su certi concetti, ricordati sempre che qui si fa tutto gratis e se non si ha tempo o voglia non dovremo sentirci in colpa
    mha... Siate meno presuntuosi,
    E tu meno pretenzioso
    a volte basta dare una semplice dritta!
    E l'hai avuta e che non te piaciuta

    vabbe non demordo e spero.
    E se potremmo ti daremo comunque una mano

    e scusate l'OT
    Figurati
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    E lo ritieni poco, avere indicazioni o spunti è già molto
    Giusto per intenderci... sporadici interventi (un utente qui e un utente in un altro topic)
    [/quote]

    Con consigli e indicazioni che ti ha stimolato a risolvere senza ci saresti arrivato?
    a essere sinceri mi incavolo quando vedo che nessuno (anche se Saa) non da un aiuto. E comunque a parte l'unico aiuto di un utente qui che mi ha fatto notare uno stupidissimo errore (mettere nell'array le variabili tra le virgolette) ho fatto tutto da solo.

    A volte non e facile anche solo capire, al volte non si ha tempo di discutere su certi concetti, ricordati sempre che qui si fa tutto gratis e se non si ha tempo o voglia non dovremo sentirci in colpa
    Guarda ti quoto al 100%, ma saro' che sono nuovo o che ho un carattere particolare o sara' per la mia giovane eta', ma ho l'impressione che in questo forum si siano molti arroganti che preferiscono non dare una dritta pur di non perdere tempo nel rispondere a domande piu' "banali". E comunque quando si risponde, il piu' delle volte lo si fa' con superficialita' e usando un tecnicismo che chi e' alle prime armi difficilmente capira'.

    E tu meno pretenzioso
    Sicuramente, purtroppo e' un mio difetto.. Scusami ancora e scusami se ho continuato la discussione. Forse la mia e' solo delusione, nel 90% dei forum ci sono queste situazioni, e non riesco a capire perche' ci siano...

    E l'hai avuta e che non te piaciuta
    Hmm sicuro che l'ho avuta? :P

    E se potremmo ti daremo comunque una mano

    Figurati

    Ti ringrazio

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    E che ritengo tu confonda (come molti fanno) il forum come un tutor (persona che ti segue passo passo e ti si piega eventuali errori e incomprensioni) mentre è più simile ad un coach (persona che ti aiuta con spunti e consigli a trovare soluzioni ma che non fa il lavoro per te).
    Questo chiaramente è un mio pensiero, con questo chiudo l'OT augurandoti buona giornata.
    Saluti.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.