Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : generation de nombre [ Archives / Au secours ] (thereminder)

vendredi 3 mai 2002 à 10:51:59 | generation de nombre

thereminder

Bonjour, mon pb est le suivant
j'ai besoin de générer 300 000 nombres aléatoires et uniques (en borland c++ builder) en donnant deux bornes (nombre min et nombre max)

Cependant, à la génération, j'ai un débordement de pile.
Comment faire pour éviter cela, et pour avoir un code optimiser ?

Merci

vendredi 3 mai 2002 à 15:03:52 | Re : generation de nombre

Blustuff

Avec Borland C++, tu peux augmenter la limite de la pile dans les options du compilateur. Tu utilise un tableu de 300 000 valeurs, ce qui est enorme. Tu ne devrait pas le déclarer dans la pile (stack), mais tu devrai le déclarer dynamiquement avec new ou avec malloc :


#incldue <malloc.h> //Pour malloc()
#include <stdlib.h> //Pour random()

#define max 34 //Valeur Max.
#define min 4 //Valeur Min.

main()
{
int* Tableau = (int*) malloc(300000*sizeof(int));
for (x = 0 ; x < 300000 ; x++)
Tableau[x] = random(max - min) + min;

free(Tableau); //Ne pas oublier de desallouer le tableau
}


Tu peux également utiliser une variable globale pour ton tableau, qui ne sera donc pas dans la pile mais dans le segment de code. Mais tu dois savoir qu'une variable globale c'est en général une mauvaise solution. Tu peux aussi remplacer malloc et free par new et Delete. La le code doit etre optimisé pour du c, tu peux essayer d'optimiser en assembleur aussi, mais je ne connais pas l'equivalent de ce code en asm. Si tu remplacer les constantes min et max, par des variables, pense a calculer max - min avant la boucle.


Blustuff.

-------------------------------
Réponse au message :
-------------------------------

Bonjour, mon pb est le suivant
j'ai besoin de générer 300 000 nombres aléatoires et uniques (en borland c++ builder) en donnant deux bornes (nombre min et nombre max)

Cependant, à la génération, j'ai un débordement de pile.
Comment faire pour éviter cela, et pour avoir un code optimiser ?

Merci



Cette discussion est classé dans : nombre, generation


Répondre à ce message

Sujets en rapport avec ce message

generation nombre aleatoire sous dev cpp [ par dionysos ] Bonjour,En c, sous dev cpp, comment generer des nombre de façon aleatoire (entiers) ?Quelle(s) bibliotheque(s)?Quelle(s) fonction(s)?J'ai pensé à rand Compter les lignes d un fichier texte [ par DeepThroat ] Bonjour a tous !J'aimerai trouver une fontion simple qui retourne le nombre de lignes dans un fichier , ou bien qui affiche ce nombre de lignes.j'imag Probleme rand() et for [ par vanpet ] je suis nouveau en C++ (je migre de VB6) et il y a quelques petites choses que l'aide de Microsoft ne parvient pas a me faire comprendre... (pourquoi vérifier les doublons [ par cognac ] Bonjour,J'ai fai ce petit prog. qui vérifi les doublons dans un tableau. Comme je suis débutant et que ce prog est un de mes premiers je me demande si Tableau de char* [ par alex1er ] Salut a tousJ'aimerais faire la déclaration suivante dans mon code : char * swSurface[]; //Tableau de char * doncSeulement, le compilo me jete car le conversion double en string [ par bouba ] Bonjour, je réalise une fonction qui doit calculer le nombre de caractères d'un doubleexemple:-7.56 -> 5 caractèreExiste t'il une fonction qui fasse c Strcat avec un chiffre entier [ par Athanor ] Je voudrais concaténer une chaine avec un nombre entier, je sais bien questrcat(nomchaine, 123);ne marche pas, mais même en transformant mon chiffre e savoir si un nombre est entier [ par bernic ] Comment faire pour savoir si un nombre stocké dans une variable float est entier ? Somme d'entiers [ par PiraTmaT ] Bonjour,Je dispose d'une suite d'un certain nombre d'entiers aléatoires inférieurs ou égaux à 100.Je dois déterminer s'il est possible de regrouper un convertir les nombres en lettres [ par djamine ] salut les amisje cherche un code pour convertir les nombres (1 2 3 .....) en lettres ( un, deux , trois....)l'utilisateur donne le nombre et le progra


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.