Fonction "random" ou "shuffle" en C++ : ça existe ? - Programmation
Marsh Posté le 08-12-2001 à 21:56:52
Regarde la fonction rand() dans stdlib.h je crois ... (stdlib.h est une bibiothèque standart tu dois l'avoir).
Marsh Posté le 08-12-2001 à 22:03:06
Confirmation, la commande existe dans cette librairie.
Tu connais la syntaxe ?! Je suis en train de galérer ;-)
Merci d'avance !
A+, Nrv ;-)
Marsh Posté le 08-12-2001 à 22:08:09
tu fais d'abord
int score;
puis
randomize();// initialisation du Générateur de nombre pseudo aléatoire
et finalement :
score = (rand()%10)+1; // affectation d'un nombre pseudo aléatoire en 1 et 10 inclus
pour avoir entre 0 et 10, tu dois faire :
score = rand()%11; // ça devrait marcher
Marsh Posté le 08-12-2001 à 23:03:24
Ok it works !
Par contre l'initialisation ne marche pas (retour d'une erreur, randomize() n'existe pas ?!) mais même sans c'est Ok.
Merci pour tes infos !
A+, Nrv ;-)
Marsh Posté le 08-12-2001 à 23:20:20
randomize() n'est pas compatible sous linux.... (T sous linux ?)
Marsh Posté le 08-12-2001 à 23:22:26
oui, en effet, c'est du code que j'avais utilisé à l'époqe où je testais l'aléatoirité des GNPA de différents languages de programmation (passionnant hein !), et je faisais tourner ça sous Borland C++, donc sous windows.
Marsh Posté le 08-12-2001 à 23:26:34
Poire : Chuis sous XP ;-)
Tiens, coucou z0rglub ! Si, intéressant ... Je suis de formation plutôt scientifique, alors je connais un peu l'intérêt d'avoir des générateurs de nombres aléatoires (et non pseudo-..) :-)
Nrv ;-)
Marsh Posté le 08-12-2001 à 23:29:42
Si T sous XP tu dois avoir randomize dans stdlib.h
(réessaye en incluant time.h C important randomize)
T'as quoi comme compilateur ?
[edtdd]--Message édité par [SDF]Poire--[/edtdd]
Marsh Posté le 09-12-2001 à 01:23:35
Non mais c'est bon, ça marche, hein !
;-)
VS 6 comme compilateur.
Voilà voilà ...
A+, Nrv ;-)
Marsh Posté le 09-12-2001 à 11:45:27
nrv_from_cnr a écrit a écrit : Non mais c'est bon, ça marche, hein ! ;-) VS 6 comme compilateur. Voilà voilà ... A+, Nrv ;-) |
Randomize C ce qui initialise T nb aléatoires.... si tu le fais pas quand tu relances l'app C les mêmes nb qui ressortent.....
Ca marche pas en incluant time.h ?
Marsh Posté le 09-12-2001 à 12:54:00
Si il faut que tu rajoute une instruction qui se base sur le temps qui se trouve dans time.h, mais je ne me souviens plus c'est quoi !!!
Marsh Posté le 09-12-2001 à 13:08:55
nrv_from_cnr a écrit a écrit : Poire : Chuis sous XP ;-) Tiens, coucou z0rglub ! Si, intéressant ... Je suis de formation plutôt scientifique, alors je connais un peu l'intérêt d'avoir des générateurs de nombres aléatoires (et non pseudo-..) :-) Nrv ;-) |
ben si je repete Pseudo aléatoire, puisque les nombres sont données par une fonction qui utilise un paramètre, si le paramètre est le même, les nombres sortis seront les mêmes. Par exemple, une fonction est initialisée par le nombre de secondes depuis l'époque UNIX, donc si tu lances la fonction 2 fois pendant la même seconde, elle te sortira la même série de nombres. Donc c pas vraiment aléatoire.
Marsh Posté le 09-12-2001 à 13:44:06
Rand et Random donne des nombres pseudo aléatoires et ça on peut rien y faire....
Marsh Posté le 09-12-2001 à 14:09:46
randomize c'est du basic ca , en c/c++ pour initialiser
le generateur de nombres pseudo-aleatoires c'est srand (et c'est ANSI donc windob ou nunux meme combat)
void srand( unsigned int seed );
qui peut etre utilisé ainsi :
srand(time(NULL));
Marsh Posté le 09-12-2001 à 14:27:29
wpk a écrit a écrit : randomize c'est du basic ca , en c/c++ pour initialiser le generateur de nombres pseudo-aleatoires c'est srand (et c'est ANSI donc windob ou nunux meme combat) void srand( unsigned int seed ); qui peut etre utilisé ainsi : srand(time(NULL)); |
randomize C pas du basic (bien que ça existe en basic....)
C une macro (seulement sous dos/win) de stdlib.h la seule différence avec srand C que randomize ne prend pas de parametres vu que C une macro...
Marsh Posté le 09-12-2001 à 14:41:06
[SDF]Poire a écrit a écrit : randomize C pas du basic (bien que ça existe en basic....) C une macro (seulement sous dos/win) de stdlib.h la seule différence avec srand C que randomize ne prend pas de parametres vu que C une macro... |
je sais...., mais j'suis d'humeur tacquine (en plus, randomize c'est du specific borland donc avec visual tu oublie)
Marsh Posté le 09-12-2001 à 14:48:28
Oola ... Le truc drôle dans l'affaire, c'est que dès que je relance l'applic, les nombres aléatoires changent ! ... Sans initialisation pour autant, comme ça à la bourrin ...
Mais je le répète, mon Pb est résolu, je voulais juste générer un remplissage de tableau histoire de voir si mes fonctions étaient Ok ou pas ; je voie que ça marche, après rien à battre des résultats effectifs, répétabilité etc.
A ce propos, vous savez ce que ça veut dire ça, et plus exactement comment le formaliser informatiquement :
---
Projet : stratégie de gestion d'un ascenceur.
Les arrivées des personnes sont décrites par une loi exponentielle, les choix d'étages par une loi normale.
La valeur moyenne de la loi exp sera demandée à l'utilisateur.
---
Assez laconique, je suis d'accord ...
Allé, brainstorming ;-)
A+, Nrv ;-)
[edtdd]--Message édité par nrv_from_cnr--[/edtdd]
Marsh Posté le 09-12-2001 à 15:11:48
wpk a écrit a écrit : je sais...., mais j'suis d'humeur tacquine (en plus, randomize c'est du specific borland donc avec visual tu oublie) |
Juste Borland ? Ben ça je savais pas....
Marsh Posté le 09-12-2001 à 15:52:16
nrv_from_cnr a écrit a écrit : A ce propos, vous savez ce que ça veut dire ça, et plus exactement comment le formaliser informatiquement : --- Projet : stratégie de gestion d'un ascenceur. Les arrivées des personnes sont décrites par une loi exponentielle, les choix d'étages par une loi normale. La valeur moyenne de la loi exp sera demandée à l'utilisateur. --- Assez laconique, je suis d'accord ... Allé, brainstorming ;-) A+, Nrv ;-) |
j'ai fais exactement la même chose l'an dernier mais plutôt qu'un ascenseur, ct une file d'attente dans une cafeteria. ça suit un processus markovien ( le gros mot dis donc !). T'as une loi exponentielle des arrivées, la moyenne que l'utilisateur rentre manuellement correspond au nombre moyen de personne qui vont arriver pour une unité de temps que tu définis.
Si t'es intéréssé par ce que j'ai fait l'an dernier, je te filerai mes soures, mais c'est du matlab, et c pas tout à fait la même chose
Marsh Posté le 09-12-2001 à 15:53:36
en plus t'as du bol, parce que tu dois pas gérer les priorités entre les personnes, moi, y'avais deux catégories de personnes, les profs, prioritaires, et les élèves, pas prioritaires... je me souviens avoir passé du temps sur cet algo
Marsh Posté le 09-12-2001 à 16:41:19
tu trouveras une archive dans ton rep perso sur mon ftp.
C'est un peu le bordel mais l'an dernier, j'avais pas encore conscience de l'importance d'un bon archivage des TPs... cette année, je suis bien organisé...
Marsh Posté le 08-12-2001 à 21:53:39
Coucou c'est ENCORE moi ;-)
Vous savez comment je peux faire pour générer aléatoirement des nombres en C++, sans code annexe ; y a-t-il en standard une sorte de "int x; rand(x,0,10)" pour "randommer" entre 0 et 10 ?
Vous voyez ce que je veux dire ... ;-)
Merci d'avance !
A+, Nrv ;-)
PS : un mode d'emploi détaillé de Visual Studio 6 en PDF ou PPT ou je sais pas quoi, ça se trouve ;-) ?