FLISZT a écrit : ↑26 avr. 2022 20:00Ce qui me surprend est qu'il n'y a pas de test (ni donc,
a priori, de recherche de la note maxi des n premières secrétaires non retenues).
C'est effectivement le plus surprenant: pas de test, ni de liste.
Mais je suis scrupuleusement la demande initiale:
Schraf a écrit : ↑10 avr. 2022 20:08
Pour ce MPO, vous aurez en
valeur d'entrée uniquement le
nombre N de secrétaires qui viennent postuler pour le poste.
C'est l'unique argument que prend mon programme.
Schraf a écrit : ↑10 avr. 2022 20:08
Leurs qualités seront des nombres entre 0 et 1 (exclus) tirés aléatoirement par la machine au moment de l'entretien (donc inutile de les mémoriser quelque part avant de lancer votre programme)
Donc, inutile de créer une liste ou de mettre quoique ce soit en mémoire.
Schraf a écrit : ↑10 avr. 2022 20:08La calculatrice
affichera le numéro (entre 1 et N) de la secrétaire retenue
ainsi que sa qualité.
C'est ce à quoi sert l'instruction R→C finale.
Sinon, "
les n premières non retenues(sic)" sont dans mon code ce qui est quantifié par la variable locale
s. Celle ci est déduite de la valeur d'entrée
n c'est à dire le
nombre N de secrétaires qui viennent postuler pour le poste. Le calcul exacte est « DUP 1 EXP / CEIL »
La note maximale des
s premières secrétaires non retenues est déterminée sans test, comme le suggère
Schraf à la fin de sa vidéo ; cette note maximale est calculée directement par la séquence : « RAND s INV ^ »
Quant au numéro d'ordre de l'heureuse candidate, il est tiré aléatoirement par la séquence « n s n - RAND * + CEIL ». Je conviens volontiers que cela puisse un peu surprendre. Au lieu de faire une boucle tirant
(n-s) scores aléatoires, je ne tire qu'un seul nombre pseudo-aléatoire qui donnera le numéro d'ordre nécessairement aléatoire du score maximal. Ce qui me semble très sensé vu que l'exercice d'un MPO demande à en faire le moins possible afin de miser petit et optimiser !
J'aime le MPO, c'est un truc au poil pour un paresseux comme moi ...
Mais, je dois avouer que je ne suis pas arrivé à cette solution immédiatement. En fait, mes premiers codes ne tiraient pas aléatoirement les scores, je trouvais plus amusant de dérouler l'algorithme sur une série préétablie de tirages afin de voir comment mes codes se plantaient avec la plupart des exemples en choisissant un râteau ...