質問編集履歴
1
コードにコメントを追加して読みやすくしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,27 +36,27 @@
|
|
36
36
|
|
37
37
|
import numpy as np
|
38
38
|
|
39
|
-
lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])
|
39
|
+
lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])#質問の一番上に書いてる配列と同じ
|
40
|
-
|
40
|
+
|
41
|
-
lst2 = np.zeros((10,3))
|
41
|
+
lst2 = np.zeros((10,3))#後に、質問の上から二番目に書いてる配列と同じになる
|
42
|
-
|
42
|
+
|
43
|
-
for i in range(len(lst)):
|
43
|
+
for i in range(len(lst)):#0つ目から試す(3にする前のもの)
|
44
44
|
|
45
45
|
lst2_temp = []
|
46
46
|
|
47
|
-
for j in range(len(lst)):
|
47
|
+
for j in range(len(lst)):#0つ目から試す(3にした後のもの)
|
48
|
-
|
48
|
+
|
49
|
-
if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:
|
49
|
+
if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:#それらの配列の0の数が一つ違う = 3が一つ増えた
|
50
|
-
|
50
|
+
|
51
|
-
if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:
|
51
|
+
if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:#それらの配列の差をとったときに、3でも0でもないところがない = 3が一つ増えた以外の変化はない
|
52
|
-
|
52
|
+
|
53
|
-
lst2_temp.append(j)
|
53
|
+
lst2_temp.append(j) #3にしたあとのものの番号を記録する
|
54
|
-
|
54
|
+
|
55
|
-
for j in range(len(lst2[0])-len(lst2_temp)):
|
55
|
+
for j in range(len(lst2[0])-len(lst2_temp)):#リストの長さを3に調整するためのもの
|
56
56
|
|
57
57
|
lst2_temp.append(0)
|
58
58
|
|
59
|
-
lst2[i] = np.array(lst2_temp)
|
59
|
+
lst2[i] = np.array(lst2_temp)#これで、質問の上から二番目に書いてる配列と同じになる
|
60
60
|
|
61
61
|
```
|
62
62
|
|
@@ -70,13 +70,13 @@
|
|
70
70
|
|
71
71
|
import numpy as np
|
72
72
|
|
73
|
-
lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])
|
73
|
+
lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])#質問の一番上に書いてる配列と同じ
|
74
|
-
|
74
|
+
|
75
|
-
lst2 = np.zeros((10,3))
|
75
|
+
lst2 = np.zeros((10,3))#後に、質問の上から二番目に書いてる配列と同じになる
|
76
76
|
|
77
77
|
print(lst)
|
78
78
|
|
79
|
-
for i in range(len(lst)):
|
79
|
+
for i in range(len(lst)):#0つ目から試す(3にする前のもの)
|
80
80
|
|
81
81
|
lst2_temp = []
|
82
82
|
|
@@ -84,7 +84,7 @@
|
|
84
84
|
|
85
85
|
print("i:",lst[i])
|
86
86
|
|
87
|
-
for j in range(len(lst)):
|
87
|
+
for j in range(len(lst)):#0つ目から試す(3にした後のもの)
|
88
88
|
|
89
89
|
print("j:",lst[j])
|
90
90
|
|
@@ -92,23 +92,23 @@
|
|
92
92
|
|
93
93
|
print("j_num:",np.count_nonzero(lst[j] > 0))
|
94
94
|
|
95
|
-
if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:
|
95
|
+
if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:#それらの配列の0の数が一つ違う = 3が一つ増えた
|
96
96
|
|
97
97
|
print(lst[j]-lst[i])
|
98
98
|
|
99
|
-
if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:
|
99
|
+
if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:#それらの配列の差をとったときに、3でも0でもないところがない = 3が一つ増えた以外の変化はない
|
100
100
|
|
101
101
|
print(j)
|
102
102
|
|
103
|
-
lst2_temp.append(j)
|
103
|
+
lst2_temp.append(j)#3にしたあとのものの番号を記録する
|
104
|
-
|
104
|
+
|
105
|
-
for j in range(len(lst2[0])-len(lst2_temp)):
|
105
|
+
for j in range(len(lst2[0])-len(lst2_temp)):#リストの長さを3に調整するためのもの
|
106
106
|
|
107
107
|
lst2_temp.append(0)
|
108
108
|
|
109
109
|
print("lst2_temp:",lst2_temp)
|
110
110
|
|
111
|
-
lst2[i] = np.array(lst2_temp)
|
111
|
+
lst2[i] = np.array(lst2_temp)#これで、質問の上から二番目に書いてる配列と同じになる
|
112
112
|
|
113
113
|
print(lst2)
|
114
114
|
|