Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres
aléatoires.
J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très
élégante...
Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
int main()
{
int a,b,c;
while (true)
{
srand(time(0));
a=rand()%10+1;
srand(time(0)/4);
b=rand()%10+1;
cout << "Combien font " << a << "x" << b << " ?" << endl;
cin >> c;
if (c==a*b)
cout << "Bravo ! Résultat exact !" << endl;
else
cout << "Désolé... Mauvaise réponse." << endl;
cout << endl;
}
Est-ce que je suis le seul à ne pas voir les messages de Pierre THIERRY ? Ils n'apparaissent pas sur news.free.fr, et apparemment tu es le seul à y répondre -- donc peut-être le seul à les voir ?
Je les vois sous Google.
Ce qui les diffère des autres messages, je crois, c'est qu'ils utilisent UTF-8, à la place de l'ISO 8859-1 ou 8859-15 qui est usuel ici, et qu'ils utilisent une forme de citation assez particulière dans l'en-tête. La ligne de sujet, par exmple :
de Pierre THIERRY : Subject: Re: =?iso-8859-1?q?[Débutant]?= 2 nombres =?iso-8859-1?q?aléatoires?=
de Gabriel : Subject: Re: [Débutant] 2 nombres aléatoires
Ces en-têtes sont conforme à RFC 1522. Ce qui est un RFC Mime, qui vaut pour les email, mais pas forcément pour le news. On peut imaginer un serveur de news qui les rejette (encore que dans la mésure où ils ne sont présents que dans la ligne de sujet -- même si pris littéralement, le sujet paraîtrait un peu bizarre, rien ne l'interdit).
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Fabien LE LEZ wrote:
On 16 May 2005 13:37:05 +0200, Gabriel Dos Reis
<gdr@integrable-solutions.net>:
Pierre THIERRY <nowhere.man@levallois.eu.org> writes:
Est-ce que je suis le seul à ne pas voir les messages de
Pierre THIERRY ? Ils n'apparaissent pas sur news.free.fr, et
apparemment tu es le seul à y répondre -- donc peut-être le
seul à les voir ?
Je les vois sous Google.
Ce qui les diffère des autres messages, je crois, c'est qu'ils
utilisent UTF-8, à la place de l'ISO 8859-1 ou 8859-15 qui est
usuel ici, et qu'ils utilisent une forme de citation assez
particulière dans l'en-tête. La ligne de sujet, par exmple :
de Pierre THIERRY :
Subject: Re: =?iso-8859-1?q?=5BD=E9butant=5D?= 2 nombres
=?iso-8859-1?q?al=E9atoires?=
de Gabriel :
Subject: Re: [Débutant] 2 nombres aléatoires
Ces en-têtes sont conforme à RFC 1522. Ce qui est un RFC Mime,
qui vaut pour les email, mais pas forcément pour le news. On
peut imaginer un serveur de news qui les rejette (encore que
dans la mésure où ils ne sont présents que dans la ligne de
sujet -- même si pris littéralement, le sujet paraîtrait un peu
bizarre, rien ne l'interdit).
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Est-ce que je suis le seul à ne pas voir les messages de Pierre THIERRY ? Ils n'apparaissent pas sur news.free.fr, et apparemment tu es le seul à y répondre -- donc peut-être le seul à les voir ?
Je les vois sous Google.
Ce qui les diffère des autres messages, je crois, c'est qu'ils utilisent UTF-8, à la place de l'ISO 8859-1 ou 8859-15 qui est usuel ici, et qu'ils utilisent une forme de citation assez particulière dans l'en-tête. La ligne de sujet, par exmple :
de Pierre THIERRY : Subject: Re: =?iso-8859-1?q?[Débutant]?= 2 nombres =?iso-8859-1?q?aléatoires?=
de Gabriel : Subject: Re: [Débutant] 2 nombres aléatoires
Ces en-têtes sont conforme à RFC 1522. Ce qui est un RFC Mime, qui vaut pour les email, mais pas forcément pour le news. On peut imaginer un serveur de news qui les rejette (encore que dans la mésure où ils ne sont présents que dans la ligne de sujet -- même si pris littéralement, le sujet paraîtrait un peu bizarre, rien ne l'interdit).
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Fabien LE LEZ
On 16 May 2005 05:37:53 -0700, :
Est-ce que je suis le seul à ne pas voir les messages de Pierre THIERRY ?
Je les vois sous Google.
En fait, c'est bien Free qui bloque : je les vois aussi chez Nerim. Tant pis...
-- Le grand site de la philosophie animale : <http://perso.edulang.com/philo/>
On 16 May 2005 05:37:53 -0700, kanze@gabi-soft.fr:
Est-ce que je suis le seul à ne pas voir les messages de
Pierre THIERRY ?
Je les vois sous Google.
En fait, c'est bien Free qui bloque : je les vois aussi chez Nerim.
Tant pis...
--
Le grand site de la philosophie animale : <http://perso.edulang.com/philo/>
Est-ce que je suis le seul à ne pas voir les messages de Pierre THIERRY ?
Je les vois sous Google.
En fait, c'est bien Free qui bloque : je les vois aussi chez Nerim. Tant pis...
-- Le grand site de la philosophie animale : <http://perso.edulang.com/philo/>
Horst Kraemer
Dudule wrote:
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres aléatoires. J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très élégante... Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode n'importe pas mais quand il s'agit de simulations "sérieuses" il faudrait préfèrer la premiere méthode.
-- Horst
-- Lâche pas la patate!
Dudule <nospam_svdbg_nospam@free.fr> wrote:
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres
aléatoires.
J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très
élégante...
Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs
appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires
générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode
n'importe pas mais quand il s'agit de simulations "sérieuses" il
faudrait préfèrer la premiere méthode.
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres aléatoires. J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très élégante... Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode n'importe pas mais quand il s'agit de simulations "sérieuses" il faudrait préfèrer la premiere méthode.
-- Horst
-- Lâche pas la patate!
Richard Delorme
Dudule wrote:
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres aléatoires. J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très élégante... Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode n'importe pas mais quand il s'agit de simulations "sérieuses" il faudrait préfèrer la premiere méthode.
Pour des simulations sérieuses, j'espère qu'on évite rand() et qu'on utilise à la place un générateur dont on connaît les propriétés.
-- Richard
Dudule <nospam_svdbg_nospam@free.fr> wrote:
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres
aléatoires.
J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très
élégante...
Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs
appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires
générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode
n'importe pas mais quand il s'agit de simulations "sérieuses" il
faudrait préfèrer la premiere méthode.
Pour des simulations sérieuses, j'espère qu'on évite rand() et qu'on
utilise à la place un générateur dont on connaît les propriétés.
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres aléatoires. J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très élégante... Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode n'importe pas mais quand il s'agit de simulations "sérieuses" il faudrait préfèrer la premiere méthode.
Pour des simulations sérieuses, j'espère qu'on évite rand() et qu'on utilise à la place un générateur dont on connaît les propriétés.
-- Richard
Pierre THIERRY
Le Mon, 16 May 2005 13:37:05 +0200, Gabriel Dos Reis a écrit :
The value (time_t)(-1) is returned if the calendar time is not available.
Donc si le calendrier fonctionne, plusieurs appels à time(0) reverront bien des valeurs différentes, non ?
Dubitativement, Nowhere man --
OpenPGP 0xD9D50D8A
Le Mon, 16 May 2005 13:37:05 +0200, Gabriel Dos Reis a écrit :
The value (time_t)(-1) is returned if the calendar time is not
available.
Donc si le calendrier fonctionne, plusieurs appels à time(0) reverront
bien des valeurs différentes, non ?
Dubitativement,
Nowhere man
--
nowhere.man@levallois.eu.org
OpenPGP 0xD9D50D8A
Le Mon, 16 May 2005 13:37:05 +0200, Gabriel Dos Reis a écrit :
The value (time_t)(-1) is returned if the calendar time is not available.
Donc si le calendrier fonctionne, plusieurs appels à time(0) reverront bien des valeurs différentes, non ?
Dubitativement, Nowhere man --
OpenPGP 0xD9D50D8A
Horst Kraemer
Richard Delorme wrote:
Dudule wrote:
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres aléatoires. J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très élégante... Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode n'importe pas mais quand il s'agit de simulations "sérieuses" il faudrait préfèrer la premiere méthode.
Pour des simulations sérieuses, j'espère qu'on évite rand() et qu'on utilise à la place un générateur dont on connaît les propriétés.
Cela va de soi, mais même pour des simulation "sémi-sérieuses" avec le rand "out of the box" la différence entre les deux méthodes est assez intéressante. p.ex. la moyenne est moins déformée.
-- Horst
-- Lâche pas la patate!
Richard Delorme <abulmo@nospam.fr> wrote:
Dudule <nospam_svdbg_nospam@free.fr> wrote:
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres
aléatoires.
J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très
élégante...
Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs
appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires
générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode
n'importe pas mais quand il s'agit de simulations "sérieuses" il
faudrait préfèrer la premiere méthode.
Pour des simulations sérieuses, j'espère qu'on évite rand() et qu'on
utilise à la place un générateur dont on connaît les propriétés.
Cela va de soi, mais même pour des simulation "sémi-sérieuses" avec le
rand "out of the box" la différence entre les deux méthodes est assez
intéressante. p.ex. la moyenne est moins déformée.
Dans le cadre d'un exercice d'apprentissage, je dois créer 2 nombres aléatoires. J'ai utilisé 2 srand, mais la solution utilisée ne me semble pas très élégante... Si vous avez autre chose à suggérer, cela serait bienvenu. :-)
1) On n'appelle srand qu'une seule fois dans le programme. Plusieurs appels rendent la suite générée moins "aléatoire".
2) Pour des raisons techniques la "qualité" des nombres aléatoires générés par
a = (int)(rand()/(RAND_MAX+1.0)*10)+1;
est en général meilleure que celle des nombres généres par
a = rand()%10+1;
(cf.la FAQ)
Pour des applications du type "joujou" comme la tienne la méthode n'importe pas mais quand il s'agit de simulations "sérieuses" il faudrait préfèrer la premiere méthode.
Pour des simulations sérieuses, j'espère qu'on évite rand() et qu'on utilise à la place un générateur dont on connaît les propriétés.
Cela va de soi, mais même pour des simulation "sémi-sérieuses" avec le rand "out of the box" la différence entre les deux méthodes est assez intéressante. p.ex. la moyenne est moins déformée.
-- Horst
-- Lâche pas la patate!
Gabriel Dos Reis
Pierre THIERRY writes:
| Le Mon, 16 May 2005 13:37:05 +0200, Gabriel Dos Reis a écrit : | > The value (time_t)(-1) is returned if the calendar time is not | > available. | | Donc si le calendrier fonctionne, plusieurs appels à time(0) reverront | bien des valeurs différentes, non ?
Oui ; et ceci
L'argument de time() est un pointeur vers une structure time_t où stocker le résultat (l'heure actuelle), en plus de le retourner.
est conditionnel.
-- Gaby
Pierre THIERRY <nowhere.man@levallois.eu.org> writes:
| Le Mon, 16 May 2005 13:37:05 +0200, Gabriel Dos Reis a écrit :
| > The value (time_t)(-1) is returned if the calendar time is not
| > available.
|
| Donc si le calendrier fonctionne, plusieurs appels à time(0) reverront
| bien des valeurs différentes, non ?
Oui ; et ceci
L'argument de time() est un pointeur vers une structure time_t où
stocker le résultat (l'heure actuelle), en plus de le retourner.
| Le Mon, 16 May 2005 13:37:05 +0200, Gabriel Dos Reis a écrit : | > The value (time_t)(-1) is returned if the calendar time is not | > available. | | Donc si le calendrier fonctionne, plusieurs appels à time(0) reverront | bien des valeurs différentes, non ?
Oui ; et ceci
L'argument de time() est un pointeur vers une structure time_t où stocker le résultat (l'heure actuelle), en plus de le retourner.
est conditionnel.
-- Gaby
Pierre THIERRY
Le Mon, 16 May 2005 17:57:47 +0200, Gabriel Dos Reis a écrit :
L'argument de time() est un pointeur vers une structure time_t où stocker le résultat (l'heure actuelle), en plus de le retourner.
est conditionnel.
Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas testé l'appel pour voir.
Brièvement, Nowhere man --
OpenPGP 0xD9D50D8A
Le Mon, 16 May 2005 17:57:47 +0200, Gabriel Dos Reis a écrit :
L'argument de time() est un pointeur vers une structure time_t où
stocker le résultat (l'heure actuelle), en plus de le retourner.
est conditionnel.
Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas
testé l'appel pour voir.
Brièvement,
Nowhere man
--
nowhere.man@levallois.eu.org
OpenPGP 0xD9D50D8A
Le Mon, 16 May 2005 17:57:47 +0200, Gabriel Dos Reis a écrit :
L'argument de time() est un pointeur vers une structure time_t où stocker le résultat (l'heure actuelle), en plus de le retourner.
est conditionnel.
Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas testé l'appel pour voir.
Brièvement, Nowhere man --
OpenPGP 0xD9D50D8A
Gabriel Dos Reis
Pierre THIERRY writes:
| Le Mon, 16 May 2005 17:57:47 +0200, Gabriel Dos Reis a écrit : | > L'argument de time() est un pointeur vers une structure time_t où | > stocker le résultat (l'heure actuelle), en plus de le retourner. | > | > est conditionnel. | | Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas | testé l'appel pour voir.
Mauvaise page de manuel, changer de page de manuel.
-- Gaby
Pierre THIERRY <nowhere.man@levallois.eu.org> writes:
| Le Mon, 16 May 2005 17:57:47 +0200, Gabriel Dos Reis a écrit :
| > L'argument de time() est un pointeur vers une structure time_t où
| > stocker le résultat (l'heure actuelle), en plus de le retourner.
| >
| > est conditionnel.
|
| Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas
| testé l'appel pour voir.
Mauvaise page de manuel, changer de page de manuel.
| Le Mon, 16 May 2005 17:57:47 +0200, Gabriel Dos Reis a écrit : | > L'argument de time() est un pointeur vers une structure time_t où | > stocker le résultat (l'heure actuelle), en plus de le retourner. | > | > est conditionnel. | | Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas | testé l'appel pour voir.
Mauvaise page de manuel, changer de page de manuel.
-- Gaby
kanze
Pierre THIERRY wrote:
L'argument de time() est un pointeur vers une structure time_t où stocker le résultat (l'heure actuelle), en plus de le retourner.
est conditionnel.
Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas testé l'appel pour voir.
Et qu'est-ce qu'il dit au sujet d'un pointeur NULL ? (Il faut bien qu'il dise quelque chose, quand même.)
La fonction time a accepté un pointeur nul comme paramètre depuis au moins vingt ans. La norme C l'exige. La norme Posix aussi. C'est même plutôt rare d'y voir d'autre chose.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Pierre THIERRY wrote:
L'argument de time() est un pointeur vers une structure
time_t où stocker le résultat (l'heure actuelle), en plus
de le retourner.
est conditionnel.
Pas selon la page de manuel que j'ai sous la main (Linux). Je
n'ai pas testé l'appel pour voir.
Et qu'est-ce qu'il dit au sujet d'un pointeur NULL ? (Il faut
bien qu'il dise quelque chose, quand même.)
La fonction time a accepté un pointeur nul comme paramètre
depuis au moins vingt ans. La norme C l'exige. La norme Posix
aussi. C'est même plutôt rare d'y voir d'autre chose.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
L'argument de time() est un pointeur vers une structure time_t où stocker le résultat (l'heure actuelle), en plus de le retourner.
est conditionnel.
Pas selon la page de manuel que j'ai sous la main (Linux). Je n'ai pas testé l'appel pour voir.
Et qu'est-ce qu'il dit au sujet d'un pointeur NULL ? (Il faut bien qu'il dise quelque chose, quand même.)
La fonction time a accepté un pointeur nul comme paramètre depuis au moins vingt ans. La norme C l'exige. La norme Posix aussi. C'est même plutôt rare d'y voir d'autre chose.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34