[R] Souci avec la fonction Random

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#41

Message par Tlem »

@mikell
Haaaa, je vois ...
Alors, puisque cela semble te faire plaisir, continuons.
mikell a écrit :"...aient laissé passer une erreur mathématique" , je voulais dire
évidemment ^^
Selon Wikipédia : Est une évidence ce qui s'impose à l'esprit comme une vérité, ou une réalité, sans qu'il soit besoin d'aucune preuve ou justification.

Selon le petit Larousse : 'Évident' : Qui est d'une certitude absolue et s'impose à l'esprit
Le mot est donc inapproprié en la circonstance puisque si c'était une évidence, tous le monde (du moins une très grande majorité) serait d'accord et il n'y aurait pas de divergence. Ce qui n'est pas le cas actuellement.

Tu dit un peut plus haut :
mikell a écrit :Comme je ne suis pas informaticien ...
mais cela ne t’empêche pas d'affirmer tout au long de ce sujet que la fonction comporte un bug.

Ensuite, tu implique notre cher Jean Christophe dans ton absolue certitude du bug, or celui-ci n'a jamais reconnu un quelconque bug, mais un simple comportement illogique d'un point de vue mathématique.

Je comprend que tu souhaite défendre ton opinion, mais je te recommande de MODÉRER tes propos, car en affirmant des choses fausse (parce que tu ne garde à l'esprit que ce que tu crois juste), tu ne fait que semer le doute dans l'esprit de ceux qui n'ont pas tes connaissances.

Pour répondre à la question de ce sujet :
mikell a écrit :Quelqu'un peut-il expliquer ce souci (bug ?) et comment le résoudre ?
Je te le dit encore une fois et j'espère que cela en restera là, la fonction Random() n'est pas buguée car elle fait ce qu'elle est sensée faire (tel quelle est écrite et d'après la documentation), même si pour toi c'est un cas de conscience mathématique.

Quant à la résolution du problème, tu as fait ta petite fonction et je t'ai donné un exemple avec une alternative tout aussi valable.

