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

    Creare sotto_array (di 10 elementi) partendo da un array di 20 elementi...

    Ho un ARRAY di nome INSIEMESCELTO costituito da:

    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
    17,18,19,20

    Vorrei del codice che se attivato (magari premendo un relativo bottone) mi creasse diciamo 10 sotto_ARRAY dinamici caratterizzati da:

    * UNIVOCITA' degli stessi
    * COMPOSTI DA 10 elementi presi da INSIEMESCELTO
    * i 10 elementi che li compongono sono ordinati in modo crescente
    (es. 1,2,3,4,5,6,7,8,9,10)


    Grazie 1000

  2. #2
    Scusa ma per fare 10 array da 10 elementi INSIEMESCELTO non dovrebbe essere composto da 100 elementi??
    Non ho ben capito.
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Cerco di spiegarmi meglio con un esempio.. + lungo..

    Ho un array TUTTI che è insieme totale dei numeri (ad es. 20 numeri):

    TUTTI=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

    Vorrei generare con ACION SCRIPT tot (es. 10) combinazioni di 10 numeri prelevando gli elementi solo dall'array TUTTI ottenendo qualcosa del tipo:

    01,02,03,04,05,06,07,08,09,10
    01,03,04,11,12,13,14,17,19,20
    03,04,08,09,10,11,15,18,19,20

    ecc...

    fino alla combinazione n.10 ad es:
    05,06,07,11,12,15,16,17,18,19

    Piu' chiaro?

    Thanks


  4. #4
    Originariamente inviato da bluego78
    Scusa ma per fare 10 array da 10 elementi INSIEMESCELTO non dovrebbe essere composto da 100 elementi??
    Non ho ben capito.
    [ot]
    mi sa proprio di no

    riporto un link x ulteriori info
    riguardante le combinazioni che si possono ottenere
    http://www.chihapauradellamatematica...torio_Cap2.htm
    coefficiente binomiale x il calcolo delle combianzioni possibili

    [/ot]

    potrebbe essere utile x creare questa funzione x creare i sottoarray x così dire
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    Scusa il ritardo e non ho avuto molto tempo, ma ti ho trovato una soluzione parziale...
    questo script ti dovrebbe generare gli array che dici, l'unico neo è che potrebbe duplicare i valori all'interno degli stessi...
    prova a trovare la soluzione per non farli duplicare, se no poi lo rivedo, fammi sapere.


    tutti = ["1","2","3","4","5","6","7","8","9","10","11","12" ,"13","14","15","16","17","18","19","20"];

    n_array = 10;

    n_valori_array = 10;

    for (i=0;i<n_array;i++){
    _root["new_arr"+i] = new Array;

    for (j=0;j<n_valori_array;j++){
    _root["valore_arr"+j] = tutti[random(tutti.length)]
    _root["new_arr"+i].push(_root["valore_arr"+j])
    }

    trace (_root["new_arr"+i])
    }
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  6. #6
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    mitiko! :)

    Ci siamo quasi!!!

    Rimangono solo 4 punti da ottimizzare:

    1) quello che hai evidenziato già tu dei valori duplicati in una stesa combiazione anche piu' di due volte

    2) quello di generare tutte combinazioni di 10 numeri diverse l'una dall'altra..

    3) ordinare gli elementi (valori) di ciascuna combinazione di 10 num in modo crescente.. es.. 1,2,3,12,14,15,16,17,18,19 e non
    1,12,3,14,15,2,16,19,18

    4) visualizzare sullo stage le varie combianzioni generate attraverso rispettivi camppi di testo dinamico


  7. #7
    non credo sia possibile, matematicamente parlando, che si possando creare 10 array di 10 numeri ciscuno, pescati da un array di 20 numeri, che possano essere ordinati in modo crescente, perchè se io ad esempio partissi in un array con il valore 13 come potrebbero seguire altri 10 numeri se ne esistono solo 7 per arrivare a 20 e oltretutto in modo crescente?... Sei sicuro che intendi proprio questo?
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  8. #8
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    A questo un ci avevo pensato...

    Comque credo che con 20 numeri altro che 10 combinazioni univoche vengono fori molte di +!

    però è vero che se la funzione random parte da 13 e li voglio in ordine crescente... una volta arrivato a 20 il meccanismo si blocca mettendo solo 7 numeri nella combinazione in oggetto... :master:

    bisognerebbe dunque generare le 10 combinazioni facendo attenzione anche a questo fatto ovvero.. mantenendo come "vincolo" il fatto che devono essere 10 numeri e quindi regolare il "primo numero delle stesse in modo che non sia mai superiore all'ultimo del range scelto (in questo caso 20) - 9...

    ovvero

    ULTIMO_NUMERO_RANGE_SCELTO= ultimo elemento dell'array NUMERI_SCELTI
    (in cui gli elementi sono in ordine crescente) es. 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20

    e le combinazioni generate in automatico dovranno tali che il primo numero delle stesse sia sempre < (ULTIMO_NUMERO_RANGE_SCELTO (es.20) - 9)

    Spero di non essermi attorcigliato troppo coi discorsi...


  9. #9
    codice:
    var tutti = new Array();
    var sublist = new Array();
    var a_length = 20;
    var n_array = 10;
    var n_length = 10;
    // Generazione primo array "tutti"
    while (a_length) {
    	tutti.unshift(a_length--);
    }
    function generateNew(origin, len) {
    	var gen = new Array();
    	for (var i = 0; i<len; i++) {
    		var pos = Math.round(Math.random()*origin.length)-1;
    		gen.push(origin.splice(pos, 1));
    	}
    	return gen;
    }
    while (n_array) {
    	var temp = generateNew(tutti.slice(), n_length);
    	sublist.push(temp);
    	n_array--;
    }
    questo ti garantisce 10 array all'interno dei quali ci sono valori univoci
    se vuoi ordinarli puoi usare la funzione sort degli array
    per controllare che un array nn sia identico ad un altro nn saprei come fare se non scorrere uno per uno tutti gli array e confrontarli tra loro, ma mi sembra uno spreco ... il random dovrebbe essere sufficiente

  10. #10
    scusa se mi intrometto.. da profano direi che potresti prima crearli tutti diversi poi ordinarne gli elementi in modo crescente e poi stamparli..

    magari ho detto una ka@@ta..
    dai diamanti non nasce niente dal letame nascono i fior
    UNGAWA! Tiki Bar
    Villa Camerini

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.