 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
nancy
Inscrit le: 24 Nov 2006 Messages: 3
|
Posté le: 24 Nov 2006 14:05 Sujet du message: liste aleatoire |
|
|
bonjour, je dois écrire un programme et j'ai besoin de créer une fonction qui prend un couple(l,N) et qui renvoie une liste de l entiers compris entre 1 et N, triée dans l'ordre croissant.
Si vous avez la solution merci! |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 24 Nov 2006 14:31 Sujet du message: |
|
|
Bonjour, la procédure tri trie une liste de nombres dans l'ordre croissant (il s'agit d'un tri à bulles ou Bubblesort en anglais).
La fonction hasard() ira calculer des nombres aléatoires entre 1 et N.
La procédure liste_aleatoire calcule une séquence L de l nombres aléatoires entre 1 et N. La liste [L] ainsi obtenue est ensuite triée.
Code: |
> liste_aleatoire:=proc(l::posint,N::posint)
> local tri,hasard,k,L;
>
> tri:=proc(L::list(numeric))
> local x,y,Z;
> Z:=L;
> for x to nops(Z)-1 do
> for y from x+1 to nops(Z) do
> if evalf(Z[y]-Z[x])<0 then Z:=subsop(x=Z[y],y=Z[x],Z) end if;
> end do;
> end do;
> Z;
> end proc:
>
> hasard:=rand(1..N):
> L:=NULL:
> for k to l do
> L:=L,hasard()
> end do;
> tri([L])
> end proc:
> liste_aleatoire(20,10);
[1, 1, 2, 2, 2, 4, 4, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10]
|
A+ |
|
Revenir en haut de page |
|
 |
nancy
Inscrit le: 24 Nov 2006 Messages: 3
|
Posté le: 28 Nov 2006 14:19 Sujet du message: |
|
|
Merci du fond du coeur c'est epatant! je suis desolée d'abuser mais n'y a t-il pas un autre moyen en utilisant sort? |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 28 Nov 2006 15:23 Sujet du message: |
|
|
Bonjour, si, vous pouvez remplacer tri([L]) par sort([L],`<`) et le tour est joué:
Code: |
liste_aleatoire := proc (l::posint, N::posint)
local hasard, k, L;
hasard := rand(1 .. N);
L := NULL;
for k to l do L := L, hasard() end do;
sort([L], `<`)
end proc;
liste_aleatoire(20, 10);
[1, 2, 2, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 8, 8, 8, 9, 10, 10, 10]
|
|
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - ©
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|