xerxeslins

Monty Hall (Mario Version)

Jan 25th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.61 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # versão 1.0
  4. # por Xerxes Lins (www.vivaolinux.com.br/~xerxeslins)
  5. # 11/06/2014
  6.  
  7. # Veja a imagem:
  8.  
  9. # http://www.mariowiki.com/images/thumb/b/bf/Toad_House_SMB3_NES.png/160px-Toad_House_SMB3_NES.png
  10.  
  11. # Mario e Toad estão numa sala onde há três baús (baú 1, 2 e 3).
  12. # Toad diz que dentro de UM dos três baús tem um prêmio, e nada nos outros dois.
  13. # Toad diz que Mario deve escolher um baú. Depois disso, ele (Toad) irá mostrar um baú vazio
  14. # e perguntar se Mario quer trocar sua escolha ou não.
  15. # Mario escolheu o baú número 1. Toad abriu o baú 3 que estava vazio e perguntou
  16. # ao Mario se ele queria trocar de baú ou continuar com o baú 1. Era a última chance de Mario.
  17.  
  18. # Qual é a melhor opção para Mario?
  19.  
  20. # 1. trocar de baú, optando pelo baú 2.
  21. # 2. Não trocar. Permanecer com o baú 1.
  22. # 3. tanto faz.
  23.  
  24. # Este script faz um teste das chances de Mario encontrar o prêmio, tanto escolhendo trocar
  25. # como não trocar o baú. Trata-se de um problema conhecido como Monty Hall.
  26.  
  27. # Vamos lá!
  28.  
  29. #quantas vezes Mario vai tentar
  30. num_vezes=31 #(31 para 30 vezes, sempre um a mais)
  31. vez_atual=1
  32.  
  33. #numero de vezes que mario acharia o prêmio sem trocar de baú e trocando
  34. vezes_sem_trocar=0; vezes_trocando=0
  35.  
  36. clear
  37. echo "Mario e as possibilidades... Testando $[$num_vezes-1] vezes."
  38. echo " "
  39.  
  40. function mario_escolhe() {
  41.  
  42.   #define o baú escolhio por Mario e o baú com prêmio, aleatoriamente
  43.   bau_com_premio=$[$RANDOM % 3 ]
  44.   bau_escolhido=$[$RANDOM % 3 ]
  45.  
  46.   #Toad sempre abre um baú vazio e nunca o mesmo baú escolhido por Mario
  47.   bau_de_toad=0
  48.   while [ "$bau_de_toad" = "$bau_escolhido" ] || [ "$bau_de_toad" = "$bau_com_premio" ]; do
  49.     bau_de_toad=$[$RANDOM % 3]
  50.   done
  51.  
  52.   echo " "
  53.   echo -n "$vez_atual - Mario escolheu primeiro o baú nº $[1+$bau_escolhido]. Toad abriu o baú nº $[1+$bau_de_toad]. "
  54.  
  55.   if [ "$bau_escolhido" = "$bau_com_premio" ]; then
  56.     echo -n "Dessa vez, se Mario NÃO trocar o baú, ganhará o prêmio!"
  57.     vezes_sem_trocar=$[$vezes_sem_trocar+1]
  58.     else
  59.       echo -n "Dessa vez, se Mario trocar o baú, ganhará o prêmio!"
  60.       vezes_trocando=$[$vezes_trocando+1]
  61.   fi
  62. }
  63.  
  64.  
  65. while [ "$num_vezes" -gt "$vez_atual" ]; do
  66.   mario_escolhe
  67.   vez_atual=$[$vez_atual+1]
  68. done
  69.  
  70. echo ""
  71. echo ""
  72. echo "Resultado:"
  73. echo "Quantidade de sucessos se NÃO trocasse o baú: $vezes_sem_trocar"
  74. echo "Quantidade de sucessos se trocasse o baú: $vezes_trocando"
  75. echo " "
  76. echo "E então,trocar de baú aumenta ou não as chances de encontrar o prêmio? :]"
  77. echo "Mais informações em: http://pt.m.wikipedia.org/wiki/Problema_de_Monty_Hall"
  78. exit 0
Advertisement
Add Comment
Please, Sign In to add comment