Bonsoir ,
je vous propose l'exercice suivant .... pas forcement simple :
On dispose d'une grille de format 4x4 , chaque case de cette grille contient un objet . Le jeu est le suivant : je choisi une case au hasard
je prélève dedans un objet et un seul ( si bien sur celle ci n'est pas vide, si la case est vide je porte mon choix sur une autre case ) et je place l'objet dans une autre case choisie au hasard , je peux toujours porter mon choix sur une case déja utilisée .
Si je decide faire cette manipulation 7 fois , quelle sera en moyenne le plus grand nombre d'objets que je pourrai trouver dans une des cases
Salut dpi,
Tu raisonnes comme si tous les cas étaient équiprobables ... mais c'est faux.
Je montre pas un exemple simplissime :
On prend un jeu avec seulement 2 cases, selon toi, au final, il y aurait 3 possibilités finales (après les 7 coups) qui seraient :
02, 20,11 ...
En partant de 11 (et en suivant les règles imposées par l'énoncé).
au coup n°1, on a forcément 02 (ou 20)
au coup n°2, on a forcément 11
au coup n°3, on a forcément 02 (ou 20)
au coup n°4, on a forcément 11
au coup n°5, on a forcément 02 (ou 20)
au coup n°6, on a forcément 11
au coup n°7, on a forcément 02 (ou 20)
Donc on n'a jamais 11 au final ... ce qui montre que toutes les solutions d'arrivée ne sont pas équiprobables et donc on ne peut pas calculer des moyennes en les considérant comme équiprobables ... ce que tu fais.
C'est évidemment plus difficile de le comprendre en partant de 16 cases (ou 4 ou ...) mais c'est cependant la même chose.
Les cas possibles en fin de parties ne sont pas équiprobables ... et on ne peut pas calculer alors comme tu le fais.
Mais ce n'est que mon avis.
Bonsoir,
Sub plus_grand_nombre()
Dim u() As Variant
Randomize
e = 0
Do
e = e + 1
ReDim u(15)
For i = 0 To UBound(u)
u(i) = 1
Next
k = 0
Do
k = k + 1
recom:
rg = Int(Rnd * (UBound(u) + 1))
If u(rg) <> 0 Then
u(rg) = u(rg) - 1
rg = Int(Rnd * (UBound(u) + 1))
u(rg) = u(rg) + 1
Else
GoTo recom
End If
Loop Until k = 7
q = q + Application.Max(tri_t(u))
Erase u
Loop Until e = 100000
MsgBox q / e ' retourne 2,63
End Sub
Function tri_t(t() As Variant) As Variant
For i = 0 To UBound(t) - 1
For j = i + 1 To UBound(t)
If t(i) > t(j) Then
a = t(i)
b = t(j)
t(i) = b
t(j) = a
End If
Next
Next
tri_t = t
End Function
Rebonjour,
Distraction dans un "for" de mon programme que voici corrigé ...
mais cela accentue encore la différence avec la réponse de verdurin... je ne sais pas d'où vient cette différence.
Bonsoir candide2, j'y connais rien en python mais est ce que cela ne vient pas de for i in range(0,16): ?
Je pense que je faisais une boucle de trop ...
ceci corrigé donne :
import random
maxi = 0
maxim = 0
for j in range (0,100000):
maxi = 0
cmpt = 0
liste1 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
while cmpt < 7:
d = random.randint(0,15)
if liste1[d] != 0:
liste1[d] = liste1[d]-1
e = random.randint(0,15)
liste1[e] = liste1[e]+1
cmpt = cmpt+1
for i in range (0,16):
if liste1[i] > maxi:
maxi = liste1[i]
maxim = maxim + maxi
print (maxim/100000)
candide2 je crois que ton code est indenté avec des tabulations, ce qui le rend difficile à lire sur ce site.
En remplaçant les tabulations par quatre espaces on obtient çà
maxi = 0
maxim = 0
for j in range (0,100000):
maxi = 0
cmpt = 0
liste1 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
while cmpt < 7:
d = random.randint(0,15)
if liste1[d] != 0:
liste1[d] = liste1[d]-1
e = random.randint(0,15)
liste1[e] = liste1[e]+1
cmpt = cmpt+1
for i in range (0,16):
if liste1[i] > maxi:
maxi = liste1[i]
maxim = maxim + maxi
print (maxim/100000)
Je pense qu'il n' est plus utile de blanker...
Ce jeu est soit un jeu de hasard et la réponse ce situe autour de 2.6
soit un jeu de stratégie:
*stratégie minorante 1111 2101 1111 2101 1111 2101 1111
ou permutations équivalentes.
moyenne des maxis 10/7 = 1.4285.
*stratégie majorantes 1111 2101 3001 4000 3001 4000 3001
ou permutations équivalentes
moyenne des maxis 20/7 = 2.857
on observe que les deux coups du début sont les mêmes.
Ce qui sera toujours le cas
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :