OVH Cloud OVH Cloud

gnuAWK et random generation

3 réponses
Avatar
Rakotomandimby Mihamina
Bonjour,
J'essaie de generer un monbre aleatoire inferieur a 87:
trois fois de suite, et meme si je relance encore et encore, ca donne
toujours le meme nombre.
Sauriez-vous pourquoi ?

[...]
$awk "BEGIN { srand(PROCINFO[\"pid\"]); print int(rand() * 87)}"
11
$awk "BEGIN { srand(PROCINFO[\"pid\"]); print int(rand() * 87)}"
11
$awk "BEGIN { srand(PROCINFO[\"pid\"]); print int(rand() * 87)}"
11
[...]

Comment avoir un nombre different a chaque fois s'il vous plait ?
Merci.
--
RKTMB - http://www.rktmb.org/Members/mihamina
Tél: + 33 2 38 76 43 65 (France)
Membre d'un L.U.G. à Orléans (Université)

3 réponses

Avatar
Pascal Bourguignon
Rakotomandimby Mihamina writes:

Bonjour,
J'essaie de generer un monbre aleatoire inferieur a 87:
trois fois de suite, et meme si je relance encore et encore, ca donne
toujours le meme nombre.
Sauriez-vous pourquoi ?

[...]
$awk "BEGIN { srand(PROCINFO["pid"]); print int(rand() * 87)}"
11
$awk "BEGIN { srand(PROCINFO["pid"]); print int(rand() * 87)}"
11
$awk "BEGIN { srand(PROCINFO["pid"]); print int(rand() * 87)}"
11
[...]

Comment avoir un nombre different a chaque fois s'il vous plait ?
Merci.


Chez moi, ça marche, j'obtiens des nombres différents.

$ awk --version|head -1
GNU Awk 3.1.1

--
__Pascal Bourguignon__ http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.

Avatar
Rakotomandimby Mihamina
Apparemment sur ce systeme (Debian testing) PROCINFO["pid"] et
PROCINFO["ppid"] ne contiennent rien. C'est la raison pour laquelle
c'est toujours la meme chose.
Il me faut trouver un vrai truc qui varie tout le temps.

Et en lisant plus profondément la Doc, POSIX awk et gawk different sur
ce point, en sachant que POSIX awk (non gawk) ne connait pas PROCINFO,
mais gawk, si. C'est donc que je n'avait pas gawk.

Je pensais avoir gawk parceque c'etait une Debian, et que je pensais que
les GNU* etaient systematiques ... Comme quoi... Donc finalement il a
suffit d'installer gawk et d'appeler gawk au lieu de awk.
--
RKTMB - http://www.rktmb.org/Members/mihamina
Tél: + 33 2 38 76 43 65 (France)
Membre d'un L.U.G. à Orléans (Université)
Avatar
DIG
Bonjour,

On Sat, 21 Aug 2004 15:02:06 +0200, wrote:

[...]

Comment avoir un nombre different a chaque fois s'il vous plait ?
Merci.


Ils sont differents:

,---[ ]---
| :~$ awk --version|head -1
| GNU Awk 3.1.3
| :~$ awk "BEGIN { srand(PROCINFO["pid"]); print int(rand() * 87)}"
| 14
| :~$ awk "BEGIN { srand(PROCINFO["pid"]); print int(rand() * 87)}"
| 3
| :~$ awk "BEGIN { srand(PROCINFO["pid"]); print int(rand() * 87)}"
| 73
`---[ ]---


Best regards,

--
DIG (Dmitri I GOULIAEV)
Aahz's law: The best way to get information on usenet is
not to ask a question, but to post the wrong information.