Combiner des chiffres aléatoirement c++ [Résolu]

cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 26 janv. 2011 à 10:51 - Dernière réponse : BunoCS 14091 Messages postés lundi 11 juillet 2005Date d'inscription 20 septembre 2018 Dernière intervention
- 27 janv. 2011 à 09:11
bonjour,
supposant que j'ai un ensemble de chiffres/ou nombres entiers (1 - 4 - 8 - 10 - 12) que je veux combiner aléatoirement pour avoir n combinaisons.
ya-t-il une fonction qui accepte comme paramètre ces chiffres/nombres et le nombre de combinaisons voulu n.
autrement dit et plus simplement ya-t-il une fonction qui combine des chiffres/nombres aléatoirement.
j'espère que vous pouvez m'aider à résoudre mon problème.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
BunoCS 14091 Messages postés lundi 11 juillet 2005Date d'inscription 20 septembre 2018 Dernière intervention - 26 janv. 2011 à 11:40
3
Merci
La fonction rand te permet d'avoir un nombre pris "aléatoirement" entre 0 et MAX (max à définir)

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo

Merci BunoCS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de BunoCS
Meilleure réponse
BunoCS 14091 Messages postés lundi 11 juillet 2005Date d'inscription 20 septembre 2018 Dernière intervention - 26 janv. 2011 à 16:05
3
Merci
il faut:
- soit appeler srand() une seule fois (dans ton main, quoi)
- soit le laisser dans ta fonction mais lui passer un argument variable

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo

Merci BunoCS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de BunoCS
BunoCS 14091 Messages postés lundi 11 juillet 2005Date d'inscription 20 septembre 2018 Dernière intervention - 26 janv. 2011 à 11:05
0
Merci
Hello,
Non, une telle fonction n'existe pas. Il va falloir que tu la développe toi-même.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS
cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 26 janv. 2011 à 11:22
0
Merci
merci bien pour l'information,
j'ai développé une fonction qui qui fait toutes les combinaisons possibles, mais ce programme prend des heures dans l'exécution si l'entrée est grande par exemple 100 chiffres.
c'est pourquoi j'ai voulu faire des combinaisons aléatoires et je me limite à un certain nombre de combinaisons.
j'ai entendu parlé d'une fonction random ou rand mais je ne sais pas si ça peut m'aider.
Commenter la réponse de cs_mervat
cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 26 janv. 2011 à 11:45
0
Merci
merci Mr Buno, je pense que ça peut m'aider, je vais l'essayer.
Commenter la réponse de cs_mervat
cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 26 janv. 2011 à 15:34
0
Merci
je suis arrivée à faire ce code,
#include <stdlib.h>
#include <time.h>
#include<string>
#include 
#include <fstream>
#include <sstream>
/* determiner si une valeur x est presente dans le tableau a de taille n
   retour : 0=non presente
    1=presente
*/
static int is_in (int x, int a[], size_t n)
{  std::string s;
   int in = 0;
   size_t i = 0;

   while (!in && i != n)
   {
  in a[i] x;
  i++;
   }
   return in;
}

void nbAlea (void)
{
   enum
   {
  N = 9
   };

   int memo[5] =
   {0};
   size_t i = 0;

   /* initialisation 'variable' du generateur aleatoire */
   srand ((unsigned) time (NULL));
 
   /* tirage pseudo-aleatoire de la premiere valeur, stockage en [0] */ 
   memo[i] = (int) ((double) rand () / ((double) RAND_MAX + 1.0) * N); 


   /* tirage des autres valeurs */ 
   for (i = 1; i < 5; i++)
   { 
  do
      { 
 memo[i] = (int) ((double) rand () / ((double) RAND_MAX + 1.0) * N);
      } 
      while (is_in (memo[i], memo, i)); 
      /* on recommance tant que la valeur est deja dans le debut du tableau ([0]..[i-1]) */ 
 
   } 



   /* affichage */
  for (i = 0; i < 5; i++)
std::cout << memo[i] << " ";
 std::cout << std::endl;
}
int main (void)
{
   int i;

 for (i = 0; i < 10; i++)
   nbAlea();

   system ("pause");
   return (EXIT_SUCCESS);
}


qui m'affiche:
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4
3 0 2 7 4

ce code a permis de combiner des chiffres différents dans la première ligne, mais j'ai voulu le répéter plusieurs fois pour avoir des nombres différents, ça n'a pas réussi, j'espère encore avoir votre aide.
Commenter la réponse de cs_mervat
cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 26 janv. 2011 à 22:08
0
Merci
vraiment merci infiniment, c'est une simple instruction qui a corrigé mon problème, alors que j'ai cassé la tête pendant 4heures envin.
Commenter la réponse de cs_mervat
BunoCS 14091 Messages postés lundi 11 juillet 2005Date d'inscription 20 septembre 2018 Dernière intervention - 27 janv. 2011 à 09:11
0
Merci
C'est souvent comme ça quand on ne connait pas

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.