【问题标题】:create random number in a specific area of a square在正方形的特定区域创建随机数
【发布时间】:2017-06-10 16:16:40
【问题描述】:

我正在尝试创建这样一个对称矩阵,每个区域的元素密度不同。

矩阵是 256x256,在 1 级 我有 16 个长度为 16 的正方形,每个有 10 个元素:

#LEVEL I
C = np.zeros((256,256))
s = 0
for k in range(16):
    if k > 0:
        s += 16
    while m < 10: #number of elements in most inner square
        i,j = np.random.randint(s,s+16,size=2) # randint(low,high,size)
        C[i,j] = C[j,i] = 1
        m = 0.5 * np.sum(C[s:s+16,s:s+16])  # count the number of elements

2 级我有 4 个长度为 64 的正方形,每个正方形都有 4 个元素,除了小正方形内的元素(4 个正方形,每个 10 个元素 + 4 个大正方形的元素)。

对于第 2 级,我需要创建不与小方块重叠的整数随机数。

#LEVEL II
s = 0
for k in range(4):
    if k>0:
        s += 64
    while m < (40+4):
        # create i,j with no overlapping with small squares
        C[i,j]=C[j,i] = 1
        m = 0.5 * np.sum(C[s:s+64,s:s+64])

感谢任何想法或评论。

#编辑 我认为一种解决方案可以定义另一个方阵,其子方均为 aij=1,并比较每个 while 循环中的元素数量。

【问题讨论】:

  • 您的要求不是很清楚。你的意思是在第 1 级你有 256 个大小为 16x16 的正方形在大小为 256x256 的矩阵中?每个级别 1 的正方形“有 10 个元素”是什么意思?以此类推。
  • 我认为这个数字比我的解释更清楚。你可以看到1个大正方形。里面有 4 个较小的正方形(浅红色 2 级)和 16 个较小的正方形(深红色 1 级)。 1(256x256) = 4(4x64) = 16 (16x16)
  • 每个(aij = aji) !=0是对称矩阵中的一个元素
  • @Abolfazl 某一层每个方格之间的数字可以重叠吗?

标签: python algorithm


【解决方案1】:
import numpy as np

# Matrix size and inner squares length
s = 256
L2 = 64
L1 = 16

# Create matrix and masks along MAIN diagonal
C = 1 - np.random.random((s, s))
L2_mask = np.array([range(s)]*s)//L2 + np.array([range(s-1, -1, -1)]*s).T//L2
L1_mask = np.array([range(s)]*s)//L1 + np.array([range(s-1, -1, -1)]*s).T//L1

# Fill in inner squares
C[np.where(L2_mask == 3)] = np.random.randint(2, 10, 16384)
C[np.where(L1_mask == 15)] = np.random.randint(100, 200, 4096)

要生成对称矩阵,我可以建议两种方法:

# Turn matrix into symmetric
C_symm = (C + C.T)//2

# Turn matrix into symmetric
C_symm = np.tril(C) + np.tril(C, -1).T

现在只需翻转它:

# Flip it
C_final = np.fliplr(C_symm)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多