Generation aleatoire de nombre non repetés
Résolu
SuPr3M
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
SuPr3M Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
SuPr3M Messages postés 22 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais donc generer un tableau de 32 nombres sans qu'aucun de ses nombres se repete , je voudrais aussi savoir si la fonction rand pourrai recevoir une parametre permettant cela, Merci pour votre aide.
Je voudrais donc generer un tableau de 32 nombres sans qu'aucun de ses nombres se repete , je voudrais aussi savoir si la fonction rand pourrai recevoir une parametre permettant cela, Merci pour votre aide.
A voir également:
- Generation aleatoire de nombre non repetés
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Generation ryzen - Guide
- Generateur mot de passe - Télécharger - Sécurité
7 réponses
Non pas comme ça, car là tu récupères pas l'indice dans une case mémoire.
Tu dois te baser sur l'échange de deux cases d'un tableau.
Je t'ai fait un petit code :
Si tu comprends pas des choses, n'hésite pas.
Tu dois te baser sur l'échange de deux cases d'un tableau.
Je t'ai fait un petit code :
#include <stdio.h> #include <time.h> #include <stdlib.h> #define MAX 32 void init(int *tab, const int n) { int i; for(i=0;i<n;i++) tab[i]=i+1; } void affich(const int *const tab, const int n) { int i; printf("T:"); fflush(stdout); for(i=0;i<n;i++) { printf(" %d",tab[i]); fflush(stdout); } putchar('\n'); } void mix(int *tab, const int n) { int i; for(i=0;i<n/2;i++) { int i=(int)((double)rand()/RAND_MAX*n); int j=(int)((double)rand()/RAND_MAX*n); int tmp=tab[i]; tab[i]=tab[j]; tab[j]=tmp; } } int main(void) { int tab[MAX]; srand(time(NULL)); init(tab,MAX); affich(tab,MAX); mix(tab,MAX); affich(tab,MAX); getchar(); return 0; }
Si tu comprends pas des choses, n'hésite pas.
Salut,
Si tu souhaites utiliser des nombres de 0 à 31 (ou 1 à 32), tu initialises le tableau bêtement. Et tu le mélanges. Pour le mélanger, tu tires deux nombres pseudo-aléatoirement avec rand (et l'utilisation de srand avec son seed), et tu échanges les deux cases correspondantes aux indices.
Si tu souhaites utiliser des nombres de 0 à 31 (ou 1 à 32), tu initialises le tableau bêtement. Et tu le mélanges. Pour le mélanger, tu tires deux nombres pseudo-aléatoirement avec rand (et l'utilisation de srand avec son seed), et tu échanges les deux cases correspondantes aux indices.
@ michel_m
je travaille en C...
@ fiddy
Voici un tableau initialisé pourrais tu m'aider a le melanger stp.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
int main()
{
int T[32],
srand(time(NULL));
for(i=0;i<31;i++)
T[i]=i+1;
}
je travaille en C...
@ fiddy
Voici un tableau initialisé pourrais tu m'aider a le melanger stp.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
int main()
{
int T[32],
srand(time(NULL));
for(i=0;i<31;i++)
T[i]=i+1;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question