Correspondance de deux nombres aléatoires

Bonjour,

Voici mon problème : J'ai une première cellule avec un nombre choisit aléatoirement entre 1 et 100. Je tire un second nombre aléatoirement entre 1 et 100 et :

  • Soit il est égal au premier, dans ce cas je m'arrête là.
  • Soit il est différent, dans ce cas je comptabilise "1" et je tire un autre nombre. On revient alors à la situation précédente : il est égal au premier, on s'arrête ; il est différent, on comptabilise et on relance.

La seule solution que j'ai trouvée pour l'instant (je ne sais pas si c'est la meilleure), c'est de faire une longue liste de nombres aléatoires entre 1 et 100 puis de regarder le numéro de ligne où apparait pour la première fois le nombre que j'ai choisi initiallement. En théorie ça devrait marcher mais je n'arrive pas à le mettre en pratique (c'est peut-être évident mais je ne suis encore qu'un débutant sous Excel).

Merci d'avance pour votre aide !

A+

Salut,

Peux-tu joindre un bout de fichier stp ?

Ce sera plus clair pour tout le monde et tu as plus de chances d'obtenir de l'aide....

A+

Souri84

Bonjour,

Petite question pour les amateurs... les deux nombres changent à chaque fois, ou seulement le deuxième, avec le premier "figé" ?

Cordialement,

V_Elbie

Bonjour

Tu veux compter quoi exactement?

Cordialement

Hello,

Je m'aperçois que j'ai pas été super clair dans mon premier message, j'ai donc fait un petit fichier explicatif comme l'a suggéré souri84.

Pour répondre à V_Elbie : c'est seulement le second nombre qui change, le premier, comme tu dit, reste "figé"

Amadéus : Je veux compter le nombre de tirages nécessaires pour que le second nombre soit égal au premier.

Voici le fichier, avec des explications plus détaillées :

https://www.excel-pratique.com/~files/doc/CorrespAlea.xls

Merci d'avance !

Bonjour tous,

Un petit code vite fait pour faire tes simulations.

Je pars sur une autre optique parce que j'aime pas trop ton principe de remplir toutes ces lignes...

Le code :

Sub Tirage()
Dim n As Double

Range("A1").FormulaR1C1 = "=ROUND(RAND()*100,0)"
Range("A1") = Range("A1")
n = 0
test:
Range("A2").FormulaR1C1 = "=ROUND(RAND()*100,0)"
n = n + 1
If Not Range("A2") = Range("A1") Then
GoTo test
End If
MsgBox "Il a fallu " & n & " tirages pour avoir 2 nombres correspondants"
End Sub

J'espère que les formules vont passer (j'ai pas compris pourquoi les tiennes étaient en anglais ??) Sinon essaye de modifier pour que ça marche, mais chez moi ça fonctionne.

Ensuite si tu as des idées pour améliorer (stocker les résultats au fur et à mesure pour tracer des courbes...) tu peux revenir

Bonjour

Peut-être ai-je compris différemment...

https://www.excel-pratique.com/~files/doc/Alea.xls

Cordialement

hello

ROUND(RAND()*100,0) va renvoyer des nombres entre 0 et 99 , non ?

si oui, il suffit d'ajouter 1

(mais ça ne change rait rien à la question de départ, vu que A1 et A2 sont calculés selon le même principe. C'eest juste pour respecter l'intervalle 1:100 )

tu fais une simulation du genre : dans un groupe de personnes (de 1 à 100 ans) quelles sont les chances d'avoir 2 personnes de même âge ?

Mais je pense que non, car le problème n'est pas identique

17classeur2.xlsx (18.56 Ko)

Salut le forum

Une autre méthode sans Goto

Sub Tirage()
Dim Nbre1 As Byte
Dim Nbre As Integer

Randomize

Nbre = 0
Nbre1 = Int(Rnd() * 100) + 1

    Do
      Nbre = Nbre + 1
    Loop Until Nbre1 = Int(Rnd() * 100) + 1
MsgBox "Il a fallu " & Nbre & " tirages pour avoir 2 nombres correspondants"
End Sub

Mytå

Re le forum

Pour avoir une moyenne

Sub Tirage()
Dim Nbre1 As Byte
Dim Nbre As Integer
Dim I As Byte
Dim Total As Double

Randomize

Total = 0

For I = 1 To InputBox("Nombre de tirage (max=254)")
Nbre = 0
Nbre1 = Int(Rnd() * 100) + 1

    Do
      Nbre = Nbre + 1
    Loop Until Nbre1 = Int(Rnd() * 100) + 1
    Total = Total + Nbre
Next I
MsgBox "La moyenne est de " & Format(Total / I - 1, "0.00") & " pour " & I - 1 & " tirages."
End Sub

Mytå

Hello

Que de réponses ! Ca fait vraiment plaisir de voir une communauté aussi sympa et réactive !

Pour en revenir à mon problème : j'imagine que la solution à laquelle j'avais pensé vous a parue un peu stupide, mais c'est simplement parce que je n'ai presque aucune connaissances avec Excel et VisualBasic et je n'avais pas osé me lancer là-dedans.

La première solution proposée (celle de Sylvain) a parfaitement fonctionnée et m'a permit de résoudre mon problème. Je suis désolé de ne pas faire honneur aux propositions d'Amadéus, de jmd et de Mytå (que je remercie quand même évidemment), mais Sylvain a été le plus rapide .

Pour répondre à jmd : je voulais répondre à un problème qui vous paraîtra sûrement bizarre mais que je me pose à chaque fois que j'allume mon lecteur MP3 et que je veux écouter une certraine chanson : Quel est le plus rapide : rester en mode "normal" en passant les chansons dans l'ordre croissant, passer en mode aléatoire et croiser les doigts pour tomber sur la bonne chanson (c'est là que votre aide m'a été utile) ou combiner les deux, c'est-à-dire passer en mode aléatoire et atteindre une chanson assez proche de celle que l'on veut puis repasser en mode normal (là aussi votre aide m'a été utile) ?

Et voici donc la réponse pour ceux qui se posent la question (s'il y'en a) : si le nombre total de chansons est inférieur à 50, le mode "normal" est le plus rapide. En revanche s'il y a plus de 50 chansons, le mode "combinatoire" est le plus rapide. Il faut aussi préciser (histoire d'être précis) qu'avec le mode "combinatoire", le plus rapide est d'attendre de tomber sur une chanson dont le numéro est celui de la chanson désirée plus ou moins 3% du nombre total de chansons.

Voilà voilà, maintenant je saurais quoi faire en allumant mon lecteur MP3, et ce grâce à vous

Merci beaucoup à tous donc.

Salut le forum

_Bill_ tu parlais de moyenne, et la seule ficelle qui en tenait compte, c'était la mienne.

Mytå (Avec un décalage de GMT-5)

Salut,

En effet, tu étais le seul membre à parler de moyenne, mais je n'avais pas encore lu ton message alors que j'avais déjà calculé la moyenne par mes propres moyens.

J'ai l'impression que tu as mal pris mon message précédent, mais je n'avais auune volontée d'être méchant

Merci beaucoup pour ta contribution

Bill

Rechercher des sujets similaires à "correspondance deux nombres aleatoires"