URL: https://linuxfr.org/forums/programmation-shell/posts/produire-un-certain-nombre-de-question-aleatoire Title: Produire un certain nombre de question aleatoire Authors: jony Date: 2005年07月24日T13:47:23+02:00 Tags: Score: 0 J essaye de produire un certains nombres de question aleatoire ayant un theme(A, B ou C) et ayant une difficulte(facile, pas tres difficile et difficile). Je viens de me rendre compte que la boucle que j ai faite n est pas tres efficiente, parce que je recois au lieu de par exemple 10 question parfois 12, ou moins. Ce qui est d apres ce que j ai programme normale, mais en ce moment je ne trouve pas une autre solution. Est ce quelqu´un aurait une idee. Voici le code: MAX_QUESTION_THEME=20 MAX_THEME=3 MAX_QUESTION=10 for i in $(cat abc.txt | head -$MAX_THEME); do echo "theme$i" >> tmp_t done liste_diff=(facile pas_tres_difficile difficile); for i in ${liste_diff[*]}; do echo $i >> tmp_d done while [ `cat tmp_q | wc -l` -lt $MAX_QUESTION ]; do for i in $(seq 0 $MAX_QUESTION ); do NUM=$[($RANDOM%$MAX_QUESTION) + 1] echo "f$NUM" >> tmp_q i=$[ $i + 1 ]; done sort tmp_q | uniq > tmp_q done Themes="`cat tmp_t`" Difficultes="`cat tmp_d`" Questions="`cat tmp_q`" question=($Questions) theme=($Themes) difficulte($Difficultes) nombre_de_question=${#questions[*]} nombre_de_theme=${#themes[*]} nombre_de_difficulte=${difficulltes[*]} while [ `cat tmp | wc -l` -lt $MAX_QUESTION_THEME ]; do for i in $(seq 0 $MAX_MAX_QUESTION_THEME ); do echo -n "question(${question[$((RANDOM%nombre_de_question))]}, " >> tmp echo -n "${theme[$((RANDOM%nombre_de_theme))]}, " >> tmp echo "${difficulte[$((RANDOM%nombre_de_difficulte))]})." >> tmp i=$[ $i + 1 ]; done