首页 > 解决方案 > 将先前代码中的序列导入另一个

问题描述

这是我的任务:

有两种类型的卡片:红色和蓝色。正在抽出 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 中。有人可以帮我吗?

标签: pythonlistsequenceequation

解决方案


如果您想从列表中“绘制”一个随机元组,请使用以下命令:

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)

推荐阅读