I'm doing a 3-sided sample space probability work (one of 4 sides, one of 6 sides and another of 8 sides)
I know that the sample space, without repetition between the data, is 4 * 6 * 8 = 192.
I saw in a topic here the following script:
from itertools import product
caracteres = [0, 1, 2]
permsList = []
genComb = product(caracteres, repeat=2) # aqui e onde tens de especificar o numero de chars que cada combinacao tenha
for subset in genComb:
print(subset) # tuple retornado com uma combinacao por loop
permsList.append(subset)
print(permsList) # [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
Where the product command generates all possible combinations, including repeated characters
But there were only two things missing:
As for example:
[(4,6,8); (3,6,8) ; (4,5,8) ; (4,6,7) ; (2,6,8) ; . . . ]
Could someone help me?
Edit (resolved) I did a scrip, with the help of those involved here, and you can make a sample space for as many data as you want, up to 5, with as many faces as you want in each:
from itertools import product
if(A==1 or A==2 or A==3 or A==4 or A==5):
if(A==1):
a=input("Quantas faces possui o dado 1?: ")
print(list(product(range(1, a+1))))
if(A==2):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
print(list(product(range(1, a+1), range(1, b+1))))
if(A==3):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
c=int(input("Quantas faces possui o dado 3?: "))
print(list(product(range(1, a+1), range(1, b+1), range(1, c+1))))
if(A==4):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
c=int(input("Quantas faces possui o dado 3?: "))
d=int(input("Quantas faces possui o dado 4?: "))
print(list(product(range(1, a+1), range(1, b+1), range(1, c+1), range(1, d+1))))
if(A==5):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
c=int(input("Quantas faces possui o dado 3?: "))
d=int(input("Quantas faces possui o dado 4?: "))
e=int(input("Quantas faces possui o dado 5?: "))
print(list(product(range(1, a+1), range(1, b+1), range(1, c+1), range(1, d+1), range(1, e+1))))
else:
print("Utilize números inteiros de 1 a 5")
In case you want to know the event:
from itertools import product
A=int(input("Quantas dados serão utilizados? (1-5): "))
if(A==1 or A==2 or A==3 or A==4 or A==5):
if(A==1):
a=input("Quantas faces possui o dado 1?: ")
X=input("Qual o evento (soma do número de faces)?: ")
resultado = product(range(1, a+1))
somam = [ x for x in resultado if x[0] == X]
print("Os eventos são, para os dados de :")
print(somam)
if(A==2):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
X=input("Qual o evento (soma do número de faces)?: ")
resultado = product(range(1, a+1), range(1,b+1))
somam = [ x for x in resultado if x[0] + x[1] == X]
print("Os eventos são, para os dados de :")
print(somam)
if(A==3):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
c=int(input("Quantas faces possui o dado 3?: "))
X=input("Qual o evento (soma do número de faces)?: ")
resultado = product(range(1, a+1), range(1,b+1), range(1,c+1))
somam = [ x for x in resultado if x[0] + x[1] + x[2] == X]
print("Os eventos são, para os dados de :")
print(somam)
if(A==4):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
c=int(input("Quantas faces possui o dado 3?: "))
d=int(input("Quantas faces possui o dado 4?: "))
X=input("Qual o evento (soma do número de faces)?: ")
resultado = product(range(1, a+1), range(1,b+1), range(1,c+1), range(1,d+1))
somam = [ x for x in resultado if x[0] + x[1] + x[2] + x[3] == X]
print("Os eventos são, para os dados de :")
print(somam)
if(A==5):
a=int(input("Quantas faces possui o dado 1?: "))
b=int(input("Quantas faces possui o dado 2?: "))
c=int(input("Quantas faces possui o dado 3?: "))
d=int(input("Quantas faces possui o dado 4?: "))
e=int(input("Quantas faces possui o dado 5?: "))
X=input("Qual o evento (soma do número de faces)?: ")
resultado = product(range(1, a+1), range(1,b+1), range(1,c+1), range(1,d+1), range(1,e+1))
somam = [ x for x in resultado if x[0] + x[1] + x[2] + x[3] + x[4] == X]
print("Os eventos são, para os dados de :")
print(somam)
else:
print("Utilize números inteiros de 1 a 5")