IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Rangement de données aléatoires dans un tableau bidimensionnel de 9x9


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Par défaut Rangement de données aléatoires dans un tableau bidimensionnel de 9x9
    Un code vaut mieux que du blabla...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <script language="javascript">
    var plateau=new Array();
    while(y!=10)
    {
    	for (var ligne=0;ligne<=8;ligne++)
    	{ 
    		plateau[ligne]=new Array(Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()));	
    	}
    	var y=0;
    	for (var t=0;t<=8;t++) 
    	{	
    		for (var x=0;x<=8;x++)
    		{
    			y += plateau[t][x];
    		}
    	}	
    document.write(y+'<br/>');
    }
    </script>
    Je souhaite insérer aléatoirement des '0' et des '1' dans un tableau à 2 dimensions (plateau)...

    Mon script fonctionne mais comme je veux limiter le nombre de '1' dans le tableau à exactement 10 unités, j'ai décidé de répéter l'opération aléatoire jusqu'à ce que cela arrive...

    or mon code prends beaucoup de ressources à l'exécution pour ne jamais arriver au résultat escompté...

    Avez-vous une solution dans les grandes lignes pour moi?

    Ensuite il y a cette ligne que je souhaite simplifier au maximum sans savoir trop comment faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    plateau[ligne]=new Array(Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()),Math.round(Math.random()));
    Un grand merci à ceux et celles qui prendront le temps de regarder mon ptit problème...

    A+

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Bonjour

    Je pense que tu devrais initialiser ton tableau à 0 puis mettre à 1 les adresses aléatoires x/y de façon à obtenir ton cumul de 10. Attention il faut gérer les adresses déjà renseignées.
    Dans le meilleur des cas en 10 coups ton tableau est renseigné.

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    algo simple
    tu ne tire que les 1
    tu lance donc 10 fois le tirage aléatoire

    à chaque tirage tu tire un nombre entre 0 et 80 (9 x 9)
    et tu garde le nombre dans un tableau si le nombre est déjà tombé tu relance

    ainsi tu as 10 nombre en 0 et 80

    tu numérote ton damier de 0 à 80 tu a donc des 1 dans chaques cases tirés le reste c'est des 0

    A+JYT

Discussions similaires

  1. Récupération de données aléatoires dans un tableau
    Par Rose22 dans le forum Débuter
    Réponses: 10
    Dernier message: 03/06/2014, 09h07
  2. Réponses: 1
    Dernier message: 09/07/2007, 17h13
  3. [xsl-fo]Problème de données dynamiques dans un tableau.
    Par Little_flower dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/05/2007, 10h35
  4. Recherche aléatoire dans un tableau
    Par Ykroxor dans le forum Excel
    Réponses: 1
    Dernier message: 11/04/2007, 09h58
  5. [Conception] Afficher les données (BDD) dans un tableau en PHP
    Par ox@na dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/09/2006, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo