Mathématiques

Question

Bonjour,

Voilà ma question : un groupe de 50 coureurs, portant des dossards numérotés de 1 à 50, participe à une course cycliste qui comprend 10 étapes, et au cours de laquelle aucun abandon n'est constaté.
A la fin de chaque étape, un groupe de 5 coureurs est choisi au hasard pour subir un contrôle antidopage. Ces désignations de 5 coureurs à l'issue de chacune des étapes sont indépendantes. Un même coureur peut donc être contrôlé à l'issue de plusieurs étapes.
Ma 1ère question : à l'issue de chaque étape, combien peut-on former de groupes différents de 5 coureurs ?
Ma 2ème question : écrire un algorithme permettant de déterminer de manière aléatoire un groupe de 5 coureurs qui vont être contrôlés à l'issue de l'étape. Merci de m'aider, c'est urgent.                

1 Réponse

  • Bonjour,
    1) C(5,50)=50*49*48*47*46/(5*4*3*2*1)
    2)
    On forme un tableau des nombres de 1 à 50.
    On effectue 5 fois ceci:
    i est le numéro de l'étape (de l'itération)
    x est un nombre aléatoire entre i et 50
    On permute l'élément d'indice i et l'élément d'indice x
    Les 5 nombres aléatoires sont les 5 premières composantes du tableau.

    Ce qui donne en QB64 (basic)

    CONST nb = 50
    DIM T(nb) AS INTEGER, i AS INTEGER, j AS INTEGER
    RANDOMIZE TIMER
    FOR i = 1 TO nb: T(i) = i: NEXT i
    FOR i = 1 TO 5
        x = INT((nb - i + 1) * RND + i)
        SWAP T(i), T(x)
    NEXT i
    FOR i = 1 TO 5
        PRINT T(i),
    NEXT i
    END

Autres questions