将序列从以前的代码导入到另一个
Importing sequence from previous code into another
这是我的任务:
卡片有两种类型:红色和蓝色。 6-10 张卡片被抽出并放回。抽出另外 6-10 张牌。我创建了一个序列,可以给出 6、7、8、9 和 10 张牌的所有可能结果。这是序列:
from itertools import combinations_with_replacement
def generate_sequence():
box_1=['R','B']
comb = combinations_with_replacement(box_1, 6)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 7)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 8)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 9)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 10)
for i in list(comb):
print(i)
现在,我必须将生成的序列导入到我编写的这个方程中。
#Draws
first_draw =
second_draw =
#Before first draw
initial_estimate = 0.5
initial_variance = 1/12
#After first draw
r_count = first_draw.count('R')
b_count = first_draw.count('B')
alpha = 1 + r_count
beta = 1 + b_count
e_of_theta = alpha/(alpha+beta)
surprise = ((e_of_theta - initial_estimate)**2)/(initial_variance)
var_theta = (alpha * beta)/ ((alpha + beta) **2 *(alpha + beta + 1))
#After second draw
r_count = second_draw.count('R')
b_count = second_draw.count('B')
new_alpha = alpha + r_count
new_beta = beta + b_count
new_e_of_theta = new_alpha/(new_alpha + new_beta)
surprise = ((new_e_of_theta - e_of_theta)**2)/var_theta
print(surprise)
在first_draw和second_draw所在的空白区域,就是我需要放入第一个代码生成的序列的地方。我需要序列的所有可能组合为 first_draw 和 second_draw,因此我得到了等式所有可能结果的列表。但是,我正在努力将这些序列插入 first_draw 和 second_draw。有人可以帮我解决这个问题吗?
如果您想 'draw' 从列表中随机选择一个元组,请使用:
from itertools import combinations_with_replacement
import pandas as pd
import random
deckOrder=[]
box_1=['R','B']
comb = combinations_with_replacement(box_1, 6)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 7)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 8)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 9)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 10)
for i in list(comb):
deckOrder.append(i)
#Draw
first_draw = random.sample(deckOrder, 1)
second_draw = random.sample(deckOrder, 1)
这是我的任务:
卡片有两种类型:红色和蓝色。 6-10 张卡片被抽出并放回。抽出另外 6-10 张牌。我创建了一个序列,可以给出 6、7、8、9 和 10 张牌的所有可能结果。这是序列:
from itertools import combinations_with_replacement
def generate_sequence():
box_1=['R','B']
comb = combinations_with_replacement(box_1, 6)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 7)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 8)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 9)
for i in list(comb):
print(i)
comb = combinations_with_replacement(box_1, 10)
for i in list(comb):
print(i)
现在,我必须将生成的序列导入到我编写的这个方程中。
#Draws
first_draw =
second_draw =
#Before first draw
initial_estimate = 0.5
initial_variance = 1/12
#After first draw
r_count = first_draw.count('R')
b_count = first_draw.count('B')
alpha = 1 + r_count
beta = 1 + b_count
e_of_theta = alpha/(alpha+beta)
surprise = ((e_of_theta - initial_estimate)**2)/(initial_variance)
var_theta = (alpha * beta)/ ((alpha + beta) **2 *(alpha + beta + 1))
#After second draw
r_count = second_draw.count('R')
b_count = second_draw.count('B')
new_alpha = alpha + r_count
new_beta = beta + b_count
new_e_of_theta = new_alpha/(new_alpha + new_beta)
surprise = ((new_e_of_theta - e_of_theta)**2)/var_theta
print(surprise)
在first_draw和second_draw所在的空白区域,就是我需要放入第一个代码生成的序列的地方。我需要序列的所有可能组合为 first_draw 和 second_draw,因此我得到了等式所有可能结果的列表。但是,我正在努力将这些序列插入 first_draw 和 second_draw。有人可以帮我解决这个问题吗?
如果您想 'draw' 从列表中随机选择一个元组,请使用:
from itertools import combinations_with_replacement
import pandas as pd
import random
deckOrder=[]
box_1=['R','B']
comb = combinations_with_replacement(box_1, 6)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 7)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 8)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 9)
for i in list(comb):
deckOrder.append(i)
comb = combinations_with_replacement(box_1, 10)
for i in list(comb):
deckOrder.append(i)
#Draw
first_draw = random.sample(deckOrder, 1)
second_draw = random.sample(deckOrder, 1)