pgfmathsetseed

Added by Joan Millès about 6 years ago

Bonjour à tous,

J'ai compilé une question avec les différentes commandes pgfmath mais je n'ai pas fixé de graine au départ. Lorsque je corrige les copies avec AMC, les réponses ne correspondent pas aux questions.

Est-ce qu'il y a un moyen de savoir quelle graine a été utilisée pour faire le sujet à partir du log par exemple ? Ou un autre moyen de rattraper le coup ?

Merci d'avance.
Cordialement,
Joan Millès


Replies (11)

RE: pgfmathsetseed - Added by Alexis Bienvenüe about 6 years ago

je n'ai pas fixé de graine au départ

Ouille

Est-ce qu'il y a un moyen de savoir quelle graine a été utilisée pour faire le sujet à partir du log par exemple ?

Avez-vous gardé le fichier DOC-sujet.pdf à partir duquel vous avez imprimé votre sujet ? Gardez-le bien précieusement.
Il faut peut-être regarder dans ses propriétés pour récupérer la date/heure de création du fichier.
La graine utilisée par pgfmath dépend de l'heure (secondes depuis le 01/01/1970) et de l'année. La date dans le PDF sera sans doute un peu décalée avec celle utilisée par cette graine. Il faudrait essayer d'estimer ce décalage (par exemple en compilant votre sujet et en demandant d'afficher la valeur de la date utilisée au moment du calcul de la graine, et en comparant avec la date inscrite dans les propriétés du PDF).
Ensuite il faudra sans doute faire plusieurs essais avec des graines autour de la bonne valeur estimée, jusqu'à obtenir les même valeurs que dans votre sujet…
Bref, pas facile à mon avis.
Deuxième solution, recomposer votre sujet en codant les valeurs numériques en dur dans le fichier source… ça peut être également assez fastidieux.

RE: pgfmathsetseed - Added by Joan Millès about 6 years ago

Bonjour,

Merci pour cette réponse instructive !

J'ai bien gardé le fichier DOC-sujet.pdf. J'ai calculé le nombre de secondes depuis le 1er janvier 1970 jusqu'à la date de création. J'ai multiplié le résultat par l'année. Le résultat obtenu était trop grand. Au départ, j'ai pensé la graine maximale était 16383 et j'ai donc calculé le résultat modulo ce nombre +1. Comme j'ai cru comprendre que 0 a un rôle particulier, j'ai aussi fait le calcul modulo 16383 et ajouté 1 au résultat.

J'ai ensuite remarqué que la graine pouvait être plus grande. Je suis arrivé à la valeur maximale 2147483647. J'ai donc fait les calculs modulo ce nombre (éventuellement +1). J'ai bien sûr décalé un peu le nombre de secondes. J'ai recompilé le fichier (ailleurs) en affichant la date pour voir le décalage. Il était seulement d'une seconde. Cependant, la durée de compilation des 165 sujets dépassent largement la minute (voir les 2-3 minutes) et même si mes calculs sont bons (ce qui n'est pas gagné), ça me laisse pas mal de tentatives à faire.

Je vais abandonner là et j'essaierai de ne pas oublier la graine la prochaine fois.

Merci encore !
Bien à vous,
Joan

RE: pgfmathsetseed - Added by Frédéric Bréal about 6 years ago

J'ai trouvé ceci

How to get the random seed used in a tikzpicture?

ici https://tex.stackexchange.com/questions/237868/how-to-get-the-random-seed-used-in-a-tikzpicture

Avant \begin{document}, tapez :

\makeatletter
\def\pgfcurrentseed{ %
\pgfmathparse{\pgfmath@rnd@z}\pgfmathresult%
}
\makeatother

puis après \onecopy{}{ tapez

\pgfcurrentseed

La mise en page sera modifiée mais cela vous donnera une base de départ pour tenter de retrouver l'origine.

RE: pgfmathsetseed - Added by Joan Millès about 6 years ago

Bonjour,

Merci beaucoup !

Après avoir eu la graine sur un exemple, j'ai pu demandé à python de me donner les 500 valeurs autour de l'heure de mon fichier. Les résultats étaient incohérents. J'ai donc fait afficher l'heure (\the\time) pour comparer à la graine.

L'heure est en fait le nombre de minutes depuis minuit (passé). Le calcul est bien :
heure * année modulo 2^31 - 1

Il a fallu que je décale de deux minutes pour obtenir les bons résultats. Ouf !

Merci encore à vous !
Joan

RE: pgfmathsetseed - Added by Joan Millès about 6 years ago

Pardon :

L'heure est en fait le nombre de minutes depuis minuit (passé). Le calcul est bien :
MINUTES * année modulo 2^31 - 1

Joan

RE: pgfmathsetseed - Added by Frédéric Bréal about 6 years ago

Pourriez-vous mettre dans le wiki, votre méthode et le script ? Cela pourrait intéresser des collègues et permettrait de laisser un lien plus facilement accessible. Merci

RE: pgfmathsetseed - Added by Joan Millès about 6 years ago

Bonsoir,

J'ai écrit un petit texte mais je ne sais pas comment le mettre sur le wiki. Pour l'instant, je suis parti de l'exemple de fichier source Sample source files et j'ai enregistré les modifications.

Je me doute que c'est une erreur. Il faudrait que je crée une nouvelle page et que je remette ce qui était à l'origine sur la page Sample source files.

Comment crée-t-on une nouvelle page sur le wiki ?

Merci d'avance.
Joan

RE: pgfmathsetseed - Added by Joss OUIN about 6 years ago

Bonjour,

Vous allez sur le wiki puis vous faites "Modifier". Ensuite vous ajoutez une ligne à l'endroit de votre choix du style :


[[Mon titre à moi]]

Puis enregistrez.

Ensuite vous cliquez sur le nouveau lien (de couleur bordeaux) puis vous saisissez votre article.

Joss.

RE: pgfmathsetseed - Added by Joan Millès about 6 years ago

Bonjour,

Très bien, merci. J'ai fait les modifications.

Joan

(1-11/11)