Jump to content
Luis Carlos Moura

Ajuda a utilizar o while

Recommended Posts

Sou um iniciante no Python e estou precisando de ajuda a utilizar ele para realizar o loop para diminuir linhas do programa.
O programa serve para verificar numericamente a probabilidade de um certo evento acontecer.

O script do programa é:

 

from itertools import product
from math import *

from numpy import*

 

#Espaço Amostral, Eventos e Probabilidades para a combinação de dados (D4,D6,D8):

 

X=18

 

espaco = list(product(range(1, 4+1), range(1, 6+1), range(1, 8+1)))
TAM1 = size(array(espaco))/3

 

evento = [ x for x in espaco if x[0] + x[1] + x[2] == X]
evento_1 = [ x for x in espaco if x[0] + x[1] + x[2] == X-1]
evento_2 = [ x for x in espaco if x[0] + x[1] + x[2] == X-2]
evento_3 = [ x for x in espaco if x[0] + x[1] + x[2] == X-3]
evento_4 = [ x for x in espaco if x[0] + x[1] + x[2] == X-4]
evento_5 = [ x for x in espaco if x[0] + x[1] + x[2] == X-5]
evento_6 = [ x for x in espaco if x[0] + x[1] + x[2] == X-6]
evento_7 = [ x for x in espaco if x[0] + x[1] + x[2] == X-7]
evento_8 = [ x for x in espaco if x[0] + x[1] + x[2] == X-8]
evento_9 = [ x for x in espaco if x[0] + x[1] + x[2] == X-9]
evento_10 = [ x for x in espaco if x[0] + x[1] + x[2] == X-10]
evento_11 = [ x for x in espaco if x[0] + x[1] + x[2] == X-11]
evento_12 = [ x for x in espaco if x[0] + x[1] + x[2] == X-12]
evento_13 = [ x for x in espaco if x[0] + x[1] + x[2] == X-13]
evento_14 = [ x for x in espaco if x[0] + x[1] + x[2] == X-14]
evento_15 = [ x for x in espaco if x[0] + x[1] + x[2] == X-15]
evento_16 = [ x for x in espaco if x[0] + x[1] + x[2] == X-16]
evento_17 = [ x for x in espaco if x[0] + x[1] + x[2] == X-17]

 

TAM2 = size(array(evento))/3
TAM2_1 = size(array(evento_1))/3
TAM2_2 = size(array(evento_2))/3
TAM2_3 = size(array(evento_3))/3
TAM2_4 = size(array(evento_4))/3
TAM2_5 = size(array(evento_5))/3
TAM2_6 = size(array(evento_6))/3
TAM2_7 = size(array(evento_7))/3
TAM2_8 = size(array(evento_8))/3
TAM2_9 = size(array(evento_9))/3
TAM2_10 = size(array(evento_11))/3
TAM2_11 = size(array(evento_12))/3
TAM2_12 = size(array(evento_13))/3
TAM2_13 = size(array(evento_14))/3
TAM2_14 = size(array(evento_15))/3
TAM2_15 = size(array(evento_16))/3
TAM2_16 = size(array(evento_17))/3
TAM2_17 = size(array(evento_17))/3

 

A = TAM2*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_1*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_2*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_3*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_4*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_5*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_6*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_7*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_8*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_9*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_10*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_11*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_12*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_13*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_14*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_15*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_16*(1.0/TAM1)
print(round(A*100, 2))
A = TAM2_17*(1.0/TAM1)


print(round(A*100, 2))

 

Ao iniciar o scrip sairá:
0.52
1.56
3.13
5.21
7.29
9.38
10.94
11.98
11.98
10.94
7.29
5.21
3.13
1.56
0.52
0.0
0.0
0.0

 

