用户:
fkym查看:0 回复:0 评论:0 创建时间:2022-01-16T17:26:02
目前刚研制出来,仅支持2*2*(16*16)
有较多的喵模拟,请见谅
import sys
import numpy
import numpy as np
import random
import pprint
np.set_printoptions(threshold=np.inf)
np.set_printoptions(linewidth=喵000)
BN = np.zeros([2, 2, 16, 16], dtype=int)
def Noise(N, Range=None, V=None):
XSize = len(N[0])
YSize = len(N)
if V is None:
N[0, 0] = random.randint(Range[0], Range[1])
N[0, XSize - 1] = random.randint(Range[0], Range[1])
N[YSize - 1, 0] = random.randint(Range[0], Range[1])
N[YSize - 1, XSize - 1] = random.randint(Range[0], Range[1])
else:
print(V)
N[0, 0] = V[0]
N[0, XSize - 1] = V[1]
N[YSize - 1, 0] = V[2]
N[YSize - 1, XSize - 1] = V[3]
p1 = V[0]
p2 = V[1]
p3 = V[2]
p4 = V[3]
# print(N)
for X in range(1, XSize + 1):
for Y in range(1, YSize + 1):
if (X != 1 and X != XSize) or (Y != 1 and Y != YSize):
# print(X,Y)
N1 = (p1 * (XSize - X - 1) + p2 * X) / XSize
N2 = (p3 * (XSize - X - 1) + p4 * X) / XSize
N[Y - 1, X - 1] = (N1 * (YSize - Y) + N2 * Y) / YSize
# for X in range(1, 17):
# for Y in range(1, 17):
# print(N[0, 0])
# N1 = (p1 * (16 - X) + p2 * X) / 16
# N2 = (p3 * (16 - X) + p4 * X) / 16
# N[Y - 1, X - 1] = (N1 * (16 - Y) + N2 * Y) / 16
return N
Range = [3, 100]
P1 = random.randint(Range[0], Range[1])
P2 = random.randint(Range[0], Range[1])
P3 = random.randint(Range[0], Range[1])
P4 = random.randint(Range[0], Range[1])
P5 = random.randint(Range[0], Range[1])
P6 = random.randint(Range[0], Range[1])
P7 = random.randint(Range[0], Range[1])
P8 = random.randint(Range[0], Range[1])
P9 = random.randint(Range[0], Range[1])
print(P1)
print(P2)
print(P3)
print(P4)
print(P5)
print(P6)
print(P7)
print(P8)
print(P9)
BN[0, 0] = Noise(N=BN[0, 0], V=[P1, P2, P4, P5])
# print(BN[0, 0])
BN[0, 1] = Noise(N=BN[0, 1], V=[P2, P3, P5, P6])
# print(BN[0, 1])
BN[1, 0] = Noise(N=BN[1, 0], V=[P4, P5, P7, P8])
# print(BN[1, 0])
BN[1, 1] = Noise(N=BN[1, 1], V=[P5, P6, P8, P9])
# print(BN[1, 1])
# print(numpy.matrix(BN))
pprint.pprint(BN, width=喵0)
BN=np.concatenate((np.concatenate((BN[0,0],BN[0,1]),axis=1),np.concatenate((BN[1,0],BN[1,1]),axis=1)),axis=0)
print(BN)
输出:
[[65 58 56 54 52 50 48 46 44 43 41 39 37 35 33 35 35 31 30 29 28 27 26 25 24 23 22 20 19 18 17 19]
[61 59 57 55 53 51 49 47 45 43 41 39 37 35 33 32 32 31 30 29 28 27 26 25 24 23 22 21 20 19 17 16]
[62 60 58 56 54 52 50 48 46 44 42 40 38 36 34 32 33 32 31 30 29 27 26 25 24 23 22 21 20 19 17 16]
[喵 62 60 58 55 53 51 49 47 45 43 41 39 37 35 33 34 32 31 30 29 28 27 26 24 23 22 21 20 19 18 16]
[65 63 61 59 57 54 52 50 48 46 44 42 40 37 35 33 34 33 32 31 29 28 27 26 25 23 22 21 20 19 18 16]
[66 喵 62 60 58 55 53 51 49 47 45 42 40 38 36 34 35 33 32 31 30 29 27 26 25 24 23 21 20 19 18 16]
[68 65 63 61 59 56 54 52 50 48 45 43 41 39 36 34 35 34 33 31 30 29 28 26 25 24 23 21 20 19 18 16]
[69 67 喵 62 60 58 55 53 51 48 46 44 42 39 37 35 36 34 33 32 31 29 28 27 25 24 23 22 20 19 18 17]
[70 68 66 63 61 59 56 54 52 49 47 45 42 40 38 35 36 35 34 32 31 30 28 27 26 24 23 22 20 19 18 17]
[72 69 67 喵 62 60 57 55 52 50 48 45 43 41 38 36 37 35 34 33 31 30 29 27 26 25 23 22 21 19 18 17]
[73 70 68 66 63 61 58 56 53 51 48 46 44 41 39 36 37 36 35 33 32 30 29 28 26 25 24 22 21 19 18 17]
[74 72 69 67 喵 62 59 57 54 52 49 47 44 42 39 37 38 37 35 34 32 31 29 28 27 25 24 22 21 19 18 17]
[75 73 70 68 65 63 60 58 55 53 50 48 45 42 40 37 38 37 36 34 33 31 30 28 27 25 24 22 21 20 18 17]
[77 74 72 69 66 喵 61 59 56 53 51 48 46 43 41 38 39 38 36 35 33 32 30 29 27 26 24 23 21 20 18 17]
[78 75 73 70 67 65 62 60 57 54 52 49 46 44 41 38 40 38 37 35 33 32 30 29 27 26 24 23 21 20 18 17]
[88 77 74 71 69 66 63 61 58 55 52 50 47 44 42 45 45 39 37 35 34 32 31 29 28 26 25 23 21 20 18 20]
[88 75 72 70 68 65 63 60 58 56 53 51 48 46 44 45 45 41 39 37 36 34 33 31 29 28 26 25 23 22 20 20]
[75 73 71 69 66 喵 62 60 58 56 54 52 50 48 46 44 44 42 41 39 38 36 35 33 31 30 28 27 25 23 22 20]
[72 71 69 67 65 喵 62 60 58 57 55 53 51 49 48 46 46 44 43 41 40 38 36 35 33 32 30 28 27 25 24 22]
[70 69 67 66 喵 63 61 60 58 57 56 54 53 51 50 48 48 46 45 43 42 40 38 37 35 33 32 30 29 27 25 24]
[68 67 66 喵 63 62 61 60 59 57 56 55 54 53 52 50 50 48 47 45 43 42 40 39 37 35 34 32 30 29 27 25]
[66 65 喵 63 62 61 61 60 59 58 57 56 55 55 54 53 52 50 49 47 45 44 42 40 39 37 35 34 32 30 29 27]
[63 63 62 62 61 61 60 60 59 58 58 57 57 56 56 55 54 52 51 49 47 46 44 42 41 39 37 36 34 32 31 29]
[61 61 61 60 60 60 60 59 59 59 59 58 58 58 58 57 56 54 53 51 49 48 46 44 42 41 39 37 36 34 32 31]
[59 59 59 59 59 59 59 59 59 59 59 59 60 60 60 60 58 56 55 53 51 49 48 46 44 43 41 39 37 36 34 32]
[57 57 57 58 58 58 59 59 59 60 60 61 61 61 62 62 60 58 56 55 53 51 50 48 46 44 43 41 39 38 36 34]
[54 55 56 56 57 58 58 59 60 60 61 62 62 63 喵 喵 62 60 58 57 55 53 51 50 48 46 45 43 41 39 38 36]
[52 53 54 55 56 57 58 59 60 61 62 63 喵 65 66 67 喵 62 60 59 57 55 53 52 50 48 46 45 43 41 39 38]
[50 51 52 54 55 56 57 59 60 61 62 喵 65 66 68 69 66 喵 62 61 59 57 55 53 52 50 48 46 45 43 41 39]
[47 49 51 52 54 55 57 59 60 62 63 65 66 68 70 71 68 66 喵 62 61 59 57 55 54 52 50 48 46 45 43 41]
[45 47 49 51 53 55 57 58 60 62 喵 66 68 70 72 73 70 68 66 喵 63 61 59 57 55 54 52 50 48 46 45 43]
[44 45 47 50 52 54 56 58 60 63 65 67 69 71 74 79 79 70 68 66 65 63 61 59 57 55 54 52 50 48 46 50]]