Perl choisir un nbre ou mot en aleatoire
Fermé
snufx
Messages postés
6
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
14 février 2009
-
17 mai 2007 à 11:40
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 18 mai 2007 à 13:05
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 18 mai 2007 à 13:05
A voir également:
- Perl choisir un nbre ou mot en aleatoire
- Piratage facebook changer mot de passe - Guide
- Mettre un mot de passe sur un dossier - Guide
- Voir mot de passe wifi android - Guide
- Mot de passe administrateur - Guide
- Comment réinitialiser un pc sans mot de passe - Guide
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
17 mai 2007 à 16:08
17 mai 2007 à 16:08
Salut,
ça te va comme ça?
Le script
ça te va comme ça?
Le script
~/trash/vider$ cat ccm.pl #!/usr/bin/perl; use strict; my @cle = (1,3,5,6,8,10); my @cle1 = 1..100; my @cle_aleatoire = map { rand @cle } @cle; my @cle1_aleatoire = map { rand @cle1 } @cle1; map { s/\..*// } @cle_aleatoire,@cle1_aleatoire; print "$cle_aleatoire[0]\n"; print "$cle1_aleatoire[0]\n"; print "@cle_aleatoire\n"; print "@cle1_aleatoire\n";Le résultat
~/trash/vider$ perl ccm.pl 4 95 4 2 2 5 1 5 95 72 95 17 99 18 36 25 8 35 78 12 71 40 90 73 52 14 38 72 43 63 31 84 46 76 30 46 55 44 48 60 87 41 37 60 67 66 75 44 33 38 53 72 73 2 90 49 77 2 52 3 36 65 15 19 54 36 67 31 89 4 71 16 8 99 20 99 80 51 12 27 64 33 57 59 28 68 67 97 35 65 25 92 22 10 94 5 74 77 42 65 34 66 17 79 76 85 65 78 ~/trash/vider$ perl ccm.pl 4 66 4 0 3 1 0 1 66 77 1 22 64 53 88 76 64 22 39 21 50 27 33 38 56 51 23 91 0 3 70 91 66 7 39 73 36 59 64 75 58 34 9 91 4 79 94 30 50 38 43 62 16 19 24 81 21 97 99 88 19 65 97 59 45 17 34 0 26 35 62 36 95 41 24 28 91 29 95 99 39 68 74 98 1 88 19 32 88 75 80 7 2 59 38 49 69 83 76 41 42 43 62 66 64 44 90 75 ~/trash/vider$ perl ccm.pl 2 28 2 5 2 5 5 4 28 69 22 58 62 40 85 25 81 41 23 35 21 22 12 94 57 1 61 39 87 3 51 69 62 61 33 55 77 6 91 26 92 44 91 60 78 88 16 21 88 21 21 65 37 42 8 74 7 8 39 55 6 18 93 98 46 57 20 20 77 7 56 84 54 5 8 20 78 7 66 35 70 70 46 16 17 8 28 40 34 64 82 1 86 23 74 27 50 88 89 91 4 25 70 77 33 68 9 34 ~/trash/vider$ perl ccm.pl 2 65 2 4 2 3 3 1 65 40 64 85 98 55 18 6 25 59 63 25 34 78 4 42 51 73 71 45 86 61 86 82 73 18 96 0 11 93 29 2 74 44 29 34 79 12 16 92 99 92 55 65 6 95 65 19 54 23 46 43 14 31 59 10 37 96 65 63 60 42 25 62 33 93 21 5 3 56 92 79 3 56 30 96 86 81 60 23 30 31 15 60 63 86 72 23 82 48 2 98 32 76 90 7 47 32 12 63 ~/trash/vider$ perl ccm.pl 0 50 0 5 1 1 4 3 50 46 10 28 2 65 35 4 73 44 82 94 87 7 5 84 23 56 99 74 65 31 94 86 85 3 34 76 44 86 13 50 81 69 23 60 63 26 36 48 92 58 8 38 27 11 37 97 48 69 28 35 41 67 14 77 13 4 13 68 87 79 36 49 22 97 86 36 15 99 41 81 86 27 60 98 29 35 27 53 11 14 43 25 80 21 15 97 37 25 8 49 54 63 90 45 1 94 54 79
snufx
Messages postés
6
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
14 février 2009
18 mai 2007 à 12:05
18 mai 2007 à 12:05
grand merci lami20j pour ta reponse
Mais une chose m'intrigue pourquoi je n'obtiens pas que les valeurs contenues dans le tableau @cle?
Les valeurs 2,0 s'affiche alors quel ne devrait pas.
Mais une chose m'intrigue pourquoi je n'obtiens pas que les valeurs contenues dans le tableau @cle?
Les valeurs 2,0 s'affiche alors quel ne devrait pas.
snufx
Messages postés
6
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
14 février 2009
18 mai 2007 à 12:34
18 mai 2007 à 12:34
he he une solution qui a l'air de marcher et beaucoup me plaire.Bien que je remercie lami20j et tous les autres pour leur reponse rapide malgre la diversite des questions.
my @values1 = (1,3,5,6,8,10);
for (1) {
#for (1..5) {
print "tirage aléatoire: ", $values1[rand @values1], "\n";
}
et avec du texte se serait plus ca
my @values = qw(robert roger anatole);
print "bonjour ", $values[rand @values], "\n";
my @values1 = (1,3,5,6,8,10);
for (1) {
#for (1..5) {
print "tirage aléatoire: ", $values1[rand @values1], "\n";
}
et avec du texte se serait plus ca
my @values = qw(robert roger anatole);
print "bonjour ", $values[rand @values], "\n";
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
18 mai 2007 à 13:05
18 mai 2007 à 13:05
Ben,
en revanche avec la fonction que j'ai écrit le tableau et bien melanger
il ne te reste qu'à afficher le 1er élément après chaque tirage
j'ai pris ton script comme point de départ et pas ce que tu veux en fait ("Un tirage aléatoire")
j'espère que tu as compirs pourquoi $cle[ rand @cle] te donne le bon résultat :-))
en revanche avec la fonction que j'ai écrit le tableau et bien melanger
il ne te reste qu'à afficher le 1er élément après chaque tirage
j'ai pris ton script comme point de départ et pas ce que tu veux en fait ("Un tirage aléatoire")
j'espère que tu as compirs pourquoi $cle[ rand @cle] te donne le bon résultat :-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
18 mai 2007 à 12:54
18 mai 2007 à 12:54
Salut,
en fait le résultat c'est bon
en revanche ce n'est pas ça que tu veux ou j'ai mal compris :-))
je suppose que tu veux tout simplement melanger les éléments de tes tableaux
tu dois écrire quelque chose comme ça
en fait le résultat c'est bon
en revanche ce n'est pas ça que tu veux ou j'ai mal compris :-))
je suppose que tu veux tout simplement melanger les éléments de tes tableaux
tu dois écrire quelque chose comme ça
#!/usr/bin/perl; use strict; my @cle = (1,3,5,6,8,10); melanger(\@cle_alea); sub melanger{ my $tmp = shift; for(my $i = @$tmp;--$i;){ my $j = int rand ($i + 1); @$tmp[$i,$j] = @$tmp[$j,$i]; } } print "@cle_alea\n";