Eu queria diminuir o tamanho desse programa utilizando um loop, tendo os mesmo resultados no final.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
    • By Wallis
      Olá, sou novo por aqui e estou aprendendo PHP agora.
      O meu problema é relacionado a um exercício que deve ser simples de resolver para vocês. 
      Vou colocar ele aqui, caso alguém posso me ajudar. 

      Utilizando um while, fazer um programa que lance uma moeda (escolhendo  um número aleatório que pode ser 0 ou 1) até tirar 5 vezes cara (o número 1).  Ao terminar, imprimir o número de lançamentos da moeda até tirar 5 vezes  cara.  
       
      Desde já agradeço. vlw
    • By hugogomess
      Olá, eu quero fazer um script com pillow que capture a imagem de uma janela específica mesmo que ele esteja sobreposta por outras ou seja redimensionada, quero que quando um pixel específico mudar de cor seja digitado uma sequencia de letras (farei essa parte de digitar com o pyautogui, não tenho dúvidas nessa parte) mas para saber se o pixel mudou de cor, o pillow precisa monitorar essa janela mesmo que ela seja redimensionada ou sobreposta/minimizada.
      Alguém sabe como posso fazer isso? Não tenho exemplo de código pois ainda não comecei o script.
      Outra coisa, alguém sabe como posso fazer com python de maneira geral ou outra lib para saber se um processo está ou não sendo executado?
      Sou novo no aqui então desculpa ae qualquer coisa que esteja errada.
    • By Gui2000
      Linguagem C
      Obs: A categoria não possua C.
      Se não entenderam posso melhorar o texto. Preciso de uma luz nesse código.

      O problema real é que pretendo criar uma struct para letras que vai guardar uma letra e uma para nomes e com isso pretendo criar uma lista encadeada simples para a struct letras pegar apenas três letras.

      Problema

      (Após criar as structs pretendo fazer com um ponteiro dentro da struct letra aponte para a struct de nomes e com isso vou conseguir criar três letras com nome respectivos as iniciais, ao passar cada posição das letras para um vetor de três espaços, e fazendo com que cada endereço novo aponte para diferentes nomes a partir da letra) , exemplo:
      A - Adriano..
      B - Bruno..
      C - Carlos..
      Quero fazer com que a partir das letras eu possa apontar para os nomes.

      Linguagem C. E só estou tentando criar no papel no momento.

      Meu nome é Guilherme. Não criei o código ainda é um pedido do meu professor, não peço que façam por mim apenas que me ajudem na implementação e se minha lógica está errada, onde e por favor me expliquem. ^^
    • By fagner552
      O Voleibol é um esporte praticado numa quadra dividida em duas partes por uma rede, possuindo duas equipes
      de seis jogadores em cada lado. O objetivo da modalidade é fazer passar a bola sobre a rede de modo a que a
      bola toque no chão dentro da quadra adversária, ao mesmo tempo que se evita que os adversários consigam
      fazer o mesmo. No Brasil esta modalidade ganhou muita popularidade na década de 80 com a conhecida
      “geração de prata” da seleção brasileira de vôlei. Este esporte também é muito praticado em competições
      recreativas.
      Baseado nesta característica do vôlei o departamento de marketing de uma determinada empresa resolveu
      promover um jogo comemorativo para as festas de final de ano. Para haver equilíbrio na disputa estabeleceu as
      seguintes regras:
      - Participarão do jogo as primeiras 12 pessoas inscritas;
      - As equipes serão definidas por sorteio.
      Considerando estas regras foi solicitado ao setor de informática o desenvolvimento de um programa em Python
      para:
      a) Permitir o cadastro do Número da inscrição, Nome, Idade e Altura das 12 primeiras pessoas inscritas;
      b) Imprimir a lista dos inscritos (veja lay-out abaixo); 
      c) Montar (randomicamente) os dois times. Imprimir as equipes; 
      d) Imprimir a média de idade e de altura de cada equipe.
       
      Insc Nome Alt Idade
      01 ana 1.70 20
      02 jose 1.65 23
      03 pedro 1.80 21
      04 maria 1.70 25
      05 diana 1.75 26
      06 rui 1.90 18
      07 edna 1.70 23
      08 caio 1.85 21
      09 lea 1.60 26
      10 hugo 1.75 25
      11 tania 1.80 24
      12 marta 1.70 26

      Equipe 1:
      Insc Nome Alt Idade
      09    lea  1.60     26
      03   pedro 1.80   21
      04   maria 1.70   25
      08   caio  1.85    21
      06   rui    1.90    18
      10   hugo 1.75  25
      Media de idade da equipe 1: 22.67
      Media de altura da equipe 1: 1.77
       
      Equipe 2:
      Insc Nome Alt Idade
      01   ana   1.70   20
      07 edna    1.70      23
      11 tania   1.80      24
      12 marta 1.70    26
      02 jose    1.65       23
      05 diana  1.75     26
      Media de idade da equipe 2: 23.67
      Media de altura da equipe 2: 1.72
       
       
      Até agora fiz até a letra b, que no caso ele dá os inscritos gerais, queria saber se alguem poderia me dar um help de como sortear nesse formato de duas equipes ja colocando as medias em cada uma delas?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.