Sélection aléatoire dans un tableau

Bonjour à tous.

Je cherche à sélectionner X chiffres de façon aléatoire dans un tableau mais je ne vois pas comment m'y prendre.

Exemple : récupérer 6 des 9 chiffres ci dessous aléatoirement.

int number = 6;
int myH1[] = {21, 22, 23, 24, 25, 26, 33, 34, 35};

Est-ce que quelqu'un pourrait m'aider ?

Merci beaucoup.

hello

voir ICI

et inspires toi de ce code (qui n’est pas ta solution)

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
}


for (int r=0;r<= 4;r++){ randNumber=random(27, 40);coktails[ligne][r] = randNumber;Serial.print(randNumber);Serial.print("  ");delay(50);
                             for (int v=0;v<r;v++){if (randNumber == coktails[ligne][v]){r--;}}}//coktails[ligne][4]=27;//****************
    Serial.println(" recap ");for (int r=0;r<=4;r++){ Serial.print(coktails[ligne][r]);Serial.print("  ");}Serial.println("  ");

Le problème c'est que les chiffres dans mon array ne se suivent pas.

En fait, il faudrait sortir un des chiffres aux hasard, recréer un tableau sans le chiffre extrait, répéter l'opération X fois. X étant mon "number" de base.

dommage, le but est bien de t’aider à faire ton code et non de te le faire

charge celui ci, ouvres ton moniteur en 9600 et regardes le texte qui s’qffiche

int randNumber = 6;
int myH1[] = {21, 22, 23, 24, 25, 26, 33, 34, 35};
int choix[6] ;
int compteur=0 ;
int compteurpossible=0;
void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
}

void loop() 
{  
Serial.print("choix possibles "); for (int w=0;w< 9;w++){Serial.print(myH1[w]);Serial.print(", ");}Serial.println(" ");

for (int r=0;r< 6;r++)
  { Serial.print(" r= ");Serial.print(r+1);
    randNumber=random(19, 37);
    choix[r] = randNumber; Serial.print("   randNumber = ");Serial.print(randNumber);Serial.print("  ");
    compteurpossible=0;
   for (int v=0;v<9;v++)
   {
   if (randNumber == myH1[v]){ compteurpossible = 1 ;Serial.print(" est dans la liste possible, compteur posible = ");Serial.print(compteurpossible);}
   }
    if (compteurpossible == 0){Serial.print(" n est pas dans la liste possible ");Serial.print(compteurpossible);}
    
    compteur=0;
    for (int x=0;x<r;x++)
   {
   if (randNumber == choix[x]){compteur = 1;Serial.print("  et a deja ete tire, compteur = ");Serial.println(compteur);}
   }
   if (compteur==0){Serial.print("  et n a pas deja ete tire ");Serial.println(compteur);}
   
  if ((compteur == 1)|(compteurpossible == 0)){r--;}
  if (compteur == 1){Serial.print("randNumber  ");Serial.print(randNumber);Serial.println("  refuse car a deja ete tire ");}
  if (compteurpossible == 0){Serial.print("randNumber  ");Serial.print(randNumber);Serial.println("  refuse car ne fait pas partie de la liste ");}
  
 }
 Serial.println(" recap ");
 for (int r=0;r<6;r++)
 {Serial.print(choix[r]);Serial.print("  ");}
 Serial.println("  ");
 while(1);
}

Désolé si mon message a été mal compris.
Je souhaites évidemment apprendre la programmation sous Arduino mais je pars de presque Zéro…
J’essaye de comprendre un maximum les bouts de codes à gauche à droite…

dfgh:
dommage, le but est bien de t’aider à faire ton code et non de te le faire

charge celui ci, ouvres ton moniteur en 9600 et regardes le texte qui s’qffiche

int randNumber = 6;

int myH1 = {21, 22, 23, 24, 25, 26, 33, 34, 35};
int choix[6] ;
int compteur=0 ;
int compteurpossible=0;
void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
}

void loop()

Serial.print("choix possibles “); for (int w=0;w< 9;w++){Serial.print(myH1[w]);Serial.print(”, “);}Serial.println(” ");

for (int r=0;r< 6;r++)
  { Serial.print(" r= “);Serial.print(r+1);
    randNumber=random(19, 37);
    choix[r] = randNumber; Serial.print(”  randNumber = “);Serial.print(randNumber);Serial.print(”  “);
    compteurpossible=0;
  for (int v=0;v<9;v++)
  {
  if (randNumber == myH1[v]){ compteurpossible = 1 ;Serial.print(” est dans la liste possible, compteur posible = “);Serial.print(compteurpossible);}
  }
    if (compteurpossible == 0){Serial.print(” n est pas dans la liste possible “);Serial.print(compteurpossible);}
   
    compteur=0;
    for (int x=0;x<r;x++)
  {
  if (randNumber == choix){compteur = 1;Serial.print(”  et a deja ete tire, compteur = “);Serial.println(compteur);}
  }
  if (compteur==0){Serial.print(”  et n a pas deja ete tire ");Serial.println(compteur);}
 
  if ((compteur == 1)|(compteurpossible == 0)){r–;}
  if (compteur == 1){Serial.print("randNumber  “);Serial.print(randNumber);Serial.println(”  refuse car a deja ete tire ");}
  if (compteurpossible == 0){Serial.print("randNumber  “);Serial.print(randNumber);Serial.println(”  refuse car ne fait pas partie de la liste “);}
 
}
Serial.println(” recap “);
for (int r=0;r<6;r++)
{Serial.print(choix[r]);Serial.print(”  “);}
Serial.println(”  ");
while(1);
}