#title: media #author: jj #let: n amostra0[10] = num_sample_gen(10, 4, 20, 1); media0 = media_from_prev_sample() ; n amostra1[7] = num_sample_gen(7, 4, 20, 0); media1 = media_from_prev_sample() ; moda1 = moda_from_prev_sample() ; n amostra2[7] = num_sample_gen(7, 4, 20, 2); media2 = media_from_prev_sample() ; n amostra3[15] = enum_sample_gen(15, "ás", "dama", "valete", "rei", 10, 9 ); moda3 = moda_from_prev_sample() ; #question: Considere o seguinte conjunto de notas dos testes da turma (1 casa decimal):\\ A0 = #amostra0[] as notas finais (inteiros):\\ A1 = \texttt{#amostra1[sep= | ]} e as notas de recurso (2 casas decimais):\\ A2 = #amostra2[sep= :: ] Considere ainda os seguintes lançamentos de dados de poker (enumerado):\\ A3 = #amostra3[sep=, ] \begin{enumerate} \item Qual a média das notas de A0? \item Qual a média das notas de A1? \item Qual a moda das notas de A1? \item Qual a média das notas de A2? \item Qual a moda dos dados de poker? \end{enumerate} #sugestion: #resolution: Resposta: .1 media0 = #media0 .1 media1 = #media1 .1 moda1 = #moda1 .1 media2 = #media2 .1 moda3 = #moda3 # #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");