Visualizzazione dei risultati da 1 a 3 su 3

Discussione: random definito....

  1. #1

    random definito....

    supponendo di avere un array, ad esempio A(1,...,9); è possibile assegnare ad ogni elemento che compone l'array un numero casuale... ma sempre diverso?

    esempio:
    A(1) = 8
    A(2) = 5
    A(3) = 7
    A(4) = 2
    A(5) = 3
    A(6) = 1
    A(7) = 9
    A(8) = 6
    A(9) = 4

    (tutti i valori sono diversi)

  2. #2
    Ti ho scritto un esempio avendo un array lungo M e con cui si ottengono valori interi positivi compresi fra 0 ed N, con N >= M. In questo caso, tanto per esempio, ho preso M = 10 e N = 20:
    codice:
    M = 10;
    N = 20;
    A = new Array(M);
    
    if (N >= M)
    {
    	for (i = 0; i < A.length; i++)
    	{	
    
    		do	{
    			H = false;
    			A[i] = Math.round(N*Math.random());
    			for (j = 0; j < i; j++)
    			{
    				if (A[i] == A[j])
    				{
    					H = true;
    				}
    			}
    		} while (H);
    	}
    }
    else
    {
    	trace ("Errore");
    }
    trace(A);
    Credo proprio che possa essere migliorato.
    Dimmi pure se vuoi modificarlo.


  3. #3
    interessante, ho colto l' occasione per fare una proto che spero torni utile.

    La soluzione, tramite proto, diventa di poche righe ed e' questa:
    codice:
    M = 10;
    A = new Array();
    while( A.length < M ) {
    	if( !A.in_array( myRand = Math.round(M*Math.random()) ) ) {
    		A.push( myRand );
    	}
    }
    trace(A);

    la proto, peraltro semplice ma portabilissima, e' Array.in_array() e questo e' il codice:
    codice:
    Array.prototype.in_array = function( what ) {
    	// andr3a [ 25 / 03 / 2004 ]
    	// check if a value is inside an array
    	// EXAMPLE:
    	//		var myArray = new Array( "hello", "world", Array("one", "two") );
    	//		trace( myArray.in_array( "hello" ) ); // true
    	//		trace( myArray.in_array( "hi" ) ); // false
    	//		trace( myArray.in_array( "two" ) ); // true
    	for( var a = 0; a < this.length; a++ ) {
    		if( this[a] == what ) {
    			return true;
    		}
    		else if( this[a] instanceof Array ) {
    			return this[a].in_array( what );
    		}
    	}
    	return false;
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.