Ce que tu demande (comme l'a fait Jean Christophe), c'est une requête afin de rendre la fonction logique d'un point de vue mathématique.

Techniquement, la requête me semble valable, mais sous conditions, car à ce moment là, comment savoir que le choix n'est plus pseudo-aléatoire.
L'exemple du jeux de carte est régulièrement présenté, mais celui-ci n'est qu'une goute dans les possibilité de l'utilisation de la fonction.
Si au lieux de contrôler la valeurs envoyées, qu'en serait-il si les valeurs étaient dépendantes d'une source extérieure et égale à l'autre borne de la fonction ! A juste titre certains dirons que c'est au développeur de faire en sorte que cela ne se produise pas, mais dans un tel cas pourquoi n'en serait-il pas de même dans la fonction actuelle ...

Bref la fonction doit effectivement être revue d'un point de vue logique, mais d'autres choses doivent être étudiées afin de cerner l'ensemble des possibilités des problèmes envisageables. C'est (AMHA) pour cela que valik a dit que le problème ne pouvait être réglé par le changement d'une simple ligne de code.

@blacksoul305
blacksoul305 a écrit :A la base, l'ordinateur est censé être une machine fondée totalement sur les mathématiques et qui fonctionne par le calcul. Si c'est calculé c'est que c'pas aléatoire, non ?
Comme le souligne TT22 et comme je l'ai dit auparavant, les fonctions de type Random fournisse un nombre pseudo-aléatoire qui est effectivement calculé selon un certains nombre d'éléments reproductible sous conditions. Maintenant, garde à l'esprit que selon les paramètres envoyés à la fonction, ce nombre calculé est difficilement prévisible car les éléments ayants servit à la base du calcul peuvent être tellement variés qu'il est difficile sans le code de prévoir quoi que ce soit. Et même si tu connais les paramètres envoyés à la fonction, tu ne pourrait faire une prédiction sans que tous les éléments correspondent à 100% aux même conditions (Deux scripts lancés simultanément et avec les même conditions d'utilisation produiront la même suite pseudo-aléatoire).

Voici pourquoi la modification de la fonction peut présenter quelques problèmes aux vues de certains si certaines précaution ne sont pas implémentée dans un code retour :
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#42

Message par blacksoul305 »

Merci, ces explications s'ajoutent au tutoriel de TT22 que j'ai fini de lire.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#43

Message par Tlem »

Oups, j'avais commis une erreur de copier/coller dans le code d'exemple du message précédent, car en effet comparer

Code : Tout sélectionner

Random(1, 2, 1)
et

Code : Tout sélectionner

_RandomInt(1, 1)
n'avait aucun sens.
J'ai corrigé le code afin qu'il soit plus parlant.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#44

Message par Iste »

@mikell :
Sur ce point ce n'est pas subjectif.
Il y a bug si la fonction ne fait pas ce que le dev a voulut qu'elle face.
Pas d'incohérence vu que la fonction renvoi une erreur en cas de demande inutile comme StringSplit()

On peut si l'on veut critiquer une fonction qui ne se comporte pas comme on l'aurait voulu, mais il faut pour cela pouvoir défendre son point de vu, et un comportement "mathématique" n'est pas forcément un exemple a suivre.
Surtout que dans ce cas, on peut sans souci encapsuler la fonction pour lui donner le comportement voulu.

On peut donc chipoter sur le retour de la fonction, mais en théorie quand les paramètres ne sont pas "sûrs" on se doit de vérifier l'@error.

Dans tout les cas, c'est ainsi que ca fonctionne quand on manipule des boites noires. On peut remettre ca en cause, mais dans ce cas on va plus loin que le Random() d'AutoIt !

@blacksoul305 :
On calcul un random en faisant une calcul avec des nombres qui bougent beaucoup (heure, nombre de cycle du proco etc) Souvent, les ordi on une puce matériel qui s'en charge quand c'est important.
Mais en claire tout ce que je veux dire, c'est qu'on a pas a réinventer le rand(). Il est fourni dans tout les langages existants (normalement)

@Tlem : Je n'arrive pas bien a saisir le probleme soulevé dans ton exemple :/
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#45

Message par Tlem »

Le code montre tout simplement qu'en adaptant la fonction pour quelle corresponde à une logique mathématique, en cas de codage merdique et si on connait une partie du code, 'la prédiction est possible'.
Certes, mon exemple est discutable, mais il expose quand même la fragilité de la chose si il n'y a pas de précaution supplémentaire.

Je plussoie tout de même à l'évolution de cette fonction (car tout comme mikell j'aime bien ce qui est logique), mais personnellement et si mon avis pouvait représenter quoi que ce soit pour les développeurs, je modifierais le nom des variables min et max par Value1 et Value2 et dans le même temps, j'utiliserais @extented pour signaler l'égalité des deux valeurs ou j'utiliserais @error pour signaler que la valeur n'est plus aléatoire (voir les deux, mais après, cela poserais d'autres problèmes avec 0 par exemple :mrgreen: ).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#46

Message par mikell »

[Mode UPDATE /ON]

Thierry je sais que c'est pas bien d'exhumer un vieux sujet mais bon, exceptionnellement ...
Tel un serpent de mer ce bazar sort sporadiquement la tête de l'eau et les divers posts/commentaires sont généralement du réchauffé
Mais ici c'est trop mignon j'ai pas pu résister Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#47

Message par Tlem »

Jean-Christophe ne parle que de la partie mathématique en réponse à l'affirmation de PincoPanco et non de la fonction.

Et pour l’exhumation de ce vieux troll, je te puni : Image
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#48

Message par mikell »

Thierry voyons ! je mérite la punition mais ce n'est PAS un troll :shock:
"Jean-Christophe ne parle que de la partie mathématique (...) et non de la fonction." On peut le voir comme ça, effectivement c'est pas explicite, mais bon...
" when the set considered in a closed interval [a, b] of N or Z , the case a = b is perfectly valid and provides the result a without any discussion." ^^

Mais mon propos n'était pas de relancer le truc, en fait ce qui m'a fait sourire c'est le "That's a very naive attempt to a formal definition which has no precise mathematical meaning at all" qui m'a rappelé ça
Je me les mords à belles dents pour ne pas avoir eu la présence d'esprit de te sortir ça à l'époque :mrgreen:
C'est vachement plus sympa que le mot "subjectif"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#49

Message par Tlem »

Sauf que tu mélange certains propos à ta guise.

Tu cite JC, mais comme je te l'ai dit, il répond à PincoPanco qui parle d'un point de vue mathématique.
PincoPanco a écrit :what is a random number?
it is a number that you do not know which one will be.
So, if you ask to a random() function to return a number, you expect a random number
if you try to fool the function by asking a number that can not properly be random, the function rightly refuse to provide that number so as not to be a liar (and fooled). otherwise the function would not be true to herself!
Hors comme je l'ai convenu, cela est faux et il en refait la démonstration.

Ensuite, tu me cite. Mais dans mon message, je parle bel et bien de la fonction Random() !!!
Tlem a écrit :En ce qui me concerne, la traduction de "Random" me dit "Aléatoire", or dans Random(1, 1, 1) ou ce trouve la part de l'aléatoire ?
D'un point de vue technique pur, comme il n'existe qu'une seule valeur et que celle-ci ne peut être aléatoire, je ne vois pas pourquoi 1 devrait être retourné.
Le retour du nombre 0 et l'attribution de @Error me parais justifié dans le sens ou je sais que ma valeur n'est plus aléatoire.
Donc pour résumer :
D'un point de vue mathématique, la fonction Random ne fait pas ce qui est établit mathématiquement, mais elle fait bien ce que le développeur voulait qu'elle fasse (et il l'à écrit dans l'aide). Donc pas de bug !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#50

Message par jchd »

C'est bien plus grave qu'un simple bogue : c'est avant tout la concrétisation d'un cruel manque de compréhension fondamentale de la part du programmeur de ce qu'est un ordinateur, un programme et une fonction.

Le simple fait d'avoir documenté l'exception dans la documentation montre bien que si bug il y a, il se situe très en amont du clavier.

C'est tout bonnement scandaleux.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#51

Message par Tlem »

Certes, mais il me semble bien que Random() n'est pas la seule fonction à être agrémentée au bon vouloir du programmeur ... :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#52

Message par lesolutionneur »

Je n'ai pas eu le courage de lire toutes les pages mais ce que je pense c'est que la fonction se nomme "hasard", ainsi, si elle ne peut pas renvoyer de nombre au hasard, elle renvoit une erreur ce qui est tout à fait correct sémantiquement.
D'ailleurs, en cryptographie et dans d'autres domaines où le hasard est crucial, on est bien content que la fonction vienne gueuler si avec les paramètres donnés, le hasard est impossible plutôt que ça passe comme une aiguille dans une meule de foin et risque de poser un problème de sécurité plus tard.

Ensuite, les deux opinions sont soutenables et justifiables, je trouve que le débat est trop parti dans un combat d'amour-propre plutôt que dans une argumentation raisonnée.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#53

Message par mikell »

@lesolutionneur
Une fonction intégrée n'est pas là pour émettre un jugement de valeur et avoir une exactitude sémantique, elle doit fournir un résultat mathématiquement juste, les exceptions doivent être gérées en aval par celui qui utilise la fonction (s'il le souhaite)

Selon ton point de vue, GuiCtrlRead devrait renvoyer @error si le controle est vide puisque la définition de "lire" est "Interpréter des informations écrites", "Établir la relation entre les séquences de signes graphiques d'un texte" etc
Heureusement c'est le codeur qui a encore le choix de décider si un "" retourné par GuiCtrlRead doit être considéré comme une erreur ou pas
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#54

Message par lesolutionneur »

Non ce n'est pas exact, le GUICtrlRead renvoit ce que contient le contrôle. S'il contient "\0", c'est donc qu'il contient bien quelque chose (mais AutoIt dans sa représentation haut niveau va nous afficher une chaîne vide).

Ton raisonnement par l'absurde est donc... absurde ;)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#55

Message par mikell »

Absolument :mrgreen:
Mathématiquement c'est absurde, même si sémantiquement ça ne l'est pas
C'est le danger des interprétations irrationnelles
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#56

Message par mikell »

C'est avec une volupté sans mélange - mais toutefois fort compréhensible pour qui prend ou a pris la peine de lire cet interminable sujet - que je relance et que j'en remets une couche :mrgreen:
(Et au passage que je souscris enfin à cette balise [R] apposée à l'époque par la hiérarchie sur le sujet sans le consentement de son auteur)

En effet après des années de tergiversations de mauvais aloi, les développeurs d'AutoIt dans la dernière release 3.3.14.0 se sont ENFIN résolus à donner à Random() ce qui lui manquait si cruellement :
If Min and Max are the same value then Random() will return that value - the @error flag will not be set in this case
Le bon sens triomphe, comme quoi faut jamais désespérer
Dommage, ils ont oublié de virer dans le fichier d'aide l'exemple 4 désormais complètement mal t'à propos (mais bon, faut pas trop en demander à la fois)


And now... un petit message personnel :twisted:
@Thierry
Je te recommande la lecture de ce ticket qui vaut son pesant de cacahouètes avec les posts de czardas, Melba23 et surtout jchd18 (qui pourrait bien se trouver être StringRegExpReplace('jchd18', '\d+', "") ) et qui a enfanté cette rectification tant souhaitée
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11815
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#57

Message par Tlem »

Salut à toi mon petit Michel. Je te rappelle ma conclusion de nos échanges, que j'ai écrit le 28 Septembre 2013 à 23h58 ...
Tlem a écrit :D'un point de vue mathématique, la fonction Random ne fait pas ce qui est établit mathématiquement, mais elle fait bien ce que le développeur voulait qu'elle fasse (et il l'à écrit dans l'aide). Donc pas de bug !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#58

Message par mikell »

J'admets volontiers que cette propriété n'était pas un bug puisque voulue par les développeurs
Non, c'était juste un non-sens/une incohérence/erreur mathématique bref une connerie
Ce qui ne t'a pas empêché de passer pas mal de temps à me démontrer que puisque c'était le choix des devs, alors ce n'en était pas une, mon petit Thierry :wink:

Cela dit ce qui m'étonne le plus c'est le nombre posts sur le forum US et de tickets sur le BugTracker qu'il aura fallu pour que cette décision finisse par être prise
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Souci avec la fonction Random

#59

Message par jchd »

Ce "thinko" à la base et le délai requis pour s'en sortir est dû au fait que pour beaucoup de gens quii ont oublié ou jamais compris leurs cours de maths, une probabilité est comprise entre 0 et 1, inclusivement. D'où l'argument erroné mais tenace que Random(3, 3, 1) n'est plus "random" et donc une erreur.

Oui, le 18 est arrivé en parachute et par mégarde au moment où Jon distribuait des comptes mails et accès svn. J'ai niaisement souhaité avoir un compte distinct, mais en réalité ce n'était pas nécessaire. Je survivrai quand même.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre