IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Vote des utilisateurs
0 
2 
Détails
Licence : Gratuit pour usage non commercial
Mise en ligne le 25 juin 2020
Plate-forme : Linux
Langue : Français
Référencé dans
Navigation

Travaux de recherches sur la domestication du temps

Pour ceux qui ont envie de regarder.
Avatar de emixam16
Membre chevronné https://www.developpez.com
Le 08/07/2020 à 16:47
Bonjour.

Désolé, je vais faire un peu mon rabat-joie. Merci de ne pas prendre ces remarques personnellement, j'essaye juste de t'expliquer pourquoi ce que tu fais ne peut pas marcher, même en théorie. J'ai pris du temps pour écrire ce pavé. Donc ce n'est pas de la condescendance et j'essaye d'être le plus pédagogique possible. J'ai simplifié quelques trucs pour que l'OP comprenne, s'il y a des mathématiciens, merci d'être indulgents.

Tout d'abord, ton code manque de clarté comme l'a expliqué Sve@r. Mets toi à la place du lecteur. Penses-tu qu'il puisse comprendre ce que tu as voulu faire à partir d'un simple lecture de ton code?

Cela étant dit, ce que tu essayes de faire est impossible, même en théorie. Puisque le loto est fondamentalement aléatoire, on ne peut pas se servir des valeurs passées pour déduire quoi que ce soit des valeurs futures.

Je vais t'expliquer pourquoi. Je pars de la théorie et finis sur les limites de la théorie.

