Forums » Utilisation d'AMC (french) »
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 Joss OUIN about 6 years ago
Lien direct pour le wiki : https://project.auto-multiple-choice.net/projects/auto-multiple-choice/wiki/Fran%C3%A7ais
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)