#title: media #author: jj #let: n a1 = [1,2,3]; n amostra0[10] = num_sample_gen(10, 4, 20, 1); media0 = media_from_prev_sample() ; n amostra1[3] = num_sample_gen(3, 4, 20, 0); media1 = media_from_prev_sample() ; moda1 = moda_from_prev_sample() ; n amostra2[4] = num_sample_gen(4, 4, 20, 2); media2 = media_from_prev_sample() ; n amostra3[15] = enum_sample_gen(15, "ás", "dama", "valete", "rei", 7 ); moda3 = moda_from_prev_sample() ; #question: Considere o seguinte conjunto de notas dos testes da turma:\\ \begin{Verbatim} A0 = #amostra0[] \end{Verbatim} media = #media0 e as notas finais:\\ \texttt{ A1 = #amostra1[sep= ]} media = #media1 moda = #moda1 e as notas finais:\\ \texttt{ A2 = #amostra2[sep= ]} media = #media2 e as notas finais:\\ \texttt{ A3 = #amostra3[sep= ]} moda = #moda3 \begin{enumerate} \item Qual a média das notas do teste turma? \item Qual a média das notas finais? \item Qual a moda das notas finais? \item Qual a moda das notas finais? \end{enumerate} #sugestion: #resolution: \begin{enumerate} \item #media1 \item #media2 \item #moda1 \item #moda3 \end{enumerate} #result: #Verify: #usepackage \usepackage{fancyvrb} #perl add_fun( enum_sample_gen => sub{ my ($q,@r)=@_; my $x; $x =[ map {$r[int(rand(scalar @r))]} 1..$q ]; set_v(AMOSTRA => $x); return $x }, "str-list"); add_fun( num_sample_gen => sub{ my ($q,$mi,$ma,$dec)=@_; my $x; if($dec) { $x =[ map { sprintf("%.0${dec}f",rand($ma-$mi)+$mi)} 1..$q ];} else { $x =[ map { int(rand($ma-$mi)) + $mi } 1..$q ];} set_v(AMOSTRA => $x); return $x }, "int-list"); add_fun( media_from_prev_sample => sub{ my($m,$c)=(0,0); my $A = get_v("AMOSTRA")||[0]; for(@$A){ $m += $_; $c++ } return $m/$c}, "int"); add_fun( moda_from_prev_sample => sub{ my $A = get_v("AMOSTRA")||[0]; my(%aux, $v,$vv); $v = 0; for(@$A){ $aux{$_}++ ;} for(keys %aux){ if ($aux{$_} > $v){ $v = $aux{$_}; $vv = [$_];} elsif($aux{$_} == $v){ push(@$vv,$_);} } return join(", ", @{$vv}); }, "int");