Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Ultimissima verifica di array...

    Ho il seguente codice:

    sestinagen= _root.ARRAYSESTINA.slice().join("-")

    //Aggiungo in un'altro ARRAY di nome COMBINAZIONI_CREATE tutte le combinazioni generate...

    COMBINAZIONI_CREATE.push(sestinagen);


    array_disordinato= _root.COMBINAZIONI_CREATE.slice().join(";")


    _root.COMBINAZIONI_CREATE.text =array_disordinato;

    trace (COMBINAZIONI_CREATE.length);

    Questo mi genera combinazioni di 6 numeri aventi all'interno doppioni e senza la sicurezza che le combinazioni stesse siano univoche..

    es di generazione da ottimizzare:

    6-9-6-26-31-35;
    1-8-8 -19-34-39;
    1-9-9- 27-34-31;
    5-7-8-27-34-36;
    5-3-7-20-31-31

    in grassetto i casi doppioni (ma possono essere anche piu' di doppioni..)
    che vorrei tracciare ed eliminare...

    Inoltre dovrei avere la certezza che tra le 5 combinazioni dell'esempio non ve ne siano due uguali...

    E' possibile risolvere con uno o piu' codicilli appropriati tali punti?

    Grazie infinitesime a chi lo sa!


  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    quello che ho fatto io in un caso analogo è stato di creare un array con tutti i numeri possibili, mettiamo che tu usi numeri dall'uno al trenta. A questo punto quando generi casualmente un elemento lo vai a pescare in quell'array e da lì lo elimini, in modo che continuando a pescare da lì tu non possa pescare due elementi uguali
    mi spiego meglio, tu generi casualmente un numero che non farà parte subito della sestina, ma sarà l'indice dell'elemento che tu andrai a pescare
    per il range di valori da utilizzare nella generazione casuale, usa la proprietà dell'array che ne descrive il numero di elementi
    ovviamente l'array dei numeri sarà riinizializzato con tutti i valori se vuoi che in due sestine diverse ci possano essere numeri uguali

    dal secondo array in poi li confronti con i precedenti, se uno è uguale, lo cancelli e lo rigeneri

    era questo che volevi?

    p.s.: ma manca un pezzo di codice o no? non vedo dove generi gli array...
    buonuomo.tomma@tiscali.it

  3. #3
    Utente di HTML.it L'avatar di arn
    Registrato dal
    Jun 2002
    Messaggi
    420
    credo che questo faccia al tuo caso, prova adargli un occhio.

    Array.randoMix
    Author(s): mail@stefanocorradi.com
    Flash version: 5
    DateTime: 05.05.2002
    // ---------------------------------------
    // by Stefano Corradi
    // e-mail: mail@stefanocorradi.com
    //
    // This function is useful for mixing
    // the components of an array.
    // If the array is empty and you don't pass
    // any parameter,
    // the array assumes the dafault value of
    // 10 numbers in mixted order.
    // Anyway, if the array is empty and you
    // pass a numerical parameter,
    // the function assumes the value of that
    // parameter and it mixes as many
    // numbers as you suggested.
    //
    // Utilization:
    // - when you need to have a random numerical list without any repetition
    // - when you have to mix your array like a cards pack
    //
    // Syntax
    //


    functions downloaded from http://www.sephiroth.it/download/prototype.php


    // myArray.randoMix(rdm)
    //
    // Parameter: rdm <- numbers to distribute in random order
    //
    // ----------------------------------------
    Array.prototype.randoMix = function(rdm) {
    if (this.length<1) {
    if (rdm == null || rdm<0) {
    rdm = 10;
    }
    for (c=0; c<rdm; c++) {
    this[c] = c+1;
    }
    }
    rdm = this.length;
    for (i=0; i<rdm; i++) {
    rdMix = random(rdm);
    this.temp = this[rdMix];
    this.push(this.temp);
    this.splice(rdMix, 1);
    rdm--;
    }
    };
    // ----------
    // Examples.
    // ----------
    /*
    arr1 = new Array("one", "two", "three", "four", "five");
    arr1.randoMix();
    trace(arr1);
    arr2 = new Array();
    arr2.randoMix();
    trace(arr2);
    arr3 = new Array();
    arr3.randoMix(20);
    trace(arr3);
    */
    La rapidità che è una virtù, genera un vizio che è la fretta !
    -------------------------
    Browser: Opera & Firefox

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    scusa arn, ma a me pare che questa funzione generi un array con dentro dei numeri casuali ma senza sceglierne sei a caso da un range di mettiamo 20, ma li prenda tutti e venti e li mischi, creando così un array di 20 elementi, mentre il nostro freetom voleva degli array di sei elementi mi pare da un range molto più ampio...
    correggimi se sbaglio
    buonuomo.tomma@tiscali.it

  5. #5
    Utente di HTML.it L'avatar di arn
    Registrato dal
    Jun 2002
    Messaggi
    420
    esatto, ma pensavo che la logica fosse la stessa
    La rapidità che è una virtù, genera un vizio che è la fretta !
    -------------------------
    Browser: Opera & Firefox

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 © 2025 vBulletin Solutions, Inc. All rights reserved.