動きがわからないということでしたので、ループ中i
とt
がどこにいるのかわかりやすいよう、出力させるコードを追加してみました。
rb
1 array = [ 'HND' , 'NRT' , 'KIX' , 'NGO' , 'NGO' ]
2
3 is_duplicate = false
4
5 array . size . times do | i |
6 array . size . times do | j |
7
8 dup_array = array . dup
9 dup_array [ i ] + = '[i]'
10 dup_array [ j ] + = '[j]'
11 puts "i= #{ i } , j= #{ j } "
12 puts "iとtの位置: #{ dup_array } "
13 puts "i != j: #{ i != j } "
14 puts "array[i] == array[j]: #{ array [ i ] == array [ j ] } "
15 puts
16
17 if i != j && array [ i ] == array [ j ]
18 is_duplicate = true
19 end
20 end
21 end
22
23 puts is_duplicate
実行すると以下の結果が得られます。
text
1 i=0, j=0
2 iとtの位置: ["HND[i][j]", "NRT", "KIX", "NGO", "NGO"]
3 i != j: false
4 array[i] == array[j]: true
5
6 i=0, j=1
7 iとtの位置: ["HND[i]", "NRT[j]", "KIX", "NGO", "NGO"]
8 i != j: true
9 array[i] == array[j]: false
10
11 i=0, j=2
12 iとtの位置: ["HND[i]", "NRT", "KIX[j]", "NGO", "NGO"]
13 i != j: true
14 array[i] == array[j]: false
15
16 i=0, j=3
17 iとtの位置: ["HND[i]", "NRT", "KIX", "NGO[j]", "NGO"]
18 i != j: true
19 array[i] == array[j]: false
20
21 i=0, j=4
22 iとtの位置: ["HND[i]", "NRT", "KIX", "NGO", "NGO[j]"]
23 i != j: true
24 array[i] == array[j]: false
25
26 i=1, j=0
27 iとtの位置: ["HND[j]", "NRT[i]", "KIX", "NGO", "NGO"]
28 i != j: true
29 array[i] == array[j]: false
30
31 i=1, j=1
32 iとtの位置: ["HND", "NRT[i][j]", "KIX", "NGO", "NGO"]
33 i != j: false
34 array[i] == array[j]: true
35
36 i=1, j=2
37 iとtの位置: ["HND", "NRT[i]", "KIX[j]", "NGO", "NGO"]
38 i != j: true
39 array[i] == array[j]: false
40
41 i=1, j=3
42 iとtの位置: ["HND", "NRT[i]", "KIX", "NGO[j]", "NGO"]
43 i != j: true
44 array[i] == array[j]: false
45
46 i=1, j=4
47 iとtの位置: ["HND", "NRT[i]", "KIX", "NGO", "NGO[j]"]
48 i != j: true
49 array[i] == array[j]: false
50
51 i=2, j=0
52 iとtの位置: ["HND[j]", "NRT", "KIX[i]", "NGO", "NGO"]
53 i != j: true
54 array[i] == array[j]: false
55
56 i=2, j=1
57 iとtの位置: ["HND", "NRT[j]", "KIX[i]", "NGO", "NGO"]
58 i != j: true
59 array[i] == array[j]: false
60
61 i=2, j=2
62 iとtの位置: ["HND", "NRT", "KIX[i][j]", "NGO", "NGO"]
63 i != j: false
64 array[i] == array[j]: true
65
66 i=2, j=3
67 iとtの位置: ["HND", "NRT", "KIX[i]", "NGO[j]", "NGO"]
68 i != j: true
69 array[i] == array[j]: false
70
71 i=2, j=4
72 iとtの位置: ["HND", "NRT", "KIX[i]", "NGO", "NGO[j]"]
73 i != j: true
74 array[i] == array[j]: false
75
76 i=3, j=0
77 iとtの位置: ["HND[j]", "NRT", "KIX", "NGO[i]", "NGO"]
78 i != j: true
79 array[i] == array[j]: false
80
81 i=3, j=1
82 iとtの位置: ["HND", "NRT[j]", "KIX", "NGO[i]", "NGO"]
83 i != j: true
84 array[i] == array[j]: false
85
86 i=3, j=2
87 iとtの位置: ["HND", "NRT", "KIX[j]", "NGO[i]", "NGO"]
88 i != j: true
89 array[i] == array[j]: false
90
91 i=3, j=3
92 iとtの位置: ["HND", "NRT", "KIX", "NGO[i][j]", "NGO"]
93 i != j: false
94 array[i] == array[j]: true
95
96 i=3, j=4
97 iとtの位置: ["HND", "NRT", "KIX", "NGO[i]", "NGO[j]"]
98 i != j: true
99 array[i] == array[j]: true
100
101 i=4, j=0
102 iとtの位置: ["HND[j]", "NRT", "KIX", "NGO", "NGO[i]"]
103 i != j: true
104 array[i] == array[j]: false
105
106 i=4, j=1
107 iとtの位置: ["HND", "NRT[j]", "KIX", "NGO", "NGO[i]"]
108 i != j: true
109 array[i] == array[j]: false
110
111 i=4, j=2
112 iとtの位置: ["HND", "NRT", "KIX[j]", "NGO", "NGO[i]"]
113 i != j: true
114 array[i] == array[j]: false
115
116 i=4, j=3
117 iとtの位置: ["HND", "NRT", "KIX", "NGO[j]", "NGO[i]"]
118 i != j: true
119 array[i] == array[j]: true
120
121 i=4, j=4
122 iとtの位置: ["HND", "NRT", "KIX", "NGO", "NGO[i][j]"]
123 i != j: false
124 array[i] == array[j]: true
125
126 true
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/19 08:26
2020/02/19 09:26