回答編集履歴

4

修正

2017/04/23 12:16

投稿

退会済みユーザー
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- for i in range(X1 - X0):
21
+ for var in range(X1 - X0):
22
22
 
23
23
  DATA[var] = DATA[var][X0:X1+1]
24
24
 

3

修正

2017/04/23 12:16

投稿

退会済みユーザー
test CHANGED
@@ -6,87 +6,49 @@
6
6
 
7
7
 
8
8
 
9
- M = 8
9
+ M, N = 8, 6
10
-
11
- N = 6
12
10
 
13
11
 
14
12
 
15
- ARRAY = list(zip(*[iter(list(range(0, ((M * N) - 1))))] * M))
13
+ X0, X1, Y0, Y1 = 1, 3, 1, 2
16
14
 
17
15
 
18
16
 
19
- X0 = 0
17
+ DATA = [[j for j in range(i, i+M)] for i in range(0, M*N, M)][Y0:Y1+1]
20
-
21
- X1 = 0
22
-
23
- Y0 = 0
24
-
25
- Y1 = 0
26
18
 
27
19
 
28
20
 
21
+ for i in range(X1 - X0):
22
+
29
- DATA = ARRAY[Y0:-Y1]
23
+ DATA[var] = DATA[var][X0:X1+1]
30
24
 
31
25
 
32
26
 
33
- SUM_NUMS = 0
34
-
35
-
36
-
37
- for nums in DATA:
27
+ print(sum(sum(DATA, [])))
38
-
39
- for num in nums[X0:-(X1 + 1)]:
40
-
41
- SUM_NUMS += num
42
-
43
-
44
-
45
- print(SUM_NUMS)
46
28
 
47
29
  ```
48
30
 
49
31
  ```Ruby
50
32
 
33
+
34
+
51
35
  #encoding: utf-8
52
36
 
53
37
 
54
38
 
55
- M = 8
39
+ M, N = 8, 6
56
-
57
- N = 6
58
40
 
59
41
 
60
42
 
61
- array = (0..((M * N) - 1)).each_slice(M).to_a
43
+ x0, x1, y0, y1 = 1, 3, 1, 2
62
44
 
63
45
 
64
46
 
65
- x0 = 1; x1 = 3; y0 = 1; y1 = 2
47
+ data = (0..((M * N) - 1)).each_slice(M).to_a[y0..y1]
66
48
 
67
49
 
68
50
 
69
- data = array[y0..y1]
70
-
71
-
72
-
73
- sum_nums = 0
74
-
75
-
76
-
77
- data.each do |nums|
78
-
79
- nums[x0..x1].each do |num|
51
+ p data.map{|e| e[x0..x1]}.flatten.inject{|sum, i| sum += i}
80
-
81
- sum_nums += num
82
-
83
- end
84
-
85
- end
86
-
87
-
88
-
89
- p sum_nums
90
52
 
91
53
  ```
92
54
 
@@ -98,4 +60,10 @@
98
60
 
99
61
  nums[x0:-(x1 + 1)]の部分が変なことになっています。
100
62
 
63
+ #追記
101
64
 
65
+ 2017/04/23
66
+
67
+ magichan様のコードを参考にして変更しました。
68
+
69
+

2

修正

2017/04/23 12:06

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,8 @@
1
1
  ```Python
2
2
 
3
+
4
+
3
- # coding: utf-8
5
+ #coding: utf-8
4
6
 
5
7
 
6
8
 
@@ -10,31 +12,37 @@
10
12
 
11
13
 
12
14
 
13
- array = list(zip(*[iter(list(range(0, ((M * N) - 1))))] * M))
15
+ ARRAY = list(zip(*[iter(list(range(0, ((M * N) - 1))))] * M))
14
16
 
15
17
 
16
18
 
17
- x0 = 1; x1 = 3; y0 = 1; y1 = 2
19
+ X0 = 0
20
+
21
+ X1 = 0
22
+
23
+ Y0 = 0
24
+
25
+ Y1 = 0
18
26
 
19
27
 
20
28
 
21
- data = array[y0:-y1]
29
+ DATA = ARRAY[Y0:-Y1]
22
30
 
23
31
 
24
32
 
25
- sum_nums = 0
33
+ SUM_NUMS = 0
26
34
 
27
35
 
28
36
 
29
- for nums in data:
37
+ for nums in DATA:
30
38
 
31
- for num in nums[x0:-(x1 + 1)]:
39
+ for num in nums[X0:-(X1 + 1)]:
32
40
 
33
- sum_nums += num
41
+ SUM_NUMS += num
34
42
 
35
43
 
36
44
 
37
- print(sum_nums)
45
+ print(SUM_NUMS)
38
46
 
39
47
  ```
40
48
 

1

修正

2017/04/23 05:19

投稿

退会済みユーザー
test CHANGED
@@ -62,15 +62,15 @@
62
62
 
63
63
 
64
64
 
65
- sum = 0
65
+ sum_nums = 0
66
66
 
67
67
 
68
68
 
69
- data.each do |element|
69
+ data.each do |nums|
70
70
 
71
- element[x0..x1].each do |ee|
71
+ nums[x0..x1].each do |num|
72
72
 
73
- sum += ee
73
+ sum_nums += num
74
74
 
75
75
  end
76
76
 
@@ -78,12 +78,16 @@
78
78
 
79
79
 
80
80
 
81
- p sum
81
+ p sum_nums
82
82
 
83
83
  ```
84
84
 
85
85
  考えてみました。
86
86
 
87
+ このコードが正確に動くかどうかは分かりません。
88
+
87
89
  Pythonの方のスライスの使い方がよくわからず
88
90
 
89
91
  nums[x0:-(x1 + 1)]の部分が変なことになっています。
92
+
93
+