Forums » Utilisation d'AMC (french) »
Bonnes réponses dans un certain intervalle de nombres aléatoires
Added by Antoine Bluheim over 2 years ago
Hello,
Petit problème du week-end. Je prépare un QCM sur le son et je voudrais faire une question dans laquelle 20 fréquences aléatoires sont générées entre 1 et 25000 Hz et uniquement les fréquences entre 21 et 299 Hz sont bonnes réponses.
Une idée de la faisabilité de la chose?
J'ai la commande pour générer la fréquence \FPeval\FreqAlea{round(1+24999*random,0)}, mais ensuite je suis bloqué pour la mise en forme des réponses bonnes et mauvaises.
Merci pour votre aide!
Antoine
Replies (12)
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Frédéric Bréal over 2 years ago
Essayez avec cette option de la documentation : 5.6.1.1 Choix parmi une suite d’intervalles
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Antoine Bluheim over 2 years ago
J'avais regardé mais justement je ne trouve pas comment faire ce que je veux. Avec choixintervalle je n'arrive qu'à afficher des intervalles mais ce n'est pas ce que je veux!
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Frédéric Bréal over 2 years ago
Essayez avec le paquet ifthen, une condition qui serait du style :
\ifthenelse{\FreqAlea < 25 \OR \FreqAlea > 25000}{\mauvaise{\FreqAlea}}{\bonne{\FreqAlea}}
Lisez la documentation du paquet https://mirrors.chevalier.io/CTAN/macros/latex/base/ifthen.pdf car je ne suis pas sûr du code.
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Antoine Bluheim over 2 years ago
J'avais essayé un truc de ce genre
\element{categorie2}{
\input{Variables}
\begin{questionmult}{cat2-quest1}
Parmi les fréquences ci-dessous, quelles sont celles qui correspondent à un son grave?\\
\begin{multicols}{5}
\begin{reponses}\bareme{b=1,m=0,e=-1,v=0}
\Repeat{15}{\ifthenelse{\FreqAlea < 25 \OR \FreqAlea > 25000}{\mauvaise{\FreqAlea}}{\bonne{\FreqAlea}}}
\end{reponses}
\end{multicols}
\end{questionmult}
}
Mais j'ai 15 fois les mêmes valeurs!
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Frédéric Bréal over 2 years ago
Il faut remettre \FPeval\FreqAlea{round(1+24999*random,0)} dans la boucle pour que la valeur de la fréquence change.
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Antoine Bluheim over 2 years ago
J'ai mis \element{categorie2}{
%\input{Variables}
\begin{questionmult}{cat2-quest1}
Parmi les fréquences ci-dessous, quelles sont celles qui correspondent à un son grave?\\
\begin{multicols}{5}
\begin{reponses}\bareme{b=1,m=0,e=-1,v=0}
\Repeat{15}{
\FPeval\FreqAlea{round(1+24999*random,0)}
\ifthenelse{\FreqAlea < 25 \OR \FreqAlea > 25000}{\mauvaise{\FreqAlea}}{\bonne{\FreqAlea}}
}
\end{reponses}
\end{multicols}
\end{questionmult}
}
Log en pj.
amc-compiled.log (79.5 kB)
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Frédéric Bréal over 2 years ago
Quel est le code de la commande repeat ?
J'ai essayé avec @\multido
mais ça ne compile pas.
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Antoine Bluheim over 2 years ago
\newcommand{\Repeat}{\multido{\i=1+1}}
Désolé je pensais l'avoir mis!
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Frédéric Bréal over 2 years ago
Je passe sur le fait que j'ai mal lu les bonnes valeurs et que j'ai mal codé.
Voici un code qui semble fonctionner en apparence car AMC ne donne pas les bonnes réponses et je ne peux pas corriger manuellement.
\documentclass[a4paper]{article} \usepackage[T1]{fontenc} \usepackage[francais,bloc,completemulti]{automultiplechoice} \usepackage{xfp,forloop} \newcounter{ct} \begin{document} \ExplSyntaxOn \sys_gset_rand_seed:n{4586} \ExplSyntaxOff \exemplaire{10}{ %%% debut de l'en-tête des copies : \noindent{\bf QCM \hfill TEST} \begin{questionmult}{cat2-quest1} Parmi les fréquences ci-dessous, quelles sont celles qui correspondent à un son grave? \begin{reponses} \forloop{ct}{1}{\value{ct} < 15}{ \def\FreqAlea{\fpeval{randint(1,25000)}}%\FreqAlea \ifthenelse{\FreqAlea > 20 \AND \FreqAlea < 300}{\bonne{\FreqAlea}}{\mauvaise{\FreqAlea}} } \end{reponses} \end{questionmult} } \end{document}
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Antoine Bluheim over 2 years ago
Effectivement les réponses sont pas bonnes...
\element{categorie2}{
\begin{questionmult}{cat2-quest1}
Parmi les fréquences ci-dessous, quelles sont celles qui correspondent à un son grave?
\begin{multicols}{5}
\begin{reponses}
\forloop{ct}{1}{\value{ct} < 16}{
\def\FreqAlea{\fpeval{randint(1,25000)}}%\FreqAlea
\ifthenelse{\(\FreqAlea > 2000 \AND \FreqAlea < 10000 \)}{\bonne{\num{\FreqAlea}}}{\mauvaise{\num{\FreqAlea}}}
}
\end{reponses}
\end{multicols}
\end{questionmult}
}
J'ai modifié les valeurs pour voir mais toujours pareil!
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Antoine Bluheim over 2 years ago
Si je mets comme ça
@\element{categorie2}{
\begin{questionmult}{cat2-quest1}
Parmi les fréquences ci-dessous, quelles sont celles qui correspondent à un son grave?
\begin{multicols}{5}
\begin{reponses}
\forloop{ct}{1}{\value{ct} < 16}{
\FPeval\FreqAlea{round(1+24999*random,0)}
\ifthenelse{\(\FreqAlea > 2000 \AND \FreqAlea < 10000 \)}{\bonne{\FreqAlea}}{\mauvaise{\FreqAlea}}
}
\end{reponses}
\end{multicols}
\end{questionmult}
} @
les réponses sont bonnes.
Par contre, ce qui m'ennuie c'est que si je réduis l'intervalle à 20;300 par exemple, je suis pas sur à coup sur d'avoir au moins 2 valeurs de bonnes réponses!
RE: Bonnes réponses dans un certain intervalle de nombres aléatoires - Added by Frédéric Bréal over 2 years ago
Une autre idée serait de faire des listes de bonnes réponses et mauvaises et vous tirez au hasard un nombre dans une liste et le complément dans l'autre.
C'est avec listofitems https://project.auto-multiple-choice.net/boards/4/topics/11865?r=12150#message-12150
Il faut faire créer la liste automatiquement ou manuellement.
Je me penche sur cette solution dès que j'ai un peu de temps ( les conseils de classe arrivent ).
(1-12/12)