distance sociale des membres Random dans un array

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
slumberlander
Messages : 1
Enregistré le : 29 mai 2020, 11:18

distance sociale des membres Random dans un array

Message par slumberlander » 29 mai 2020, 11:32

Bonjour tout le monde,
je veux placer dans un array, des valeurs random différentes les unes des autres, j ai vraiment besoin qu elles respectent au moins 20 points de distanciation....
voila ce que j'ai fait :

Code : Tout sélectionner

var all = [];
var i = 0 ;

randomDiff();



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function randomDiff()      								 //function pour obtenir des nums differents
{
  var num1 = randomNumber(10,290); 					// prends en un premier
  all[0]= num1;                								   //  met le dans le tableau à l index zéro
do                                								 //  jusqu'a ce qu il y ait 12 num dans le tableau fais : 
{
  var temp = randomNumber(10,290);  					// tu prends un premier numero temporaire
  var j; 
 	 for (j = 0; j < all.length; j++ )   					// et tu regarde dans le tableau...
  		{
		 if ((temp<all[i]-10)||(temp>all[i]+10))			// ....si ce num temporaire est suffisament distant de chacuns des membres...
            {
         	 all.push (temp);                					    //  puis que c'est bon tu le mets dedans
             i++;                              							  // et tu incrémente....
             console.log (all[i]);
            }                         
     	 }
   		}
    	 while (i<11) 									//  jusqu'a ce qu il y ait 12 personnes
    }

////////////////////////////////////////////////////////////////////////////////////// Random inbetwin range of 10-290
    
function randomNumber(min, max) {  
    return Math.floor(Math.random() * (max - min) + min); 
} 

voila j'ai fait plein de tentatives differentes sans y rriver,
si qq peut m'aider avec ca, par avance merci!!!


Avatar du membre
webmaster
Administrateur du site
Messages : 577
Enregistré le : 28 févr. 2017, 15:19

Re: distance sociale des membres Random dans un array

Message par webmaster » 29 mai 2020, 13:04

Bonjour,

J'ai fait des modifs du script ici
https://www.toutjavascript.com/user/distanciation.html

Il y avait quelques erreurs, sur les indices i et j par exemple
Il faut aussi parcourir tout le tableau avant de décider si le temp est valide

On ne peut pas mettre 12 nombres à tous les coups non plus avec une distance de 20 : d'ou le risque de boucle sans fin

Code : Tout sélectionner

function randomDiff() //function pour obtenir des nums differents
{
    var num1 = randomNumber(10, 290); // prends en un premier
    all[0] = num1; //  met le dans le tableau à l index zéro
    do //  jusqu'a ce qu il y ait 12 num dans le tableau fais : 
    {
        var temp = randomNumber(10, 290); // tu prends un premier numero temporaire
        var distance = true;
        for (var j = 0; j < all.length; j++) // et tu regarde dans le tableau...
        {
            
            if ((temp > all[j] - 20) && (temp < all[j] + 20)) // ....si ce num temporaire est trop pret, on le rejette
            {
                distance=false;
                break;
            }
        }
        if (distance) {
            all.push(temp); //  puis que c'est bon tu le mets dedans
            i++; // et tu incrémente....
            console.log(all[i]);
            
        }
    }
    while (i < 5) //  jusqu'a ce qu il y ait 12 personnes
    console.log(all);    
}
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Répondre