Quand tu tires des nombres au loto, tu génères des nombres aléatoires. (Considérons d'abord que ces générateurs sont parfaits).

Puisque les nombres générés ne dépendent pas du passé, et que tout nombre peut être généré de manière équiprobable (avec la même probabilité), le prochain tirage ne dépend aucunement du précédent.

Et là tu vas me dire: oui mais je remarque des motifs. Et effectivement, on a tendance à voir apparaitre des motifs dans l'aléatoire.

Je te propose une petite expérience. Lance 10 fois une pièce et compte le nombre de fois pile. En théorie tu t'attends à trouver 5 (10*(1/2)). Sauf qu'en pratique tu n'as que 24.6% que ça arrive! Tu peux avoir certaines fois 4, 7, ou même 1 seul pile. C'est statistiquement possible. Si tu veux plus d'informations, va voir du coté de la loi de Bernouilli.

Pour le loto c'est pareil, certaines valeurs peuvent apparaitre plus ou moins souvent que d'autres. Cela ne signifie pas que ce dernier n'est pas aléatoire, bien au contraire. Mais ce n'est pas parce qu'une valeur est apparue plus souvent dans le passé qu'elle apparaitra plus souvent dans le futur!

Donc la conclusion c'est que peu importe ce que tu fera, il sera impossible de trouver quoi que ce soit.
------------
La première partie était la plus importante. Je te propose d'aller un peu plus loin sur l'aléa dans cette partie.

En pratique, aussi surprenant que ça puisse paraître un ordinateur ne sais pas générer un nombre aléatoire. Autant il est très fort pour calculer autant il n'a aucun moyen de générer d'aléa.

Pour y arriver il utilise donc ce qu'on appelle un générateur de nombre pseudo aléatoire (PRNG). Il permettent de générer des séquences qui semblent aléatoire mais sont en fait totalement déterministes. Il existe une tripotée de PRNG. Certains sont très simples mais fournissent un aléa assez médiocre. D'autres sont plus complexes mais fournissent un aléa quasiment parfait (cryptographiquement surs).

Il est possible de reverser des PRNG médiocres (exemple ici et ici) et donc de déterminer les valeurs futures à partir d'un séquence de valeurs passées. Mais pour des PRNG meilleurs (cryptographiquement surs), c'est impossible ou quasiment impossible en pratique.

Il va sans dire que les PRNG utilisés dans le cadre du loto sont cryptographiquement surs. Donc on retombe sur la conclusion de la première partie. Tu ne devineras pas l'avenir en regardant simplement le passé. Désolé.
Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 09/07/2020 à 11:00
Citation Envoyé par emixam16 Voir le message
J'ai écrit mon pavé à un mur.
Non pas du tout. Je te promets j'ai tout lu avec intérêt. Surtout quand tu entres dans l'aléa de l'ordinateur. Là ça m'a plu.

Citation Envoyé par emixam16 Voir le message
Ok, je suis tombé sur un Fanmanga.
oui effectivement lui il est devenu une référence sur ce forum...

Citation Envoyé par F4HDB Voir le message
Par contre, si l'on adhère à l'idée d'unicité, cela change tout. L'idée d'unicité est le fait de considérer que chaque chose est en réalité unique. L'idée d'unicité est le contraire de l'idée d'unité.
Peut-être. Mais comme ce n'est pas le cas du loto, on peut adhérer à l'idée de ce que l'on veut, ça ne change rien à la réalité.
Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 26/06/2020 à 10:40
Bonjour
Citation Envoyé par F4HDB Voir le message
Pour ceux qui ont envie de regarder.

Qu'en pensez-vous ?
Ben... je vois un joli programme bien indenté donc agréable à lire. Il est écrit dans une syntaxe qui n'est pas mon habitude. Par exemple je n'écris pas i ++ mais i++ car c'est une action directement liée à la variable et y mettre un espace bizarrement réduit la compréhension immédiate. Ensuite si je dois créer du B1, B2, B3 etc, alors je passe par un tableau. Et enfin si je dois effectuer un test essai/echec avec sortie comme dans le cas d'un fopen qui ne réussit pas, alors je teste l'échec en premier ce qui me permet de gagner en tabulations. Mais il reste propre et ça c'est bien (si tu voyais tous les codes anarchiques qui passent sur ce fiorum !!!)

En revanche, je n'ai absolument aucune idée de ce qu'il est censé faire. "Travaux de recherche sur la domestication du temps" ça fait un peu riche non ? On a l'impression qu'on va se retrouver dans le centre de surveillance temporel du roman "La fin de l'éternité" d'Isaac Asimov et au final on obtient des colonnes de chiffres qui défilent Ce sont les chiffres du temps ??? Il y a bien ce fichier" loto.txt" qui "semble" contenir un gros jeu d'essais de tous les tirages du loto toutefois un tirage loto est à 6 chiffres tandis que ce fichier n'en contient que 5.
Donc peut-être des commentaires un peu plus poussés que // Déclaration des variables locales.. Déjà le // Consultation des tirages du LOTO. était dans la bonne voie. Mais voilà, c'est le seul commentaire expliquant un minimum de quoi il s'agit.

Donc voilà, je reste un peu désarmé devant ce produit que je reste incapable de comprendre. Mais si je devais faire une hypothèse à propos de stats sur les nombres du loto qui sortent le plus souvent (ou le moins souvent) ben déjà d'une part la française des jeux peut les fournir et d'autre part comme deux tirages sont totalement indépendants et équiprobables, un numéro peut très bien sortir un milliard de fois, il aura toujours autant de chances de sortir la fois d'après (j'ai vu une fois le rouge sortir 10 fois d'affilée à la roulette et moi à chaque fois je doublais ma mise sur le noir, heureusement le noir est sorti la 11° fois, celle où j'avais mis tout ce qui me restait et donc au final j'avais misé 1000€ juste pour en gagner 20 de plus !!!)
Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 30/01/2021 à 11:16
Citation Envoyé par F4HDB  Voir le message
J'avais rédigé un petit document par la suite.

Oui, je le vois. J'aime bien la conclusion "En complétant ce programme pour réaliser des prévisions du futur, on constante que celles-ci sont aberrantes. Ce ne sont donc pas des conditions suffisantes pour connaître l’avenir. Mais c’est peut-être un petit progrès." qui signifie globalement que peut-être en comptant combien de fois la pièce est tombée sur "pile" cela permettra de prédire quand elle tomberra sur "face". Ce qui bien entendu reste totalement faux. Avec une petite erreur d'orthographe sur "constate".

Maintenant, question robustesse on peut revoir certains détails. Par exemple la constante "ANCIENNETE" (qui en fait n'est pas une constante mais une macro) ne doit pas dépasser le nombre de lignes du fichier historique. Ok tout le monde comprend pourquoi elle ne doit pas le dépasser. Mais d'une part ce que moi je ne comprends pas c'est à quoi elle sert. Pourquoi ne pas utiliser directement le nombre de lignes du fichier historique ce qui évite de se torturer à savoir à combien on va mettre cette macro ?
Et si vraiment elle peut servir (pour celui qui désire effectivement jouer sur une petite partie de l'historique) alors pourquoi ne pas blinder le programme pour que si elle dépasse justement ce nombre de lignes alors le programme puisse rattrapper l'erreur automatiquement ?

Ensuite tu fais deux fois fclose(pFS) dans le "if" et dans le "else". Tes messages d'erreur pourraient partir dans stderr plutôt que stdout, et quand on en arrive à avoir Bl1, Bl2 etc on utilise alors un tableau qui justement est fait pour ça. Ce n'est pas plus difficile à mettre en place (voire même plus facile) et en plus de pouvoir s'utiliser de la même manière (pas compliqué de remplacer Bl1 par Bl[0]) ça permet de traiter tous les Bl d'un coup au travers d'une simple boucle. Plus possibilité ultérieure d'étendre le programme pour qu'il puisse gérer 6, 7, 10 nombres (suffit de modifier la taille du tableau et recompiler).

Et enfin (et ça je te l'ai déjà dit), au lieu de faire
Code c : Sélectionner tout
1
2
3
4
5
6
7
8
if (fopen(...) ok) { 
	action 
	... 
} 
else { 
	print erreur 
	return -1; 
}
... tu peux faire
Code c : Sélectionner tout
1
2
3
4
5
if (fopen(...) échec) { 
	print erreur 
	return -1; 
} 
action
Tu gagnes en indentation.

C'est ce genre de détails qui font la différence.
Avatar de F4HDB
Membre du Club https://www.developpez.com
Le 29/01/2021 à 18:51
Bonsoir,

J'avais rédigé un petit document par la suite.
Le code source est légèrement différent pour les noms de certaines variables et tableaux.
Avatar de F4HDB
Membre du Club https://www.developpez.com
Le 02/02/2021 à 17:45
Bonsoir monsieur,

Je vous remercie d'avoir regardé mon programme et mon document. C'est gentil. J'ai appris à programmer tout seul, en achetant des livres quand j'étais plus jeune. C'est pour cela que ce n'est peut-être pas parfait.

Je vous souhaite une bonne soirée.
Avatar de F4HDB
Membre du Club https://www.developpez.com
Le 25/06/2020 à 14:05
Bonjour,

Je vous propose un nouvel élément à utiliser : Travaux de recherches sur la domestication du temps

Pour ceux qui ont envie de regarder.

Qu'en pensez-vous ?
Avatar de F4HDB
Membre du Club https://www.developpez.com
Le 07/07/2020 à 12:18
Bonjour monsieur,

Je vous remercie beaucoup d'avoir regardé mon programme. Cela me fait plaisir. Je suis désolé de vous répondre aussi tardivement. Je suis nouveau et je n'avais pas vu que j'avais un message.

Les fichiers loba1.c et loba2.c sont deux programmes indépendants. La différence réside dans la construction du second champ. Le fichier loto.txt doit être placé dans le même répertoire.

Je développe sous linux avec gcc. Pour compiler le programme loba1.c, j'utilise la commande suivante : gcc -D_GNU_SOURCE -g -Wall -o loba1 loba1.c, et pour l'exécuter ./loba1

Je ne sais pas si vous avez réussi à le lancer.

Que fait ce programme ?

Ce programme utilise les tirages du LOTO, car c'est une bonne source de hasard.

Dans un premier temps, on construit deux champs triangulaires un peu particuliers Champ1 et Champ2. Ils sont placés dans des tableaux à deux dimensions.

On considère un bipoint dans le champ1 et un autre dans le champ2.

Ces bipoints sont verticaux :
Cpt1 est l'ordonnée inférieure du bipoint dans le champ2.
Cpt2 est l'ordonnée supérieure du bipoint dans le champ2.
Cpt3 est l'abscisse du bipoint dans le champ2.

Cpt4 est l'ordonnée inférieure du bipoint dans le champ1.
Cpt5 est l'ordonnée supérieure du bipoint dans le champ1.
Cpt6 est l'abscisse du bipoint dans le champ1.

J'aurais mieux fait d'utiliser des notations avec x et y.

Je me sert du OU EXCLUSIF pour construire quelque chose que j'appelle le moment.

Mnt1 est le moment du bipoint dans le champ2.
Mnt2 est le moment du bipoint dans le champ1.

Je cherche au fur et à mesure les bipoints ayant les mêmes moments.

Si vous réussissez à lancer ce programme, vous verrez s'afficher les coordonnées Cpt1 à Cpt6 des bipoint ayant les mêmes moments.
Au bout d'un certain temps, les coordonnées vont commencer parfois à se suivre, dans un certain ordre, et avec une "longueur d'avance".

Malheureusement, si l'on complète ce programme pour réaliser des prévisions, on constate que ce ne sont pas des conditions suffisantes pour connaître l'avenir.
Mais c'est peut-être un petit progrès.

Je vous souhaite une bonne journée.
Avatar de F4HDB
Membre du Club https://www.developpez.com
Le 08/07/2020 à 18:59
Bonjour monsieur,

Je vous remercie beaucoup pour votre message. Cela me fait plaisir de voir que des personnes prennent le temps de s'intéresser à mes activités.

Je suis d'accord pour dire qu'il n'est pas possible de prévoir l'avenir, des tirages du LOTO par exemple, mais si l'on adhère à l'idée d'unité.

Par contre, si l'on adhère à l'idée d'unicité, cela change tout. L'idée d'unicité est le fait de considérer que chaque chose est en réalité unique. L'idée d'unicité est le contraire de l'idée d'unité.

Je vous souhaite une bonne soirée.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.