Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Générateur de nombres aléatoire ?

132 réponses
Avatar
eric.hamery
Générateur de nombres aléatoire ?

j'en cherche un pour le faire fonctionner sur mon iMac... un générateur
avec des options comme le nombre de numeros, de combien a combien...

dans le style : 6 numeros, de 1 a 49...

quelqu'un a une sujestion a me faire ???

merci par avance pour tuyaux...

même payant si il n'est pas trop chere, je cherche quelque chose
d'abouti...


















--
\ / Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://www.meta-science-forum.info/
/ \ <08-D<X=8 - Il doit bien y avoir... http://minilien.fr/a0pn0y
>>>------------------------> La Vie Est Belle <----------------------<<<

10 réponses

Avatar
eric.hamery
Pierre-Alain Dorange wrote:

> Merci pour l'apport de la commande shell jot
> et comme la syntaxe shell est souvent absconse, deux précisions :
> • par défaut le séparateur de tirage est le retour à la ligne
> • pour avoir tous les tirages sur une même ligne, séparés par une
> espace, il faudra écrire
>
> <jot -s " " -r 6 1 49> (sans les chevrons bien sûr)
> Malheureusent, comme dit par Pierre-Alain les répétitions du même nombre
> sont possibles lors de cette commande.

jot fonctionne comme la fonction aléa d'Applescript (elles sont
d'ailleurs probablement basé sur la même fonction de base). Il faut
l'enrobé pour faire un tirage type loto (sans redondance), mais c'est
mathématique faux, puisque dans l'algorythme proposé on peut sortir 2
fois la même boule et on triche en relançant si ça se produit.
Du coup ce n'est pas la simulation réelle de la réalité d'un tirage, au
strict sens mathématique.



juste pour revenir sur le hasard, le hasard a la même valeur que ce soit
de vrai boule comme au loto que ce soit une suite d'un ordinateur, il
n'y en a pas un des deux qui soit plus hasardeux que l'autre...

--
/ Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://www.meta-science-forum.info/
/ <08-D<X=8 - Il doit bien y avoir... http://minilien.fr/a0pn0y
------------------------> La Vie Est Belle <----------------------<<<
Avatar
eric.hamery
Dieu Rê Pur / Pur Rê Méta-Maître et Dieu de l'Extrême
wrote:

Générateur de nombres aléatoire ?

j'en cherche un pour le faire fonctionner sur mon iMac... un générateur
avec des options comme le nombre de numeros, de combien a combien...

dans le style : 6 numeros, de 1 a 49...

quelqu'un a une sujestion a me faire ???

merci par avance pour tuyaux...

même payant si il n'est pas trop chere, je cherche quelque chose
d'abouti...



Fleuger a apporter la solution avec ses logiciel en apple scripte...
merci fleuger...

mais je dis ça :-)

j'aurait besoin d'une autre application une qui fait entre 0 et 77...

tu peux me la faire fleuger ?

ps : super sympas ce mec fleuger :-) MOUARF, je ment pas, je le pense...

--
/ Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://www.meta-science-forum.info/
/ <08-D<X=8 - Il doit bien y avoir... http://minilien.fr/a0pn0y
------------------------> La Vie Est Belle <----------------------<<<
Avatar
michel.vauquois
Joseph-B wrote:

copier-coller le script ci-dessous dans Editeur de Script



Ton avis sur ce script ?
**********
repeat
set nb_num_total to {text returned} of (display dialog "Combien de numéros au total ?" default answer "" buttons {"OK"} default button 1)
set nb_num to {text returned} of (display dialog "Combien de numéros à tirer ?" default answer "" buttons {"OK"} default button 1)
if nb_num ≤ nb_num_total then
set boules to nb_num_total as integer
set tirage to nb_num as integer
set myLoto to {}
repeat tirage times
repeat
set tempNb to random number from 1 to boules
if tempNb is not in myLoto then
copy tempNb to the end of myLoto
-- say tempNb using "thomas"
exit repeat
end if
end repeat
end repeat
myLoto
set text item delimiters to {" ; "}
display dialog myLoto as text buttons {"OK"} default button 1
end if
if nb_num > nb_num_total then
display dialog "Il est impossible de choisir " & nb_num & ¬
" numéros parmi " & nb_num_total & " numéros !" as text buttons {"OK"} default button 1
end if
display dialog "Voulez-vous faire un autre tirage ?" as text buttons {"Annuler", "OK"} default button 2
if {button returned} is "Annuler" then
exit repeat
end if
end repeat
**********
Ne pas hésiter à essayer de tirer 23 numéros différents parmi 9, juste pur voir...
--
Michel Vauquois
Que Dieu vous garde... Moi j'ai pas le temps (RD)
MàJ 2015 : <http://michelvauquois.free-h.fr>
Matière à voir : <http://matiere-a-voir.michelvauquois.free-h.fr>
Avatar
eric.hamery
M.V. wrote:

Joseph-B wrote:

> copier-coller le script ci-dessous dans Editeur de Script

Ton avis sur ce script ?



[snip]

moi ça me va bien ce scripte! je l'ai enregistrer sous "Tirage
Universel.app", il complete les apps de fleuger et je ne l'embeterait
plus pour des application dédier...

Merci... ce fils est fort interessent...
















--
/ Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://www.meta-science-forum.info/
/ <08-D<X=8 - Il doit bien y avoir... http://minilien.fr/a0pn0y
------------------------> La Vie Est Belle <----------------------<<<
Avatar
eric.hamery
Dieu Rê Pur / Pur Rê Méta-Maître et Dieu de l'Extrême
wrote:

M.V. wrote:

> Joseph-B wrote:
>
> > copier-coller le script ci-dessous dans Editeur de Script
>
> Ton avis sur ce script ?

[snip]

moi ça me va bien ce scripte! je l'ai enregistrer sous "Tirage
Universel.app", il complete les apps de fleuger et je ne l'embeterait
plus pour des application dédier...

Merci... ce fils est fort interessent...



je tes tiré une carte message des anges gardiens avec ton script pour le
batisé, la carte qui est sortis est :

27 - Liberté - Essayez de comprendre ce que vous voulez...

<https://www.dropbox.com/s/vr79vu9r3ygisfw/27%20Libert%C3%A9.jpg?dl=0>

bon bein voilà! a toi d'interpréter le message, médite le...




--
/ Mes Services - http://www.metamaitre.com
--o-- Forum "Méta-Science" - http://www.meta-science-forum.info/
/ <08-D<X=8 - Il doit bien y avoir... http://minilien.fr/a0pn0y
------------------------> La Vie Est Belle <----------------------<<<
Avatar
josephb
M.V. wrote:

Ton avis sur ce script ?



Bon début de script, avec gestion d'erreur et tout et tout !
j'ai fait un tirage de 100 parmi 100, ça s'est bien passé
tirage de 1 pour 1 aussi ;-)
tirage de 26 pour 18, refusé !

Toutefois, si le but est de faire des tirages et les comparer, je verrais bien deux "properties" gardant en memoire les valeurs du nombre total de boules et du nombre de
tirages, afin que ça se réaffiche automatiquement plutôt que les resaisir à chaque fois.

L'autre souci c'est qu'il n'est pas prévu qu'un étourdi pourrait rentrer {"quarante-neuf" et "six"} pour les nombres
ou encore un joueur pas motivé {"j' m'enfous" et "j'sais pô"} pour tirer son loto ;-)
Donc il faut gérer ça dès l'attaque du script dans un bloc "try"
L'inconvénient est que en cas d'erreur ça fait sortir en force de l'exécution du script, alors qe le but est de redonner sa chance au joueur.
Donc modifier de telle sorte que le moteur du jeu soit dans une routine que la gestion d'erreur peut appeler récursivement.

ça donnerait ça
•••••••••••••
property totalBoules : 0
property nbTirages : 0

mesTirages()

on mesTirages()
repeat
set nb_num_total to {text returned} of (display dialog "Combien de numéros au total ?" default answer totalBoules buttons {"OK"} default button 1)
set nb_num to {text returned} of (display dialog "Combien de numéros à tirer ?" default answer nbTirages buttons {"OK"} default button 1)
try
set nb_num to nb_num as integer -- à noter qu'une saisie 12.35 ou 12,35 sera arrondie à 12 sans générer d'erreur
set nb_num_total to nb_num_total as integer --à noter qu'une saisie 25.75 ou 25,75 sera arrondie à 26 sans générer d'erreur
on error
display dialog "Faudrait voir à ne pas mettre n'importe quoi non plus !" buttons {"Annuler" ,"Oups !"} default button 2 cancel button 1
mesTirages() --on relance le jeu si le bouton Oups cliqué. Le jeu s'arrête avec le bouton "Annuler"
return -- indispensable pour ne pas saturer la pile en cas d'appels récursifs réitérés.
end try
if nb_num ≤ nb_num_total then
set totalBoules to nb_num_total -- mémorisation du nb de boules
set nbTirages to nb_num -- mémorisation du nb tirages

