Trouver le maximum de plusieurs variables, ordonner

Accueil Forums Programmation WIMS Programmation d’exercices OEF Trouver le maximum de plusieurs variables, ordonner

Ce sujet a 5 réponses, 2 participants et a été mis à jour par  Joël, il y a 7 mois et 3 semaines.

  • Auteur
    Messages
  • #3637

    Joël
    Participant

    Bonjour,

    Après plusieurs essais infructueux avec la fonction max, j’ai relu la doc pour me rendre compte que la fonction max ne cherche le maximum que de deux nombres.

    C’est un peu dommage, j’ai donc une petite routine:

    \matrix{datas=\a,\b,\c,\d}
    \real{maxi=\datas[1;1]}
    \integer{nb=items(\datas)}
    \for{j=2 to \nb}{
    \real{maxi=max(\maxi,\datas[1;\j])}

    Y aurait-il une solution plus compacte, une slib existante que je n’aurais pas vu, ou la possibilité d’implémenter ce code dans les slib, ou dans créer un qui ordonnerait la matrice ligne dans le sens croissant.

    Merci.

    • Ce sujet a été modifié le il y a 7 mois et 3 semaines par  Joël.
  • #3641

    bernadette
    Admin bbPress

    En effet je fais cela avec pari

    \matrix{datas=pari([\a,\b,\c,\d])}

    \text{datas=pari(vecmax([\a,\b,\c,\d]))}
    dans ce cas suffit.

    ?vecmax
    vecmax(x,{&v}): largest entry in the vector/matrix x. If v is present, set it
    to the index of a largest entry (indirect max).

    Je n’ai pas testé, j’espère ne pas avoir oublié de parenthèses !

  • #3645

    Joël
    Participant

    Merci, je n’avais pas encore utilisé pari, ça marche impeccable.

    Est-il possible de mettre ce genre d’astuce dans l’aide?

    • Cette réponse a été modifiée le il y a 7 mois et 3 semaines par  Joël.
    • Cette réponse a été modifiée le il y a 7 mois et 3 semaines par  Joël.
  • #3651

    bernadette
    Admin bbPress

    Dans la classe ouverte de développement, il y a un pdf d’introduction à GP/Pari
    qui doit parler de ce genre de choses (je l’ai écrit il y a très longtemps).

    L’avantage de Pari/GP (dont on n’utilise pas les possibilités bien sûr, puisque c’est un logiciel de théorie des nombres) est qu’il est très rapide au démarage,
    contrairement à d’autres, ce qui est important dans wims …
    et que les développeurs s’intéressent à la marge à wims, en particulier des
    questions de rétrocompatibilité …

    Bernadette

  • #3654

    bernadette
    Admin bbPress

    En restant dans wims, on pourrait aussi faire

    \text{datas=wims(sort numeric items 4,6,3,5)}
    \text{max=\datas[-1]}

    On peut aussi utiliser cela pour des mots !

    \text{data=wims(sort items toto,tata,titi,tutu)}
    \text{s=\data[-1]}
    • Cette réponse a été modifiée le il y a 7 mois et 3 semaines par  bernadette.
  • #3668

    Joël
    Participant

    Merci pour cette autre approche effectivement renseignée dans l’aide technique.

Vous devez être connecté pour répondre à ce sujet.