質問するログイン新規登録

回答編集履歴

4

修正

2017/04/23 12:16

投稿

退会済みユーザー
answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  DATA = [[j for j in range(i, i+M)] for i in range(0, M*N, M)][Y0:Y1+1]
10
10
 
11
- for i in range(X1 - X0):
11
+ for var in range(X1 - X0):
12
12
  DATA[var] = DATA[var][X0:X1+1]
13
13
 
14
14
  print(sum(sum(DATA, [])))

3

修正

2017/04/23 12:16

投稿

退会済みユーザー
answer CHANGED
@@ -2,49 +2,33 @@
2
2
 
3
3
  #coding: utf-8
4
4
 
5
- M = 8
5
+ M, N = 8, 6
6
- N = 6
7
6
 
8
- ARRAY = list(zip(*[iter(list(range(0, ((M * N) - 1))))] * M))
7
+ X0, X1, Y0, Y1 = 1, 3, 1, 2
9
8
 
10
- X0 = 0
9
+ DATA = [[j for j in range(i, i+M)] for i in range(0, M*N, M)][Y0:Y1+1]
11
- X1 = 0
12
- Y0 = 0
13
- Y1 = 0
14
10
 
11
+ for i in range(X1 - X0):
15
- DATA = ARRAY[Y0:-Y1]
12
+ DATA[var] = DATA[var][X0:X1+1]
16
13
 
17
- SUM_NUMS = 0
18
-
19
- for nums in DATA:
14
+ print(sum(sum(DATA, [])))
20
- for num in nums[X0:-(X1 + 1)]:
21
- SUM_NUMS += num
22
-
23
- print(SUM_NUMS)
24
15
  ```
25
16
  ```Ruby
17
+
26
18
  #encoding: utf-8
27
19
 
28
- M = 8
20
+ M, N = 8, 6
29
- N = 6
30
21
 
31
- array = (0..((M * N) - 1)).each_slice(M).to_a
22
+ x0, x1, y0, y1 = 1, 3, 1, 2
32
23
 
33
- x0 = 1; x1 = 3; y0 = 1; y1 = 2
24
+ data = (0..((M * N) - 1)).each_slice(M).to_a[y0..y1]
34
25
 
35
- data = array[y0..y1]
36
-
37
- sum_nums = 0
38
-
39
- data.each do |nums|
40
- nums[x0..x1].each do |num|
26
+ p data.map{|e| e[x0..x1]}.flatten.inject{|sum, i| sum += i}
41
- sum_nums += num
42
- end
43
- end
44
-
45
- p sum_nums
46
27
  ```
47
28
  考えてみました。
48
29
  このコードが正確に動くかどうかは分かりません。
49
30
  Pythonの方のスライスの使い方がよくわからず
50
31
  nums[x0:-(x1 + 1)]の部分が変なことになっています。
32
+ #追記
33
+ 2017/04/23
34
+ magichan様のコードを参考にして変更しました。

2

修正

2017/04/23 12:06

投稿

退会済みユーザー
answer CHANGED
@@ -1,22 +1,26 @@
1
1
  ```Python
2
- # coding: utf-8
3
2
 
3
+ #coding: utf-8
4
+
4
5
  M = 8
5
6
  N = 6
6
7
 
7
- array = list(zip(*[iter(list(range(0, ((M * N) - 1))))] * M))
8
+ ARRAY = list(zip(*[iter(list(range(0, ((M * N) - 1))))] * M))
8
9
 
9
- x0 = 1; x1 = 3; y0 = 1; y1 = 2
10
+ X0 = 0
11
+ X1 = 0
12
+ Y0 = 0
13
+ Y1 = 0
10
14
 
11
- data = array[y0:-y1]
15
+ DATA = ARRAY[Y0:-Y1]
12
16
 
13
- sum_nums = 0
17
+ SUM_NUMS = 0
14
18
 
15
- for nums in data:
19
+ for nums in DATA:
16
- for num in nums[x0:-(x1 + 1)]:
20
+ for num in nums[X0:-(X1 + 1)]:
17
- sum_nums += num
21
+ SUM_NUMS += num
18
22
 
19
- print(sum_nums)
23
+ print(SUM_NUMS)
20
24
  ```
21
25
  ```Ruby
22
26
  #encoding: utf-8

1

修正

2017/04/23 05:19

投稿

退会済みユーザー
answer CHANGED
@@ -30,16 +30,17 @@
30
30
 
31
31
  data = array[y0..y1]
32
32
 
33
- sum = 0
33
+ sum_nums = 0
34
34
 
35
- data.each do |element|
35
+ data.each do |nums|
36
- element[x0..x1].each do |ee|
36
+ nums[x0..x1].each do |num|
37
- sum += ee
37
+ sum_nums += num
38
38
  end
39
39
  end
40
40
 
41
- p sum
41
+ p sum_nums
42
42
  ```
43
43
  考えてみました。
44
+ このコードが正確に動くかどうかは分かりません。
44
45
  Pythonの方のスライスの使い方がよくわからず
45
- nums[x0:-(x1 + 1)]の部分が変なことになっています。
46
+ nums[x0:-(x1 + 1)]の部分が変なことになっています。