set boules to nb_num_total as integer -- /as integer/ n'est même plus nécessaire puisque coercition traitée en amont
set tirage to nb_num as integer
--et la suite…
(*le reste du script inchangé jusqu'à la fin où il faut terminer le handler "mesTirages()*)

display dialog "Voulez-vous faire un autre tirage ?" as text buttons {"Annuler", "OK"} default button 2 cancel button 1
(* mettre /cancel button 1/ dispense des trois lignes ci-dessous
if {button returned} is "Annuler" then
exit repeat
end if *)
end repeat
end mesTirages
•••••••••••••••••••

Maintenant, pour corser un peu le truc il faut retirer les boules déjà sorties et aussi augmenter sérieusement le coefficient d'aléa du tirage ;-)
--
J. B.
Avatar
g4fleurot
Joseph-B wrote:

Maintenant, pour corser un peu le truc



Super, Joseph ! on voit que tu as de sérieuses connaissances en
AppleScript : c'est autre chose que mes copiés/collés de bouts de sripts
;-)
Il y a eu une demande de tirage entre 0 et 77.
Dans ce zéro, je pense par exemple à une demande de consultation à un
oracle où il n'y aurait pas de réponse.
Je prend entre 0 et 3 pour simplifier.
Il y a 4 possibilités de réponses.
Dans le script, en remplaçant 1 par 0 dans la ligne
"set tempNb to random number from 1 to boules", ça marche, mais il
manque une possibilité de réponse.
Je ne peux pas entrer 3 puis 4 dans le dialogue, pour avoir toutes les
réponses.
Je me suis dit qu'il faudrait ajouter un "+ 1" quelque part, mais je
patine...

--
Gérard FLEUROT plus un
Avatar
michel.vauquois
Fleuger wrote:

Je ne peux pas entrer 3 puis 4 dans le dialogue, pour avoir toutes les
réponses.



Oui... Si tu tapes 3 puis 4, cela signifie, pour le script tel qu'il est, que tu veux effectuer le tirage de 4 numéros parmi 3 numéros et naturellement il refuse.

Je me suis dit qu'il faudrait ajouter un "+ 1" quelque part, mais je
patine...



Facile :
if nb_num ≤ nb_num_total then
devient
if nb_num ≤ nb_num_total + 1 then

et
if nb_num > nb_num_total then
devient
if nb_num > nb_num_total + 1 then

et enfin :
display dialog "Il est impossible de choisir " & nb_num & " numéros parmi " & nb_num_total & " numéros !" as text buttons {"OK"} default button 1
devient
display dialog "Il est impossible de choisir " & nb_num & " numéros parmi " & nb_num_total + 1 & " numéros !" as text buttons {"OK"} default button 1

Mais... il faudrait alors reprendre entièrement le script pour demander la plage des numéros à tirer (le numéro le plus bas et le numéro le plus haut) car le script modifié comme ci-dessus ne va plus
aller si le numéro le plus bas est 1...
--
Michel Vauquois
Que Dieu vous garde... Moi j'ai pas le temps (RD)
MàJ 2015 : <http://michelvauquois.free-h.fr>
Matière à voir : <http://matiere-a-voir.michelvauquois.free-h.fr>
Avatar
michel.vauquois
Joseph-B wrote:

Toutefois, si le but est de faire des tirages et les comparer, je verrais
bien deux "properties" gardant en memoire les valeurs du nombre total de
boules et du nombre de tirages, afin que ça se réaffiche automatiquement
plutôt que les resaisir à chaque fois.



Ben voilà... Je viens d'apprendre quelque chose (et pas que ça... )
Merci.
--
Michel Vauquois
Que Dieu vous garde... Moi j'ai pas le temps (RD)
MàJ 2015 : <http://michelvauquois.free-h.fr>
Matière à voir : <http://matiere-a-voir.michelvauquois.free-h.fr>
Avatar
josephb
j'hésite à mettre un FU2 pour fr.comp.sys.mac.programmation
qui est bien moribond…

Fleuger wrote:
c'est autre chose que mes copiés/collés de bouts de sripts



Comme je n'ai pas la science infuse, j'ai commencé exactement comme toi,
en m'inspirant de ce qui existait, mais il y a probablement plus
longtemps ;-)

Il y a eu une demande de tirage entre 0 et 77.
Dans ce zéro, je pense par exemple à une demande de consultation à un
oracle où il n'y aurait pas de réponse.



0 à 77, bon ça fait 78 objets.
Mais le pb n'est pas là, tel qu'écrit le script n'envisageait pas
l'hypothèse qu'un tirage puisse être "blanc"
Le faire est certainement compliqué en tant qu'algorithme, mais en plus
introduirait un biais par avance dans l'aléa : par quel critère /qui
doit être non ingérent/ va-t-on décider que le tirage est "blanc" ?
S'il y a une solution simple, je ne la vois pas…

Je me suis dit qu'il faudrait ajouter un "+ 1" quelque part, mais je
patine...



Du fait que zéro ne peut être une borne, il faut tricher en retranchant
1 au résultat du tirage, ce qui ne modifie pas l'aléa.
Et ça peut se faire comme ça, par exemple pour 4 "boules" numérotées
0,1,2,3
annoncer 4 pour "Combien de numéros au total", ce qu'on veut de 1 à 4
pour "combien de numéros à tirer"
et dans le script apporter la modification

•••••••••••••
set tempNb to random number from 1 to boules
if (tempNb - 1) is not in myLoto then
copy (tempNb - 1) to the end of myLoto
exit repeat
end if
•••••••••••••

ça ne peut ressortir que 0,1,2,3
Pas sûr que ce soit satisfaisant dans le cadre d'incantations magiques,
mais c'est rationnellement correcte.
Cordialement,
--
J. B.