Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

liste aleatoire

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Séquences, listes, ensembles, tables ou tableaux...
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
nancy



Inscrit le: 24 Nov 2006
Messages: 3

MessagePosté le: 24 Nov 2006 14:05    Sujet du message: liste aleatoire Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 24 Nov 2006 14:31    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
nancy



Inscrit le: 24 Nov 2006
Messages: 3

MessagePosté le: 28 Nov 2006 14:19    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 28 Nov 2006 15:23    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Séquences, listes, ensembles, tables ou tableaux... Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
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


phpBB

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.