Excel lancé par VBScript Toujours en visible = True ?

ben non tu as 2 chances sur 3 de tirer une boule rouge du sac qui en contient 2 et 1 chance sur 3 d’un tirer une du sac qui en contient 1. Donc si tu tires une boule rouge tu as 2 chances sur 3 que l’autre soit rouge. Si tu n’es pas convaincu, fais un programme de simulation du tirage, tu verras que ce n’est pas 50%.

l'algorithme : tu choisis un des 3 sacs au hasard, tu tires une boule du sac, si elle est rouge tu regardes si l'autre est rouge et tu comptes le nombre de fois que tu as tiré une rouge et tu comptes le nombre de fois que l'autre est rouge et tu fais le rapport nombre de 2ème balle rouge/nombre de première balle rouge.

références

Bonsoir,

Je vous prie de bien vouloir noter que je décline toute responsabilité en cas d'incident mathématique et/ou statistique résultant de cette discussion.

A nouveau,

Ayant lu tardivement la contradiction de h2So4.

@JoyeuxNoel

Une chance sur 2 dans cette discussion. Mais je maintiens que tu avais raison.

Seulement il faut bien lire l'énoncé que je rappelle ci-dessous.

si la boule tirée d'un sac est rouge. Quelle est la probabilité que l'autre soit rouge

Donc que l'autre boule, soit la 2ième boule de ce même sac soit rouge.

Ci après en image.

capttirage

J'ai testé sur 500 cas, vu qu'il était tard. Mais si vous êtes très couche-tard ou bien matinal. J'ai laissé pour M1, 5000 lignes.

Pour ceux qui veulent jouer évidemment.

7classtirage.xlsm (27.19 Ko)

Salut X Cellus,

Donc tu te trouves que dans 2 possibilités. Soit la boule tirée provient du sac RR et avec la chance maximum l'autre boule sorti du sac est rouge, ce qui fait 100%.

2 Possibilités qui ne sont pas équiprobables ! Tu as plus de chance d'avoir tiré le sac avec 2 boules rouges que ceclui à 1 seule boule rouge.

Dans ton code, le problème est que tu ne tires pas aléatoirement la premiere boule du sac. J'ai réalisé quelques modifications:

Sub Tirage()
debut:
S = 1   'On tire toujours le sac 1 (pour pouvoir boucler)
Randomize
X = Int(6 * Rnd(1)) + 1
y = Int(2 * Rnd(1)) + 1
If y = 1 Then
Chx1 = Left(Cells(X, 22 + S), 1)
Chx2 = Right(Cells(X, 22 + S), 1)
Else
Chx1 = Right(Cells(X, 22 + S), 1)
Chx2 = Left(Cells(X, 22 + S), 1)
End If
Chx2 = IIf(Chx2 = "R", "Rouge", "Verte")
If Chx1 = "V" Then
GoTo debut
Else: Range("G12") = "Vous avez tirée une boule rouge": Range("G14") = "la deuxième boule est " & Chx2: Range("L1") = Range("L1") + 1: Cells(Range("L1"), "O") = (Chx2 = "Rouge")
End If
End Sub

Avec ces modifs, sur 5000 tirages j'ai trouvé 66.58% de réussites !

bonjour à tous,

voici mon implémentation de l'algorithme de simulation en vba

Sub aargh()
    Randomize Timer
    Dim sac(3, 2)
    'les sacs
    'sac 1
    sac(1, 1) = "R"
    sac(1, 2) = "V"
    'sac 2
    sac(2, 1) = "V"
    sac(2, 2) = "V"
    'sac 3
    sac(3, 1) = "R"
    sac(3, 2) = "R"
    ' on simule des tirages
    For i = 1 To 10000 '10000 tirages
        t = Application.RandBetween(1, 3) 'on prend un sac au hasard parmi 3
        b1 = Application.RandBetween(1, 2) 'on tire une boule au hasard parmi 2
        If sac(t, b1) = "R" Then
            ctrr = ctrr + 1 'compteur de boules rouges tirées
            If b1 = 1 Then b2 = 2 Else b2 = 1 'on determine quelle est la 2 ème boule qui reste
            If sac(t, b1) = sac(t, b2) Then ctrm = ctrm + 1 'si la deuxième boule est aussi rouge on incrémente le compteur de 2ème boule rouge
        End If
    Next i
    MsgBox "nombre de fois qu'une boule rouge est tirée en premier " & ctrr & vbCrLf & "nombre de fois que la deuxième boule est rouge " & ctrm & vbCrLf & "pourcentage : " & Format(ctrm / ctrr, "0.00%")
End Sub

fichier avec le joli code de Xcellus et avec les contenus des sacs possibles qui correspondent au problème énoncé

9classtirage.xlsm (27.92 Ko)

Bonjour Gabin37, h2So4,

Étant en pose bureau, je n'ai pas trop le temps de prendre vos différents code.

Je les prendrais ce soir à la maison.

Il est toujours intéressant de voir comment vous apporter une réponse.

Mais tel l'énoncé que j'ai repris en image La question de la probalité se pose après la condition si.

Donc tu as en main une boule rouge (déjà tirée donc) et tu poses la probabilité sur la couleur de la 2ème boule du sac.

J'applique strictement l'instant où la probalité suit une condition réalisée. Et si une boule rouge est tirée du sac RV ou VR tu as 0%.

Je suppose au vu de vos codes que vous placez la probabilité plus en amont. Et donc ce n'est plus le même énoncé.

A+

bonjour,

un dernier commentaire et puis j'arrête d'argumenter.

Donc tu as en main une boule rouge (déjà tirée donc) et tu poses la probabilité sur la couleur de la 2ème boule du sac.

limitons les cas à 2 sacs, puisque le 3ème n'est là que pour rendre le problème apparemment plus complexe.

RR RV

j'espère que tu seras d'accord avec moi que si tu tires une boule rouge il y a plus de chance qu'elle provienne du sac qui en contient 2 que du sac qui n'en contient qu'une.

on va appeler les boules r1,r2,r3 et v réparties ainsi r1,r2 et r3,v.

1ème cas tu tires la boule r1 l'autre est r2 (rouge)

2ème cas tu tires la boule r2, l'autre est r1 (rouge)

3eme cas tu tires la boule r3, l'autre est v(verte)

4eme cas tu tires la boule v comme elle n'est pas rouge on ne considère pas ce cas.

tu as donc 2 chances sur trois d'avoir tiré une boule rouge du sac qui contient les 2 boules rouges et donc 2 chance sur 3 que l'autre boule soit rouge.

Le fait d'avoir tiré une boule rouge n'est pas neutre et conditionne la suite. L'amont conditionne donc l'aval

A nouveau et fin,

@h2so4,

Tu te situes en amont et non tel que dans l'énoncé est placée la probabilité.

Si l'on ne prends que deux sacs. Et laissons le sac (V,V)

En amont c'est: Quelle est la probabilité en tirant une première boule d'un sac, pris au hasard entre les deux sacs que la deuxième boule de ce même sac est de la même couleur que la 1ière? Et effectivement là c'est 66%. Car le sac (RV) te fera perdre plus de fois que le sac (RR).

Rechercher des sujets similaires à "lance vbscript visible true"