创建一个随机位置的矩阵

时间:2014-05-11 10:41:27

标签: python random

我正在用这个

创建一个矩阵
def letsplay(m,n):
    matrix = [[ '.' for m in range(10)] for n in range(10)]
    for sublist in matrix:
        s = str(sublist)
        s = s.replace('[', '|').replace(']', '|').replace(',', "")
        print(s)

返回

>>> '.'.'.'.'.'.'.'.'.'.'
    '.'.'.'.'.'.'.'.'.'.'
    ...
    ...

创建矩阵10x10。现在我想在矩阵中添加概率=概率的随机位置,用户应输入概率,然后返回随机概率为'N'。

2 个答案:

答案 0 :(得分:1)

如何使用概率矩阵:

probs = numpy.random.random_sample((10, 10))
data = numpy.empty(probs.shape, dtype='S1')
data.fill('.')
data[probs < threshold] = 'N'

其中threshold是您选择的变量,例如0.05表示5%的可能性。

答案 1 :(得分:0)

不太确定prob = 5意味着什么,概率范围从0到1? 我认为你的问题有两个部分。

  • 更改矩阵的随机元素

    matrix[random.randrange(10)][random.randrange(10)] = 'N'

  • 基于概率在矩阵中更改了许多元素。

    import random
    prob = 0.01
    numNs = prob*10*10 # because e.g. 1% chance in 10x10 matrix = 1 field
    for i in range(numNs):   
      changed = False   
      while not changed:
        x = random.randrange(10)
        y = random.randrange(10)
        if not matrix[x][y] == 'N': # if not already changed
          matrix[x][y] = 'N'
          changed = True