在Python中以1到3范围内的随机重复间隔生成2个变量的列表

在Python中以1到3范围内的随机重复间隔生成2个变量的列表,python,r,list,random,Python,R,List,Random,我需要在电子表格中为我的实验生成一个“X”和“O”符号的随机列表。总和应为200(100 X和100 O)。一行中不应该有超过三个相同的符号——我是python新手,所以我正在努力。它可以是Python或R。我非常感谢您的帮助。aimport random a <- sample(rep(c("X","O"), each = 100), 200, replace = F) table(a) X O 100 100 def random_ints_和(n): 当n>0时: r=ran

我需要在电子表格中为我的实验生成一个“X”和“O”符号的随机列表。总和应为200(100 X和100 O)。一行中不应该有超过三个相同的符号——我是python新手,所以我正在努力。它可以是Python或R。我非常感谢您的帮助。

a
import random
a <- sample(rep(c("X","O"), each = 100), 200, replace = F)

table(a)
X   O
100 100
def random_ints_和(n): 当n>0时: r=random.randint(1,3) n-=r 如果(n<0): n+=r 其他: 产量r def打印字符数(num,char): 对于范围内的i(0,num): 打印(char,end=“”) num_o=100 num_x=100 list\u of_o=list(随机输入与总和(num\u o)) 尽管如此: list_of_x=list(随机输入与总和(num_x)) 如果(len(list_of_o)==len(list_of_x)): 打破 对于范围(0,len(列表)中的i): 打印字符(o[i],“o”的列表) 打印字符(x[i],“x”的列表)
是的,它正在发挥作用,但在一个列表中,一行中有不止3个相同的符号-我不需要超过3个相同的符号
import random 

def random_ints_with_sum(n):
    while n > 0:
        r = random.randint(1, 3)
        n -= r
        if (n < 0):
          n += r
        else:
          yield r

def print_chars(num, char):
  for i in range(0,num):
    print(char, end="")

num_o = 100
num_x = 100

list_of_o = list(random_ints_with_sum(num_o))
while True:
  list_of_x = list(random_ints_with_sum(num_x))
  if (len(list_of_o) == len(list_of_x)):
    break


for i in range(0,len(list_of_o)):
  print_chars(list_of_o[i],"O")
  print_chars(list_of_x[i],"X")