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)