Nombres aléatoires

D

dtth_2003

Guest
Bonjour, je ne suis pas vraimment un spécialiste d'Excel, juste les bases. Mais voici mon problème. J'aimerais générer 3 nombres aléatoires différents compris entre 1 et 16. La fonction ALEA ne me permet pas de faire trouver 3 différents.

Merci pour votre aide.
 
A

andré

Guest
Salut dtth 2003,

C'est la formule : =ALEA.ENTRE.BORNES(1;16) que tu place dans trois cellules qui te donnera 3 nombres aléatoires entre 1 et 16.

Petites précisions :
Ces nombres changent à chaque calcul dans la feuille.
Je ne sais pas si cette fonction fait partie des macros complémentaires d'XL, il est toujouss bon d'activer cet outils (sous le Menu Outils)

Ândré
 
D

dth_2003

Guest
Merci pour la réponse, malheureusement cette fonction ne me donne pas pas 3 nombres différents, j'ai très fréquement deux les mêmes et parfois les trois les mêmes.

Avez vous une solution?

Merci
 
T

Ti

Guest
voilà une solution passant par une macro, que j'avais faite il y a quelque temps suite à une question semblable. Elle ne renvoie aucun doublon et leur nombre et leurs valeurs mini et maxi peuvent être fixées à la demande.
 

Pièces jointes

  • aleatoireTi.zip
    16 KB · Affichages: 53
J

jp

Guest
Bonjour dth 2003, Bonjour André,

dth 2003, ta réponse m'a intriguée et voila plus de cinq minutes que je fais des essais, séparés, ou en série (les trois en même temps), je n'ai eu que deux fois deux valeurs semblables, sinon jamais les mêmes.

Comme te le dira, sans aucun doute, André, il s'agit de nombres aléatoires
et 3 sur 16 cela peut être vite revenu...

Je vous souhaite à tous un bon week-end,

jp
 
A

andré

Guest
Salut à tous,

J'en suis arrivé à la même conclusion que Ti : il n'y a moyen de supprimer les doublons que par macro.
J'avais bien une autre solution, mais qui n'en est pas une parce que pas tout à fait aléatoire : trois fonctions dont les bornes sont (1;5); (6;10) et (11;16).
Dommage, mais il n'y a pas moyen (à ma connaisance) d'écrire une formule qui pourrait donner deux résultats différents.

Ândré.
 
D

dth_2003

Guest
Dites, je viens de trouver une macro qui s'appelle "alea_entiers_distincts", avec un exemple que voici (voir zip), dans les exemples du concepteur pas de problème, les nombres sont toujours différents mêmes avec des chiffres allant de 1 à 10. Mais dès que j'essaye de l'appliquer moi-même dans une autre cellule, j'ai de nouveau des doublons???? L'un d'entre vous pourrait-il me dire ce que je fais de travers??

Merci encore.
 

Pièces jointes

  • fonction_alea_entiers_distincts.xls
    29 KB · Affichages: 105
A

andré

Guest
Resalut,

Cette fonction est une macro, alors d'employer celle de Ti.

J'ai essayé par formules, et j'y suis "presque" arrivé.
"Presque" parce que la possibilité de doublons subsiste, mais est infime.

En A1, A2 et A3 : = ALEA.ENTRE.BORNES(1;16)
En B1 : rien (vide)
En B2 : =SI(NB.SI(A$1:A$3;A2)>1;ALEA.ENTRE.BORNES(1;16);"")
En B3 : =SI(NB.SI(A$1:A$3;A3)>1;ALEA.ENTRE.BORNES(1;16);"")
En C1 : =A1
En C2 : =SI(B2="";A2;B2)
En C3 : =SI(B3="";A3;B3)

J'ai testé une centaine de fois, jamais je n'ai eu de doublons, mais théoriquement la possibilité existe.

Ândré.
 
D

dth_2003

Guest
Merci a tous de votre aide. Et surtout d'avoir trouvé une solution et même plusieurs. Je travaille également sur autre chose actuellement et l'aide de spécialiste me sera surement d'un grand secour alors a bientôt.

dth
 
L

LaurentTBT

Guest
Bonsoir à tous.

Une petite idée que j'arrive à mettre en forme pour 2 nombres aléatoires. Pour 3, je réfléchis dans la même optique, ça viendra peut-être plus tard.

Le premier en A1= ALEA.ENTRE.BORNES(1;16)

Le deuxième A2=si(A1=1;ALEA.ENTRE.BORNES(2;16);si(A1=16;ALEA.ENTRE.BORNES(1,15);si(ALEA.ENTRE.BORNES(1,2)=1;ALEA.ENTRE.BORNES(1,A1-1);ALEA.ENTRE.BORNES(A1+1,16))))

Je ne sais pas si c'est rigoureux au sens du hasard. En FAIT, je décompose l'intervalle [1,16] en deux intervalles dont la limite est le premier nombre trouvé, ensuite je choisis au hasard un nombre dans chacun de ces intervalles, et je choisis au hasard parmi les 2 nombres trouvés.

Pour le troisième, cela commence à faire beaucoup de conditions particulières à tester: si 1 et 2 ont été choisis, si 15 et 16 ont été choisis, si 1 et 16 ont été choisis dans ces trois cas, il reste à choisir dans un seul intervalle, si 1 ou 16 on été choisis, il faut choisir dans 2 intervalles. Enfin, dans le cas général, il faudra choisir dans 3 intervalles.

Je suis en train de réfléchir à l'agencement des SI qui permettra la formule la plus simple. (Ou plutôt, je verrai cela demain: la nuit porte conseil).
A moins que vous ne jugiez que je suis sur une fausse piste.

Allez, bonne nuit à tous, et ne vous faites pas trop de noeuds au cervau avec mes formules!

Laurent.
 
T

Ti

Guest
Voici une nouvelle fonction hybride, il s'agit d'une fonction VBA directement utilisable dans une cellule Excel, qui permet de renvoyer des valeurs aléatoires sans doublons, donc sans passer par un bouton pour les générer.
Voir détails dans le fichier joint.
 

Pièces jointes

  • AleaSansDoublons.zip
    7.6 KB · Affichages: 61
  • AleaSansDoublons.zip
    7.6 KB · Affichages: 62
  • AleaSansDoublons.zip
    7.6 KB · Affichages: 58
D

dth_2003

Guest
Bonjour Ti et vous tous,

J'aime beaucoup ta macro Ti, une question seulement : Quel est la limite des valeurs dont je peut tenir compte? je m'explique : dans la macro "aleasansdoublons(1;16;A4;A5;A6;A7;.......)" au niveau de points je peux aller jusqu'où?

Grace a vous tous j'ai bien avancer dans ma petite application, et maintenant je la complique un peu. Sachant que chaque semaine, je tire trois numéros différents compris entre 1 et 16, la semaine suivantes il ne peut y avoir (mais ce n'est pas obligatoire) qu'un seul chiffre identique à la semaine précédente.

Je crois que la macro de Ti reponds déjà a cette fonctionnalité, mais si vous avez d'autres idées.

Je vous prévient, je prévois encore de la compliqué un peu mais plus trop.

Merci
 

Discussions similaires

Réponses
1
Affichages
239

Statistiques des forums

Discussions
312 682
Messages
2 090 893
Membres
104 689
dernier inscrit
phlentier